A JavaScript port of Facebook's PlanOut Experimentation Framework
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.
planoutAPIFactory.js
to keep planout bundles consistent, and to make it easier to compose new planout bundles with the random operations of choice.WeightedChoice
with false-y choices.Allows for a default value in the Assignment class
Fixes a bug when defining multiple interpreted experiments from a single instruction object.
Fixes undefined error on IE10
See Changelog for changes
Major changes:
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.
getParams function now exists on the namespace class
Bugfixes:
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()
A few small cleanups - nothing major
Only log exposure on namespace when it should be logged.
Also fixes up an issue with localStorage overrides