Skip to content

Releases: optimizely/javascript-sdk

Release 4.0.0-alpha.1

02 Apr 17:16
babe5d7
Compare
Choose a tag to compare
Release 4.0.0-alpha.1 Pre-release
Pre-release

[4.0.0-alpha.1] - April 2, 2020

Breaking Changes:

  • Removed Promise polyfill from browser entry point (417)

Release 3.6.0-alpha.1

05 Mar 16:42
026a21c
Compare
Choose a tag to compare
Release 3.6.0-alpha.1 Pre-release
Pre-release

[3.6.0-alpha.1] - March 4, 2020

New Features

  • Changed track() to log a warning instead of an error when the event isn't in the datafile (#418)

Release 3.5.0

20 Feb 21:09
653296d
Compare
Choose a tag to compare

[3.5.0] - February 20th, 2020

Bug fixes

  • Fixed default event dispatcher not used in React Native entry point (#383)
  • Fixed errors in getOptimizelyConfig TypeScript type definitions (#406)

New Features

  • Promise returned from close tracks the state of in-flight event dispatcher requests (#404)

Release 3.4.1

29 Jan 00:49
9039df2
Compare
Choose a tag to compare

[3.4.1] - January 28th, 2020

Bug fixes

  • Added getOptimizelyConfig and related types to TypeScript type definitions(#390).

Release 3.4.0

21 Jan 23:18
6fd2901
Compare
Choose a tag to compare

[3.4.0] - January 21th, 2020

Bug fixes

  • Fixed incorrect payload for decision notification triggered by calling getVariation on a feature test in a mutex group(#375)

New Features

  • Added a new API to get project configuration static data.
    • Call getOptimizelyConfig() to get a snapshot of project configuration static data.
    • It returns an OptimizelyConfig instance which includes a datafile revision number, all experiments, and feature flags mapped by their key values.
    • Added caching for getOptimizelyConfig - OptimizelyConfig object will be cached and reused for the lifetime of the datafile.
    • For details, refer to our documentation page: https://docs.developers.optimizely.com/full-stack/docs/optimizelyconfig-javascript-node.

Removed Features

  • Removed support for 'launched' experiment status.
    • Previously, experiments with status 'running' or 'launched' would return non-null variations from activate and getVariation, and generate impression events from activate.
    • Now, only 'running' experiments will return non-null variations and generate impressions.

Release 3.4.0-beta

18 Dec 19:21
6999786
Compare
Choose a tag to compare
Release 3.4.0-beta Pre-release
Pre-release

[3.4.0-beta] - December 18th, 2019

Bug fixes

  • Fixed incorrect payload for decision notification triggered by calling getVariation on a feature test in a mutex group(#375)

New Features

Release 3.3.2

14 Nov 17:26
2df49cb
Compare
Choose a tag to compare

[3.3.2] - November 14th, 2019

Bug fixes

  • Fixed error message that was being logged when a user was bucketed into empty space in an experiment or a mutual exclusion group. This is not an error. With the fix, the message indicates that the user was not included in any experiment (#366).

Release 3.3.1

25 Oct 16:07
60bf1e8
Compare
Choose a tag to compare

[3.3.1] - October 25th, 2019

Bug fixes

  • Fixed full screen error dialog appearing in local development for React Native apps when using the default logger. We now provide a default logger for React Native that does not call console.error.

Release 3.3.0

25 Sep 21:29
274ef4b
Compare
Choose a tag to compare

[3.3.0] - September 25th, 2019

New Features

  • Added support for event batching via the event processor.
    • Events generated by methods like activate, track, and isFeatureEnabled will be held in a queue until the configured batch size is reached, or the configured flush interval has elapsed. Then, they will be combined into a request and sent to the event dispatcher.
    • To configure event batching, include the eventBatchSize and eventFlushInterval number properties in the object you pass to createInstance.
    • Event batching is enabled by default. eventBatchSize defaults to 10. eventFlushInterval defaults to 30000 in Node and 1000 in browsers.
  • Added localStorage mitigation against lost events in the browser
    • When event requests are dispatched, they are written to localStorage, and when a response is received, they are removed from localStorage.
    • When the SDK is initialized for the first time in the browser, if any requests remain in localStorage, they will be sent, and removed from localStorage when a response is received.
  • Updated the close method to return a Promise representing the process of closing the instance. When close is called, any events waiting to be sent as part of a batched event request will be immediately batched and sent to the event dispatcher.
    • If any such requests were sent to the event dispatcher, close returns a Promise that fulfills after the event dispatcher calls the response callback for each request. Otherwise, close returns an immediately-fulfilled Promise.
    • The Promise returned from close is fulfilled with a result object containing success (boolean) and reason (string, only when success is false) properties. In the result object, success is true if all events in the queue at the time close was called were combined into requests, sent to the event dispatcher, and the event dispatcher called the callbacks for each request. success is false if an unexpected error was encountered during the close process.
  • Added non-typed getFeatureVariable method (#298) as a more idiomatic approach to getting values of feature variables.
    • Typed getFeatureVariable methods will still be available for use.

Release 3.3.0-beta

21 Aug 16:44
f71646a
Compare
Choose a tag to compare
Release 3.3.0-beta Pre-release
Pre-release

[3.3.0-beta] - August 21st, 2019

New Features

  • Added support for event batching via the event processor.
    • Events generated by methods like activate, track, and isFeatureEnabled will be held in a queue until the configured batch size is reached, or the configured flush interval has elapsed. Then, they will be combined into a request and sent to the event dispatcher.
    • To configure event batching, include the eventBatchSize and eventFlushInterval number properties in the object you pass to createInstance.
    • Event batching is enabled by default. eventBatchSize defaults to 10. eventFlushInterval defaults to 30000 in Node and 1000 in browsers.
  • Added localStorage mitigation against lost events in the browser
    • When event requests are dispatched, they are written to localStorage, and when a response is received, they are removed from localStorage.
    • When the SDK is initialized for the first time in the browser, if any requests remain in localStorage, they will be sent, and removed from localStorage when a response is received.
  • Updated the close method to return a Promise representing the process of closing the instance. When close is called, any events waiting to be sent as part of a batched event request will be immediately batched and sent to the event dispatcher.
    • If any such requests were sent to the event dispatcher, close returns a Promise that fulfills after the event dispatcher calls the response callback for each request. Otherwise, close returns an immediately-fulfilled Promise.
    • The Promise returned from close is fulfilled with a result object containing success (boolean) and reason (string, only when success is false) properties. In the result object, success is true if all events in the queue at the time close was called were combined into requests, sent to the event dispatcher, and the event dispatcher called the callbacks for each request. success is false if an unexpected error was encountered during the close process.
  • Added non-typed getFeatureVariable method (#298) as a more idiomatic approach to getting values of feature variables.
    • Typed getFeatureVariable methods will still be available for use.