From 694dcf1e15a9e06c3872c4cb000402a184312e0a Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Thu, 16 Oct 2025 11:04:18 -0300 Subject: [PATCH 1/7] Upgrade JS-commons --- CHANGES.txt | 3 +++ package-lock.json | 18 +++++++++--------- package.json | 6 +++--- src/__tests__/nodeSuites/ready-promise.spec.js | 6 +++++- src/settings/defaults/version.js | 2 +- 5 files changed, 21 insertions(+), 14 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index ea434f8fc..b50e4715a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,6 @@ +11.8.0 (October XX, 2025) + - Updated @splitsoftware/splitio-commons package to version 2.8.0, which updates the SDK’s initial synchronization in Node.js (server-side) to use the `startup.requestTimeoutBeforeReady` and `startup.retriesOnFailureBeforeReady` options to control the timeout and retry behavior of segment requests. + 11.7.1 (October 8, 2025) - Bugfix - Updated @splitsoftware/splitio-commons package to version 2.7.1, which fixes the `debug` option to support log levels when the `logger` option is used. diff --git a/package-lock.json b/package-lock.json index 2cc7b9b9a..e1cc3b34d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,15 @@ { "name": "@splitsoftware/splitio", - "version": "11.7.1", + "version": "11.7.2-rc.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@splitsoftware/splitio", - "version": "11.7.1", + "version": "11.7.2-rc.0", "license": "Apache-2.0", "dependencies": { - "@splitsoftware/splitio-commons": "2.7.1", + "@splitsoftware/splitio-commons": "2.7.2-rc.0", "bloom-filters": "^3.0.4", "ioredis": "^4.28.0", "js-yaml": "^3.13.1", @@ -351,9 +351,9 @@ "dev": true }, "node_modules/@splitsoftware/splitio-commons": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-2.7.1.tgz", - "integrity": "sha512-7a4VVMczh0YKVRi35EhD0FOAEwzqfJRcCiKqLLhZCxAvrZBpE2khpGn8pOP+y6TefdPVtblW8GIku4O4r0KRdQ==", + "version": "2.7.2-rc.0", + "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-2.7.2-rc.0.tgz", + "integrity": "sha512-GXCIUPwNb8cuXZSCKEbN7yEohKHZDdHmvam9sWQPBQUHdT40dxfiyVWYmRQvpWOkjxs9JPAiDCL1MaiZHxcWfQ==", "license": "Apache-2.0", "dependencies": { "@types/ioredis": "^4.28.0", @@ -7740,9 +7740,9 @@ "dev": true }, "@splitsoftware/splitio-commons": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-2.7.1.tgz", - "integrity": "sha512-7a4VVMczh0YKVRi35EhD0FOAEwzqfJRcCiKqLLhZCxAvrZBpE2khpGn8pOP+y6TefdPVtblW8GIku4O4r0KRdQ==", + "version": "2.7.2-rc.0", + "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-2.7.2-rc.0.tgz", + "integrity": "sha512-GXCIUPwNb8cuXZSCKEbN7yEohKHZDdHmvam9sWQPBQUHdT40dxfiyVWYmRQvpWOkjxs9JPAiDCL1MaiZHxcWfQ==", "requires": { "@types/ioredis": "^4.28.0", "tslib": "^2.3.1" diff --git a/package.json b/package.json index ea3ad14b7..869ecad90 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@splitsoftware/splitio", - "version": "11.7.1", + "version": "11.7.2-rc.0", "description": "Split SDK", "files": [ "README.md", @@ -38,7 +38,7 @@ "node": ">=14.0.0" }, "dependencies": { - "@splitsoftware/splitio-commons": "2.7.1", + "@splitsoftware/splitio-commons": "2.7.2-rc.0", "bloom-filters": "^3.0.4", "ioredis": "^4.28.0", "js-yaml": "^3.13.1", @@ -102,7 +102,7 @@ "test-node": "npm run test-node-unit && npm run test-node-e2e", "test-node-unit": "cross-env NODE_ENV=test tape -r ./ts-node.register \"src/*/**/__tests__/**/!(browser).spec.js\" | tap-min", "test-node-e2e": "npm run test-node-e2e-online && npm run test-node-e2e-offline && npm run test-node-e2e-destroy && npm run test-node-e2e-errorCatching && npm run test-node-e2e-push && npm run test-node-e2e-redis", - "test-node-e2e-online": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/online/node.spec.js | tap-min", + "test-node-e2e-online": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/online/node.spec.js", "test-node-e2e-offline": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/offline/node.spec.js | tap-min", "test-node-e2e-destroy": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/destroy/node.spec.js | tap-min", "test-node-e2e-errorCatching": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/errorCatching/node.spec.js | tap-min", diff --git a/src/__tests__/nodeSuites/ready-promise.spec.js b/src/__tests__/nodeSuites/ready-promise.spec.js index 7d0f35619..301aebb6c 100644 --- a/src/__tests__/nodeSuites/ready-promise.spec.js +++ b/src/__tests__/nodeSuites/ready-promise.spec.js @@ -105,7 +105,11 @@ export default function readyPromiseAssertions(key, fetchMock, assert) { // /splitChanges takes longer than 'requestTimeoutBeforeReady' only for the first attempt fetchMock.getOnce(config.urls.sdk + '/splitChanges?s=1.3&since=-1&rbSince=-1', splitChangesMock1, { delay: fromSecondsToMillis(config.startup.requestTimeoutBeforeReady) + 20 }); fetchMock.getOnce(config.urls.sdk + '/splitChanges?s=1.3&since=-1&rbSince=-1', splitChangesMock1, { delay: fromSecondsToMillis(config.startup.requestTimeoutBeforeReady) - 20 }); - mockSegmentChanges(fetchMock, new RegExp(config.urls.sdk + '/segmentChanges/*'), ['some_key']); + mockSegmentChanges(fetchMock, new RegExp(config.urls.sdk + '/segmentChanges/(splitters|developers|segment_excluded_by_rbs)'), ['some_key']); + fetchMock.getOnce(config.urls.sdk + '/segmentChanges/employees?since=-1', { status: 500, body: 'server error' }); + fetchMock.getOnce(config.urls.sdk + '/segmentChanges/employees?since=-1', { since: -1, till: 10, name: 'employees', added: ['some_key'], removed: [] }); + fetchMock.getOnce(config.urls.sdk + '/segmentChanges/employees?since=10', { since: 10, till: 10, name: 'employees', added: [], removed: [] }); + fetchMock.postOnce(config.urls.events + '/testImpressions/bulk', 200); fetchMock.postOnce(config.urls.events + '/testImpressions/count', 200); diff --git a/src/settings/defaults/version.js b/src/settings/defaults/version.js index 2a4a3206c..2eebb4ef0 100644 --- a/src/settings/defaults/version.js +++ b/src/settings/defaults/version.js @@ -1 +1 @@ -export const packageVersion = '11.7.1'; +export const packageVersion = '11.7.2-rc.0'; From 87b556dc7739015c133e621128f5e7e665e38a91 Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Mon, 3 Nov 2025 23:55:28 -0300 Subject: [PATCH 2/7] test: update Redis tests to assert fallback treatments --- src/__tests__/consumer/node_redis.spec.js | 11 +++++++++-- ts-tests/index.ts | 7 ++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/__tests__/consumer/node_redis.spec.js b/src/__tests__/consumer/node_redis.spec.js index 00ff3467a..597fe748b 100644 --- a/src/__tests__/consumer/node_redis.spec.js +++ b/src/__tests__/consumer/node_redis.spec.js @@ -550,7 +550,14 @@ tape('Node.js Redis', function (t) { t.test('Connection error', assert => { initializeRedisServer() .then((server) => { - const sdk = SplitFactory(config); + const sdk = SplitFactory({ + ...config, + fallbackTreatments: { + byFlag: { + 'always-on': 'control_always_on' + } + } + }); const client = sdk.client(); client.once(client.Event.SDK_READY_TIMED_OUT, assert.fail); @@ -585,7 +592,7 @@ tape('Node.js Redis', function (t) { assert.equal(await client.getTreatment('UT_Segment_member', 'UT_NOT_SET_MATCHER', { permissions: ['not_matching'] }), 'control', 'In the event of a Redis error like a disconnection, getTreatments should not hang but resolve to "control".'); - assert.equal(await client.getTreatment('UT_Segment_member', 'always-on'), 'control', 'In the event of a Redis error like a disconnection, getTreatments should not hang but resolve to "control".'); + assert.equal(await client.getTreatment('UT_Segment_member', 'always-on'), 'control_always_on', 'In the event of a Redis error like a disconnection, getTreatments should not hang but resolve to fallback treatment or "control".'); assert.false(await client.track('nicolas@split.io', 'user', 'test.redis.event', 18), 'In the event of a Redis error like a disconnection, track should resolve to false.'); diff --git a/ts-tests/index.ts b/ts-tests/index.ts index c1cf06960..e807fc913 100644 --- a/ts-tests/index.ts +++ b/ts-tests/index.ts @@ -263,7 +263,7 @@ promise = client.destroy(); promise = SDK.destroy(); // @TODO not public yet // promise = client.flush(); -const promiseWhenReadyFromCache: Promise = client.whenReadyFromCache(); +let promiseWhenReadyFromCache: Promise = client.whenReadyFromCache(); // Get readiness status let status: SplitIO.ReadinessStatus = client.getStatus(); @@ -378,10 +378,15 @@ nodeEventEmitter = asyncClient; // Ready, destroy and flush (same as for sync client, just for interface checking) promise = asyncClient.ready(); +promise = asyncClient.whenReady(); promise = asyncClient.destroy(); promise = AsyncSDK.destroy(); // @TODO not public yet // promise = asyncClient.flush(); +promiseWhenReadyFromCache = asyncClient.whenReadyFromCache(); + +// Get readiness status +status = asyncClient.getStatus(); // We can call getTreatment but always with a key. asyncTreatment = asyncClient.getTreatment(splitKey, 'mySplit'); From 0647099e2620c68700779a10ea419ec2ff2f3161 Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Wed, 19 Nov 2025 16:59:59 -0300 Subject: [PATCH 3/7] validate refactor: set change number only if add/removeSplits operations don't fail, for storage consistency --- .../browserSuites/ready-from-cache.spec.js | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/__tests__/browserSuites/ready-from-cache.spec.js b/src/__tests__/browserSuites/ready-from-cache.spec.js index 419728fca..cc5f1fcb0 100644 --- a/src/__tests__/browserSuites/ready-from-cache.spec.js +++ b/src/__tests__/browserSuites/ready-from-cache.spec.js @@ -108,18 +108,30 @@ export const expectedHashWithFilter = '2ce5cc38'; // for SDK key ' { // Testing when we start from scratch + assert.test(t => { // Testing when we start from scratch, with an initial localStorage write operation fail (should retry splitChanges with -1) const testUrls = { sdk: 'https://sdk.baseurl/readyFromCacheEmpty', events: 'https://events.baseurl/readyFromCacheEmpty' }; localStorage.clear(); + + // simulate a localStorage failure when saving a FF + const originalSetItem = localStorage.setItem; + localStorage.setItem = (key, value) => { + if (key.includes('.split.')) { + localStorage.setItem = originalSetItem; + throw new Error('localStorage.setItem failed'); + } + return originalSetItem.call(localStorage, key, value); + }; + t.plan(4); - fetchMock.get(testUrls.sdk + '/splitChanges?s=1.3&since=-1&rbSince=-1', { status: 200, body: splitChangesMock1 }); - fetchMock.get(testUrls.sdk + '/memberships/nicolas%40split.io', { status: 200, body: membershipsNicolas }); - fetchMock.get(testUrls.sdk + '/memberships/nicolas2%40split.io', { status: 200, body: { 'ms': {} } }); - fetchMock.get(testUrls.sdk + '/memberships/nicolas3%40split.io', { status: 200, body: { 'ms': {} } }); + fetchMock.getOnce(testUrls.sdk + '/splitChanges?s=1.3&since=-1&rbSince=-1', { status: 200, body: splitChangesMock1 }); + fetchMock.getOnce(testUrls.sdk + '/splitChanges?s=1.3&since=-1&rbSince=-1', { status: 200, body: splitChangesMock1 }); + fetchMock.getOnce(testUrls.sdk + '/memberships/nicolas%40split.io', { status: 200, body: membershipsNicolas }); + fetchMock.getOnce(testUrls.sdk + '/memberships/nicolas2%40split.io', { status: 200, body: { 'ms': {} } }); + fetchMock.getOnce(testUrls.sdk + '/memberships/nicolas3%40split.io', { status: 200, body: { 'ms': {} } }); const splitio = SplitFactory({ ...baseConfig, From 37c3a6e7313f23dd27c8a15f47264913520d6f87 Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Tue, 25 Nov 2025 18:48:02 -0300 Subject: [PATCH 4/7] rc --- package-lock.json | 56 ++++++++++--------- package.json | 2 +- .../browserSuites/ready-from-cache.spec.js | 11 +++- src/settings/defaults/version.js | 2 +- 4 files changed, 40 insertions(+), 31 deletions(-) diff --git a/package-lock.json b/package-lock.json index 10c67632d..f1cd53768 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@splitsoftware/splitio", - "version": "11.8.0", + "version": "11.8.1-rc.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@splitsoftware/splitio", - "version": "11.8.0", + "version": "11.8.1-rc.0", "license": "Apache-2.0", "dependencies": { "@splitsoftware/splitio-commons": "2.8.1-rc.0", @@ -157,10 +157,11 @@ "dev": true }, "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -2629,10 +2630,11 @@ "dev": true }, "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -3998,9 +4000,10 @@ } }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -4382,10 +4385,11 @@ } }, "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "version": "2.19.2", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.2.tgz", + "integrity": "sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==", "dev": true, + "license": "MIT", "dependencies": { "dom-walk": "^0.1.0" } @@ -7576,9 +7580,9 @@ "dev": true }, "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "requires": { "argparse": "^2.0.1" @@ -9466,9 +9470,9 @@ "dev": true }, "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "requires": { "argparse": "^2.0.1" @@ -10547,9 +10551,9 @@ } }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -10869,9 +10873,9 @@ } }, "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "version": "2.19.2", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.2.tgz", + "integrity": "sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==", "dev": true, "requires": { "dom-walk": "^0.1.0" diff --git a/package.json b/package.json index 906a263d2..bb039ae2d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@splitsoftware/splitio", - "version": "11.8.0", + "version": "11.8.1-rc.0", "description": "Split SDK", "files": [ "README.md", diff --git a/src/__tests__/browserSuites/ready-from-cache.spec.js b/src/__tests__/browserSuites/ready-from-cache.spec.js index cc5f1fcb0..8a7f27360 100644 --- a/src/__tests__/browserSuites/ready-from-cache.spec.js +++ b/src/__tests__/browserSuites/ready-from-cache.spec.js @@ -115,9 +115,12 @@ export default function (fetchMock, assert) { }; localStorage.clear(); - // simulate a localStorage failure when saving a FF + // simulate a localStorage failure when saving a FF and a membership const originalSetItem = localStorage.setItem; localStorage.setItem = (key, value) => { + if (key.includes('.nicolas@split.io.')) { + throw new Error('localStorage.setItem failed'); + } if (key.includes('.split.')) { localStorage.setItem = originalSetItem; throw new Error('localStorage.setItem failed'); @@ -128,8 +131,9 @@ export default function (fetchMock, assert) { t.plan(4); fetchMock.getOnce(testUrls.sdk + '/splitChanges?s=1.3&since=-1&rbSince=-1', { status: 200, body: splitChangesMock1 }); - fetchMock.getOnce(testUrls.sdk + '/splitChanges?s=1.3&since=-1&rbSince=-1', { status: 200, body: splitChangesMock1 }); + fetchMock.getOnce(testUrls.sdk + '/splitChanges?s=1.3&since=-1&rbSince=-1', { status: 200, body: splitChangesMock1 }); // retry fetchMock.getOnce(testUrls.sdk + '/memberships/nicolas%40split.io', { status: 200, body: membershipsNicolas }); + fetchMock.getOnce(testUrls.sdk + '/memberships/nicolas%40split.io', { status: 200, body: membershipsNicolas }); // retry fetchMock.getOnce(testUrls.sdk + '/memberships/nicolas2%40split.io', { status: 200, body: { 'ms': {} } }); fetchMock.getOnce(testUrls.sdk + '/memberships/nicolas3%40split.io', { status: 200, body: { 'ms': {} } }); @@ -143,7 +147,8 @@ export default function (fetchMock, assert) { type: 'LOCALSTORAGE', prefix: 'readyFromCache_1' }, - urls: testUrls + urls: testUrls, + debug: 'WARN' }); const client = splitio.client(); const client2 = splitio.client('nicolas2@split.io'); diff --git a/src/settings/defaults/version.js b/src/settings/defaults/version.js index 378697e28..270ec4cf5 100644 --- a/src/settings/defaults/version.js +++ b/src/settings/defaults/version.js @@ -1 +1 @@ -export const packageVersion = '11.8.0'; +export const packageVersion = '11.8.1-rc.0'; From b1f98e24631b7fbd7e3197aebf5d29602c629a9f Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Tue, 25 Nov 2025 18:49:25 -0300 Subject: [PATCH 5/7] rc --- .github/workflows/ci-cd.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index da4132be3..7033bbbb4 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -57,7 +57,7 @@ jobs: run: BUILD_BRANCH=$(echo "${GITHUB_REF#refs/heads/}") npm run build - name: Store assets - if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/development' || github.ref == 'refs/heads/main') }} + if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/handle-segmentchanges-timeout' || github.ref == 'refs/heads/main') }} uses: actions/upload-artifact@v5 with: name: assets @@ -68,7 +68,7 @@ jobs: name: Upload assets runs-on: ubuntu-latest needs: build - if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/development' }} + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/handle-segmentchanges-timeout' }} strategy: matrix: environment: From e3e0a8d8cd29fa3e262a1bf6a615eb79f6e42f16 Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Tue, 25 Nov 2025 19:03:21 -0300 Subject: [PATCH 6/7] polishing --- .github/workflows/ci-cd.yml | 4 ++-- package.json | 2 +- src/__tests__/browserSuites/ready-from-cache.spec.js | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 7033bbbb4..da4132be3 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -57,7 +57,7 @@ jobs: run: BUILD_BRANCH=$(echo "${GITHUB_REF#refs/heads/}") npm run build - name: Store assets - if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/handle-segmentchanges-timeout' || github.ref == 'refs/heads/main') }} + if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/development' || github.ref == 'refs/heads/main') }} uses: actions/upload-artifact@v5 with: name: assets @@ -68,7 +68,7 @@ jobs: name: Upload assets runs-on: ubuntu-latest needs: build - if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/handle-segmentchanges-timeout' }} + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/development' }} strategy: matrix: environment: diff --git a/package.json b/package.json index bb039ae2d..9af24fba6 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "test-node": "npm run test-node-unit && npm run test-node-e2e", "test-node-unit": "cross-env NODE_ENV=test tape -r ./ts-node.register \"src/*/**/__tests__/**/!(browser).spec.js\" | tap-min", "test-node-e2e": "npm run test-node-e2e-online && npm run test-node-e2e-offline && npm run test-node-e2e-destroy && npm run test-node-e2e-errorCatching && npm run test-node-e2e-push && npm run test-node-e2e-redis", - "test-node-e2e-online": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/online/node.spec.js", + "test-node-e2e-online": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/online/node.spec.js | tap-min", "test-node-e2e-offline": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/offline/node.spec.js | tap-min", "test-node-e2e-destroy": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/destroy/node.spec.js | tap-min", "test-node-e2e-errorCatching": "cross-env NODE_ENV=test tape -r ./ts-node.register src/__tests__/errorCatching/node.spec.js | tap-min", diff --git a/src/__tests__/browserSuites/ready-from-cache.spec.js b/src/__tests__/browserSuites/ready-from-cache.spec.js index 8a7f27360..bacbf2cbb 100644 --- a/src/__tests__/browserSuites/ready-from-cache.spec.js +++ b/src/__tests__/browserSuites/ready-from-cache.spec.js @@ -147,8 +147,7 @@ export default function (fetchMock, assert) { type: 'LOCALSTORAGE', prefix: 'readyFromCache_1' }, - urls: testUrls, - debug: 'WARN' + urls: testUrls }); const client = splitio.client(); const client2 = splitio.client('nicolas2@split.io'); From fc3150c7a1a4cf78efdc97f2010bfee249866c39 Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Wed, 26 Nov 2025 14:47:38 -0300 Subject: [PATCH 7/7] stable --- package-lock.json | 18 +++++++++--------- package.json | 4 ++-- src/settings/defaults/version.js | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index f1cd53768..552a8ed8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,15 @@ { "name": "@splitsoftware/splitio", - "version": "11.8.1-rc.0", + "version": "11.9.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@splitsoftware/splitio", - "version": "11.8.1-rc.0", + "version": "11.9.0", "license": "Apache-2.0", "dependencies": { - "@splitsoftware/splitio-commons": "2.8.1-rc.0", + "@splitsoftware/splitio-commons": "2.9.0", "bloom-filters": "^3.0.4", "ioredis": "^4.28.0", "js-yaml": "^3.13.1", @@ -352,9 +352,9 @@ "dev": true }, "node_modules/@splitsoftware/splitio-commons": { - "version": "2.8.1-rc.0", - "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-2.8.1-rc.0.tgz", - "integrity": "sha512-xMBD7svIlcvuvnedwsnvDWNzDMho3SkAy8Ed+NxnUbc08gHqI/rmfDtIwuq7AGn3zdWaETNzQkPXS0acbg362w==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-2.9.0.tgz", + "integrity": "sha512-dfGqtiuYcWeR235NM43z3BOULTFi+hdkB1FbOHePrufWJTYBOfuBeIgPnsW3wyg+kXyGkNN49JyywZHrJtVpDA==", "license": "Apache-2.0", "dependencies": { "@types/ioredis": "^4.28.0", @@ -7744,9 +7744,9 @@ "dev": true }, "@splitsoftware/splitio-commons": { - "version": "2.8.1-rc.0", - "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-2.8.1-rc.0.tgz", - "integrity": "sha512-xMBD7svIlcvuvnedwsnvDWNzDMho3SkAy8Ed+NxnUbc08gHqI/rmfDtIwuq7AGn3zdWaETNzQkPXS0acbg362w==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-2.9.0.tgz", + "integrity": "sha512-dfGqtiuYcWeR235NM43z3BOULTFi+hdkB1FbOHePrufWJTYBOfuBeIgPnsW3wyg+kXyGkNN49JyywZHrJtVpDA==", "requires": { "@types/ioredis": "^4.28.0", "tslib": "^2.3.1" diff --git a/package.json b/package.json index 9af24fba6..67480b7c3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@splitsoftware/splitio", - "version": "11.8.1-rc.0", + "version": "11.9.0", "description": "Split SDK", "files": [ "README.md", @@ -38,7 +38,7 @@ "node": ">=14.0.0" }, "dependencies": { - "@splitsoftware/splitio-commons": "2.8.1-rc.0", + "@splitsoftware/splitio-commons": "2.9.0", "bloom-filters": "^3.0.4", "ioredis": "^4.28.0", "js-yaml": "^3.13.1", diff --git a/src/settings/defaults/version.js b/src/settings/defaults/version.js index 270ec4cf5..8d52cef10 100644 --- a/src/settings/defaults/version.js +++ b/src/settings/defaults/version.js @@ -1 +1 @@ -export const packageVersion = '11.8.1-rc.0'; +export const packageVersion = '11.9.0';