PlanOut.js Versions Save

A JavaScript port of Facebook's PlanOut Experimentation Framework

v4.0.0

7 years ago

Depending on your usage of planout.js, upgrading to v4.0 may result in a shift in experiment parameter value assignment, and namespace enrollment. Because of this, we recommend that you only upgrade to v4.0 when you don't have any experiments actively running.

  • Core compatible bundle fixes:
    • Core compatible namespace allocations now match core reference namespace allocations from python version of planout.
    • Core compatible interpreted experiment enrollment now matches core reference interpreted experiment enrollment from python version of planout.
  • Separated the concerns of planout core random operations, and the planout API. The planout.js API (experiment, assignment, namespace, etc) are now composed with the random operations they are passed. This change has no effect on the usage of planout.js and only affects the development experience for contributors.
  • Added planoutAPIFactory.js to keep planout bundles consistent, and to make it easier to compose new planout bundles with the random operations of choice.
  • Made experiment & namespace names required to fix https://github.com/HubSpot/PlanOut.js/issues/57
  • Fixes WeightedChoice with false-y choices.
  • Fixes tests on windows + running the travis tests on windows as well if this is possible.

v3.0.3

7 years ago

Allows for a default value in the Assignment class

v3.0.2

7 years ago

Fixes a bug when defining multiple interpreted experiments from a single instruction object.

v3.0.1

7 years ago

Fixes undefined error on IE10

v3.0.0

7 years ago

See Changelog for changes

v1.2.0

8 years ago

Major changes:

  1. The return value of assign now determines whether or not exposure should be logged. If you were already returning nothing from assign, nothing should change.

  2. getParams function now exists on the namespace class

Bugfixes:

  1. A bug was fixed around the assignment class not allowing false-y overrides

v1.1.0

8 years ago

This is a breaking change for consumers of the library using the SimpleNamespace class.

All Experiment classes now require consumers to define ahead of time the list of parameters that the assignment procedure may assign. Previously, this was done via runtime analysis of the assign function but assumed that the experiment parameters were all strings. If this is OK, consumers can just override this function by returning this.getDefaultParamNames()

v1.0.8

8 years ago

v1.0.7

8 years ago

A few small cleanups - nothing major

v1.0.6

8 years ago

Only log exposure on namespace when it should be logged.

Also fixes up an issue with localStorage overrides