From 619dfbc641f684a18cb00ede2f736bbb3337817f Mon Sep 17 00:00:00 2001 From: Matt Carroll Date: Thu, 30 Apr 2020 13:24:48 -0700 Subject: [PATCH] chore: Prepare for 4.0.0 release (#468) Prepare for 4.0.0 release --- packages/optimizely-sdk/CHANGELOG.MD | 31 +++++++++++++++++++ .../optimizely-sdk/lib/index.browser.tests.js | 2 +- .../optimizely-sdk/lib/index.node.tests.js | 2 +- .../lib/index.react_native.tests.js | 2 +- .../optimizely-sdk/lib/utils/enums/index.js | 2 +- packages/optimizely-sdk/package-lock.json | 2 +- packages/optimizely-sdk/package.json | 2 +- 7 files changed, 37 insertions(+), 6 deletions(-) diff --git a/packages/optimizely-sdk/CHANGELOG.MD b/packages/optimizely-sdk/CHANGELOG.MD index 595dc8cf7..a724f63d2 100644 --- a/packages/optimizely-sdk/CHANGELOG.MD +++ b/packages/optimizely-sdk/CHANGELOG.MD @@ -7,6 +7,37 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] +## [4.0.0] - April 30, 2020 + +### New Features + +- Removed lodash dependency +- ES module entry point for the browser - `"module"` property of `package.json` points to `dist/optimizely.browser.es.min.js` ([#445](https://github.com/optimizely/javascript-sdk/pull/445)) + +### Breaking Changes + +- Removed `Promise` polyfill from browser entry point ([417](https://github.com/optimizely/javascript-sdk/pull/417)). +- Changed functionality of JSON schema validation in all entry points ([442](https://github.com/optimizely/javascript-sdk/pull/442)). + - Previously, `skipJSONValidation` flag was used by the user to specify whether the JSON object should be validated. + - Now, `skipJSONValidation` has been removed entirely from all entry points. Instead, a user will need to import `jsonSchemaValidator` from `@optimizely/optimizely-sdk/dist/optimizely.json_schema_validator.min.js` and pass it to `createInstance` to perform validation as shown below: + ```js + const optimizelySDK = require('@optimizely/optimizely-sdk'); + const jsonSchemaValidator = require('@optimizely/optimizely-sdk/dist/optimizely.json_schema_validator.min'); + + // Require JSON schema validation for the datafile + var optimizelyClientInstance = optimizely.createInstance({ + datafile: datafile, + jsonSchemaValidator: jsonSchemaValidator, + }); + ``` +- Dropped support for Node.js version <8 ([#456](https://github.com/optimizely/javascript-sdk/pull/456)) + +### Bug fixes + +- Changed `track()` to log a warning instead of an error when the event isn't in the datafile ([#418](https://github.com/optimizely/javascript-sdk/pull/418)) +- Fixed return type for `close` method in TypeScript type definitions ([#410](https://github.com/optimizely/javascript-sdk/pull/410)) +- Node.js datafile manager uses gzip,deflate compression for requests ([#456](https://github.com/optimizely/javascript-sdk/pull/456)) + ## [4.0.0-rc.2] - April 24, 2020 ### Bug fixes diff --git a/packages/optimizely-sdk/lib/index.browser.tests.js b/packages/optimizely-sdk/lib/index.browser.tests.js index 0fe0b6edb..9290baac9 100644 --- a/packages/optimizely-sdk/lib/index.browser.tests.js +++ b/packages/optimizely-sdk/lib/index.browser.tests.js @@ -145,7 +145,7 @@ describe('javascript-sdk', function() { optlyInstance.onReady().catch(function() {}); assert.instanceOf(optlyInstance, Optimizely); - assert.equal(optlyInstance.clientVersion, '4.0.0-rc.2'); + assert.equal(optlyInstance.clientVersion, '4.0.0'); }); it('should set the JavaScript client engine and version', function() { diff --git a/packages/optimizely-sdk/lib/index.node.tests.js b/packages/optimizely-sdk/lib/index.node.tests.js index 085d18150..b00b701f8 100644 --- a/packages/optimizely-sdk/lib/index.node.tests.js +++ b/packages/optimizely-sdk/lib/index.node.tests.js @@ -90,7 +90,7 @@ describe('optimizelyFactory', function() { optlyInstance.onReady().catch(function() {}); assert.instanceOf(optlyInstance, Optimizely); - assert.equal(optlyInstance.clientVersion, '4.0.0-rc.2'); + assert.equal(optlyInstance.clientVersion, '4.0.0'); }); describe('event processor configuration', function() { diff --git a/packages/optimizely-sdk/lib/index.react_native.tests.js b/packages/optimizely-sdk/lib/index.react_native.tests.js index 169443236..2eb93975f 100644 --- a/packages/optimizely-sdk/lib/index.react_native.tests.js +++ b/packages/optimizely-sdk/lib/index.react_native.tests.js @@ -89,7 +89,7 @@ describe('javascript-sdk/react-native', function() { optlyInstance.onReady().catch(function() {}); assert.instanceOf(optlyInstance, Optimizely); - assert.equal(optlyInstance.clientVersion, '4.0.0-rc.2'); + assert.equal(optlyInstance.clientVersion, '4.0.0'); }); it('should set the Javascript client engine and version', function() { diff --git a/packages/optimizely-sdk/lib/utils/enums/index.js b/packages/optimizely-sdk/lib/utils/enums/index.js index 5182d2c51..2da75b1a0 100644 --- a/packages/optimizely-sdk/lib/utils/enums/index.js +++ b/packages/optimizely-sdk/lib/utils/enums/index.js @@ -173,7 +173,7 @@ export var CONTROL_ATTRIBUTES = { export var JAVASCRIPT_CLIENT_ENGINE = 'javascript-sdk'; export var NODE_CLIENT_ENGINE = 'node-sdk'; export var REACT_CLIENT_ENGINE = 'react-sdk'; -export var NODE_CLIENT_VERSION = '4.0.0-rc.2'; +export var NODE_CLIENT_VERSION = '4.0.0'; export var VALID_CLIENT_ENGINES = [ NODE_CLIENT_ENGINE, diff --git a/packages/optimizely-sdk/package-lock.json b/packages/optimizely-sdk/package-lock.json index a2933c2c2..f539829fd 100644 --- a/packages/optimizely-sdk/package-lock.json +++ b/packages/optimizely-sdk/package-lock.json @@ -1,6 +1,6 @@ { "name": "@optimizely/optimizely-sdk", - "version": "4.0.0-rc.2", + "version": "4.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/optimizely-sdk/package.json b/packages/optimizely-sdk/package.json index c13ca50f9..f0751fea2 100644 --- a/packages/optimizely-sdk/package.json +++ b/packages/optimizely-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@optimizely/optimizely-sdk", - "version": "4.0.0-rc.2", + "version": "4.0.0", "description": "JavaScript SDK for Optimizely X Full Stack", "module": "dist/optimizely.browser.es.min.js", "main": "dist/optimizely.node.min.js",