Skip to content

Commit fca3a0e

Browse files
authored
[FSSDK-10843] prepare release 6.0.0 (#1066)
1 parent dd1375e commit fca3a0e

File tree

8 files changed

+43
-18
lines changed

8 files changed

+43
-18
lines changed

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,31 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
66
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
77

8+
## [6.0.0] - May 29, 2025
9+
10+
### Breaking Changes
11+
12+
- Modularized SDK architecture: The monolithic `createInstance` call has been split into multiple factory functions for greater flexibility and control.
13+
- Core functionalities (project configuration, event processing, ODP, VUID, logging, and error handling) are now configured through dedicated components created via factory functions, giving you greater flexibility and control in enabling/disabling certain components and allowing optimizing the bundle size for frontend projects.
14+
- `onReady` Promise behavior changed: It now resolves only when the SDK is ready and rejects on initialization errors.
15+
- event processing is disabled by default and must be explicitly enabled by passing a `eventProcessor` to the client.
16+
- Event dispatcher interface updated to use Promises instead of callbacks.
17+
- Logging is disabled by default and must be explicitly enabled using a logger created via a factory function.
18+
- VUID tracking is disabled by default and must be explicitly enabled by passing a `vuidManager` to the client instance.
19+
- ODP functionality is no longer enabled by default. You must explicitly pass an `odpManager` to enable it.
20+
- Dropped support for older browser versions and Node.js versions earlier than 18.0.0.
21+
22+
### New Features
23+
- Added support for async user profile service and async decide methods (see dcoumentation for [User Profile Service](https://docs.developers.optimizely.com/feature-experimentation/docs/implement-a-user-profile-service-for-the-javascript-sdk) and [Decide methods](https://docs.developers.optimizely.com/feature-experimentation/docs/decide-methods-for-the-javascript-sdk))
24+
25+
### Migration Guide
26+
27+
For detailed migration instructions, refer to the [Migration Guide](MIGRATION.md).
28+
29+
### Documentation
30+
31+
For more details, see the official documentation: [JavaScript SDK](https://docs.developers.optimizely.com/feature-experimentation/docs/javascript-sdk).
32+
833
## [5.3.5] - Jan 29, 2025
934

1035
### Bug Fixes

MIGRATION.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ This guide will help you migrate your implementation from Optimizely JavaScript
2121
In v6, the SDK architecture has been modularized to give you more control over different components:
2222

2323
- The monolithic `createInstance` call is now split into multiple factory functions
24-
- Core functionality (project configuration, event processing, ODP, VUID, logging, and error handling) is now configured through dedicated components created via factory functions, giving you greater flexibility and control in enabling/disabling certain components and allowing optimizing the bundle size for frontend projects.
24+
- Core functionalities (project configuration, event processing, ODP, VUID, logging, and error handling) are now configured through dedicated components created via factory functions, giving you greater flexibility and control in enabling/disabling certain components and allowing optimizing the bundle size for frontend projects.
2525
- Event dispatcher interface has been updated to use Promises
2626
- onReady Promise behavior has changed
2727

lib/index.browser.tests.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ describe('javascript-sdk (Browser)', function() {
152152
});
153153

154154
assert.instanceOf(optlyInstance, Optimizely);
155-
assert.equal(optlyInstance.clientVersion, '5.3.4');
155+
assert.equal(optlyInstance.clientVersion, '6.0.0');
156156
});
157157

158158
it('should set the JavaScript client engine and version', function() {

lib/index.node.tests.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -79,17 +79,17 @@ describe('optimizelyFactory', function() {
7979
// // sinon.assert.calledOnce(fakeLogger.error);
8080
// });
8181

82-
// it('should create an instance of optimizely', function() {
83-
// var optlyInstance = optimizelyFactory.createInstance({
84-
// projectConfigManager: getMockProjectConfigManager(),
85-
// errorHandler: fakeErrorHandler,
86-
// eventDispatcher: fakeEventDispatcher,
87-
// logger: fakeLogger,
88-
// });
89-
90-
// assert.instanceOf(optlyInstance, Optimizely);
91-
// assert.equal(optlyInstance.clientVersion, '5.3.4');
92-
// });
82+
it('should create an instance of optimizely', function() {
83+
var optlyInstance = optimizelyFactory.createInstance({
84+
projectConfigManager: wrapConfigManager(getMockProjectConfigManager()),
85+
// errorHandler: fakeErrorHandler,
86+
// eventDispatcher: fakeEventDispatcher,
87+
// logger: fakeLogger,
88+
});
89+
90+
assert.instanceOf(optlyInstance, Optimizely);
91+
assert.equal(optlyInstance.clientVersion, '6.0.0');
92+
});
9393
// TODO: user will create and inject an event processor
9494
// these tests will be refactored accordingly
9595
// describe('event processor configuration', function() {

lib/index.react_native.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ describe('javascript-sdk/react-native', () => {
9292
expect(optlyInstance).toBeInstanceOf(Optimizely);
9393
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
9494
// @ts-ignore
95-
expect(optlyInstance.clientVersion).toEqual('5.3.4');
95+
expect(optlyInstance.clientVersion).toEqual('6.0.0');
9696
});
9797

9898
it('should set the React Native JS client engine and javascript SDK version', () => {

lib/utils/enums/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export const CONTROL_ATTRIBUTES = {
4141
export const JAVASCRIPT_CLIENT_ENGINE = 'javascript-sdk';
4242
export const NODE_CLIENT_ENGINE = 'node-sdk';
4343
export const REACT_NATIVE_JS_CLIENT_ENGINE = 'react-native-js-sdk';
44-
export const CLIENT_VERSION = '5.3.4';
44+
export const CLIENT_VERSION = '6.0.0';
4545

4646
/*
4747
* Represents the source of a decision for feature management. When a feature

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@optimizely/optimizely-sdk",
3-
"version": "5.3.4",
3+
"version": "6.0.0",
44
"description": "JavaScript SDK for Optimizely Feature Experimentation, Optimizely Full Stack (legacy), and Optimizely Rollouts",
55
"main": "./dist/index.node.min.js",
66
"browser": "./dist/index.browser.es.min.js",

0 commit comments

Comments
 (0)