From 239b89d7106c65ecb71654f4440fe880b3549d50 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 6 Aug 2026 15:29:17 +0000 Subject: [PATCH 01/11] chore: enforce npm min-release-age dependency cooldown Co-Authored-By: Steven Zhang --- .github/workflows/ci.yml | 2 ++ .gitignore | 1 - .npmrc | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 .npmrc diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ded43da5..a8e6a3a4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,6 +27,8 @@ jobs: with: node-version: ${{ matrix.variations.node }} registry-url: 'https://registry.npmjs.org' + - name: Use npm version supporting min-release-age + run: npm install -g npm@^11.9.1 - name: Install run: npm install - name: Build diff --git a/.gitignore b/.gitignore index 2c182bff..07d55e56 100644 --- a/.gitignore +++ b/.gitignore @@ -14,5 +14,4 @@ docs/build/ yarn.lock package-lock.json pnpm-lock.yaml -.npmrc docs/ diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..ec9e05d8 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +min-release-age=3 From faf019f47ea1b3bc3c05c61a713b8083ee7b3a05 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Thu, 6 Aug 2026 15:49:02 +0000 Subject: [PATCH 02/11] chore: retrigger ci Co-Authored-By: Steven Zhang From 210d24da24d4cb45610b6e62aeaa83466b96f511 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 7 Aug 2026 13:56:04 +0000 Subject: [PATCH 03/11] chore: exempt LaunchDarkly SDK packages from the cooldown Co-Authored-By: Steven Zhang --- .github/workflows/ci.yml | 4 ++-- .npmrc | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a8e6a3a4..0c4a4b2f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: matrix: variations: [ # {os: ubuntu-latest, node: latest}, - {os: ubuntu-latest, node: 'lts/*'}, + {os: ubuntu-latest, node: 22}, ] runs-on: ${{ matrix.variations.os }} @@ -28,7 +28,7 @@ jobs: node-version: ${{ matrix.variations.node }} registry-url: 'https://registry.npmjs.org' - name: Use npm version supporting min-release-age - run: npm install -g npm@^11.9.1 + run: npm install -g npm@^12.0.0 - name: Install run: npm install - name: Build diff --git a/.npmrc b/.npmrc index ec9e05d8..5abb2548 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,40 @@ min-release-age=3 +min-release-age-exclude[]=@launchdarkly/akamai-edgeworker-sdk-common +min-release-age-exclude[]=@launchdarkly/akamai-server-base-sdk +min-release-age-exclude[]=@launchdarkly/akamai-server-edgekv-sdk +min-release-age-exclude[]=@launchdarkly/browser +min-release-age-exclude[]=@launchdarkly/client-testing-plugin +min-release-age-exclude[]=@launchdarkly/cloudflare-server-sdk +min-release-age-exclude[]=@launchdarkly/electron-client-sdk +min-release-age-exclude[]=@launchdarkly/fastly-server-sdk +min-release-age-exclude[]=@launchdarkly/jest +min-release-age-exclude[]=@launchdarkly/js-client-sdk +min-release-age-exclude[]=@launchdarkly/js-client-sdk-common +min-release-age-exclude[]=@launchdarkly/js-sdk-common +min-release-age-exclude[]=@launchdarkly/js-server-sdk-common +min-release-age-exclude[]=@launchdarkly/js-server-sdk-common-edge +min-release-age-exclude[]=@launchdarkly/node-client-sdk +min-release-age-exclude[]=@launchdarkly/node-server-sdk +min-release-age-exclude[]=@launchdarkly/node-server-sdk-dynamodb +min-release-age-exclude[]=@launchdarkly/node-server-sdk-otel +min-release-age-exclude[]=@launchdarkly/node-server-sdk-redis +min-release-age-exclude[]=@launchdarkly/openfeature-js-server-common +min-release-age-exclude[]=@launchdarkly/openfeature-node-server +min-release-age-exclude[]=@launchdarkly/react-native-client-sdk +min-release-age-exclude[]=@launchdarkly/react-sdk +min-release-age-exclude[]=@launchdarkly/sdk-logs-js +min-release-age-exclude[]=@launchdarkly/sdk-meta +min-release-age-exclude[]=@launchdarkly/server-sdk-ai +min-release-age-exclude[]=@launchdarkly/server-sdk-ai-langchain +min-release-age-exclude[]=@launchdarkly/server-sdk-ai-openai +min-release-age-exclude[]=@launchdarkly/server-sdk-ai-vercel +min-release-age-exclude[]=@launchdarkly/shopify-oxygen-sdk +min-release-age-exclude[]=@launchdarkly/svelte-client-sdk +min-release-age-exclude[]=@launchdarkly/vercel-server-sdk +min-release-age-exclude[]=@launchdarkly/vue-client-sdk +min-release-age-exclude[]=launchdarkly-electron-client-sdk +min-release-age-exclude[]=launchdarkly-js-client-sdk +min-release-age-exclude[]=launchdarkly-js-sdk-common +min-release-age-exclude[]=launchdarkly-node-client-sdk +min-release-age-exclude[]=launchdarkly-react-client-sdk +min-release-age-exclude[]=launchdarkly-vue-client-sdk From f0d644fec87f1a4e0559205f128c38b6f7ad31b9 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 7 Aug 2026 14:11:21 +0000 Subject: [PATCH 04/11] chore: limit cooldown exemptions to packages actually used Co-Authored-By: Steven Zhang --- .npmrc | 38 -------------------------------------- 1 file changed, 38 deletions(-) diff --git a/.npmrc b/.npmrc index 5abb2548..d4d63415 100644 --- a/.npmrc +++ b/.npmrc @@ -1,40 +1,2 @@ min-release-age=3 -min-release-age-exclude[]=@launchdarkly/akamai-edgeworker-sdk-common -min-release-age-exclude[]=@launchdarkly/akamai-server-base-sdk -min-release-age-exclude[]=@launchdarkly/akamai-server-edgekv-sdk -min-release-age-exclude[]=@launchdarkly/browser -min-release-age-exclude[]=@launchdarkly/client-testing-plugin -min-release-age-exclude[]=@launchdarkly/cloudflare-server-sdk -min-release-age-exclude[]=@launchdarkly/electron-client-sdk -min-release-age-exclude[]=@launchdarkly/fastly-server-sdk -min-release-age-exclude[]=@launchdarkly/jest -min-release-age-exclude[]=@launchdarkly/js-client-sdk -min-release-age-exclude[]=@launchdarkly/js-client-sdk-common -min-release-age-exclude[]=@launchdarkly/js-sdk-common -min-release-age-exclude[]=@launchdarkly/js-server-sdk-common -min-release-age-exclude[]=@launchdarkly/js-server-sdk-common-edge -min-release-age-exclude[]=@launchdarkly/node-client-sdk -min-release-age-exclude[]=@launchdarkly/node-server-sdk -min-release-age-exclude[]=@launchdarkly/node-server-sdk-dynamodb -min-release-age-exclude[]=@launchdarkly/node-server-sdk-otel -min-release-age-exclude[]=@launchdarkly/node-server-sdk-redis -min-release-age-exclude[]=@launchdarkly/openfeature-js-server-common -min-release-age-exclude[]=@launchdarkly/openfeature-node-server -min-release-age-exclude[]=@launchdarkly/react-native-client-sdk -min-release-age-exclude[]=@launchdarkly/react-sdk -min-release-age-exclude[]=@launchdarkly/sdk-logs-js -min-release-age-exclude[]=@launchdarkly/sdk-meta -min-release-age-exclude[]=@launchdarkly/server-sdk-ai -min-release-age-exclude[]=@launchdarkly/server-sdk-ai-langchain -min-release-age-exclude[]=@launchdarkly/server-sdk-ai-openai -min-release-age-exclude[]=@launchdarkly/server-sdk-ai-vercel -min-release-age-exclude[]=@launchdarkly/shopify-oxygen-sdk -min-release-age-exclude[]=@launchdarkly/svelte-client-sdk -min-release-age-exclude[]=@launchdarkly/vercel-server-sdk -min-release-age-exclude[]=@launchdarkly/vue-client-sdk -min-release-age-exclude[]=launchdarkly-electron-client-sdk min-release-age-exclude[]=launchdarkly-js-client-sdk -min-release-age-exclude[]=launchdarkly-js-sdk-common -min-release-age-exclude[]=launchdarkly-node-client-sdk -min-release-age-exclude[]=launchdarkly-react-client-sdk -min-release-age-exclude[]=launchdarkly-vue-client-sdk From 9b5c45c2e6743aa241b49975799b724ad04bed79 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 7 Aug 2026 14:12:51 +0000 Subject: [PATCH 05/11] chore: exempt transitive first-party packages from the cooldown Co-Authored-By: Steven Zhang --- .npmrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.npmrc b/.npmrc index d4d63415..84fc16c6 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1,3 @@ min-release-age=3 min-release-age-exclude[]=launchdarkly-js-client-sdk +min-release-age-exclude[]=launchdarkly-js-sdk-common From 411bd132dca502af7191e4428480422e1022caf3 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 7 Aug 2026 14:21:14 +0000 Subject: [PATCH 06/11] ci: use npm 12 in release workflow so the cooldown applies to releases Co-Authored-By: Steven Zhang --- .github/workflows/release-please.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index e49cbcb0..c8dd2562 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -48,7 +48,7 @@ jobs: - name: Update NPM shell: bash # Must be greater than 11.5.1 for OIDC. - run: npm install -g npm@11.6.2 + run: npm install -g npm@^12.0.0 - name: Install Dependencies run: npm install @@ -87,7 +87,7 @@ jobs: - name: Update NPM shell: bash # Must be greater than 11.5.1 for OIDC. - run: npm install -g npm@11.6.2 + run: npm install -g npm@^12.0.0 - name: Install Dependencies run: npm install From 2862589e007f91ce4063dddaf6f144f2384c53a1 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 16:45:09 +0000 Subject: [PATCH 07/11] ci: rely on the runner's bundled npm for release builds Co-Authored-By: Steven Zhang --- .github/workflows/ci.yml | 2 +- .github/workflows/release-please.yml | 8 -------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0c4a4b2f..fbc1345d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,7 +28,7 @@ jobs: node-version: ${{ matrix.variations.node }} registry-url: 'https://registry.npmjs.org' - name: Use npm version supporting min-release-age - run: npm install -g npm@^12.0.0 + run: npm install -g npm@^11.17.0 - name: Install run: npm install - name: Build diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index c8dd2562..128a83f4 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -45,10 +45,6 @@ jobs: node-version: 24.x registry-url: 'https://registry.npmjs.org' - - name: Update NPM - shell: bash - # Must be greater than 11.5.1 for OIDC. - run: npm install -g npm@^12.0.0 - name: Install Dependencies run: npm install @@ -84,10 +80,6 @@ jobs: node-version: 24.x registry-url: 'https://registry.npmjs.org' - - name: Update NPM - shell: bash - # Must be greater than 11.5.1 for OIDC. - run: npm install -g npm@^12.0.0 - name: Install Dependencies run: npm install From 020757daafa5f01b5920f10cc25bf8f0e9e637e2 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 17:04:44 +0000 Subject: [PATCH 08/11] ci: run on node 24 and use its bundled npm Co-Authored-By: Steven Zhang --- .github/workflows/ci.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fbc1345d..5177e4b3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: matrix: variations: [ # {os: ubuntu-latest, node: latest}, - {os: ubuntu-latest, node: 22}, + {os: ubuntu-latest, node: 24}, ] runs-on: ${{ matrix.variations.os }} @@ -27,8 +27,6 @@ jobs: with: node-version: ${{ matrix.variations.node }} registry-url: 'https://registry.npmjs.org' - - name: Use npm version supporting min-release-age - run: npm install -g npm@^11.17.0 - name: Install run: npm install - name: Build From cb3f36e4266f1867af459de863c2646b02706126 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 18:15:26 +0000 Subject: [PATCH 09/11] ci: install npm 11.17 since the runner image ships 11.16 Co-Authored-By: Steven Zhang --- .github/workflows/ci.yml | 4 ++++ .github/workflows/release-please.yml | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5177e4b3..ba9fbec7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,6 +27,10 @@ jobs: with: node-version: ${{ matrix.variations.node }} registry-url: 'https://registry.npmjs.org' + - name: Update NPM + shell: bash + # Must be >=11.17.0 for min-release-age-exclude. + run: npm install -g npm@^11.17.0 - name: Install run: npm install - name: Build diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 128a83f4..129007ff 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -46,6 +46,11 @@ jobs: registry-url: 'https://registry.npmjs.org' + - name: Update NPM + shell: bash + # Must be greater than 11.5.1 for OIDC, and >=11.17.0 for min-release-age-exclude. + run: npm install -g npm@^11.17.0 + - name: Install Dependencies run: npm install # Publishing will build because we have a prepublish script. @@ -81,6 +86,11 @@ jobs: registry-url: 'https://registry.npmjs.org' + - name: Update NPM + shell: bash + # Must be greater than 11.5.1 for OIDC, and >=11.17.0 for min-release-age-exclude. + run: npm install -g npm@^11.17.0 + - name: Install Dependencies run: npm install From a04d73e80a17668ea40dc38c2607a9defbce053f Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 18:24:31 +0000 Subject: [PATCH 10/11] ci: require node >=24.19.0 so bundled npm supports the age gate Co-Authored-By: Steven Zhang --- .github/workflows/ci.yml | 2 +- .github/workflows/release-please.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ba9fbec7..bc84a5cc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: matrix: variations: [ # {os: ubuntu-latest, node: latest}, - {os: ubuntu-latest, node: 24}, + {os: ubuntu-latest, node: '^24.19.0'}, ] runs-on: ${{ matrix.variations.os }} diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 129007ff..239b76c9 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -42,7 +42,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: 24.x + node-version: '^24.19.0' registry-url: 'https://registry.npmjs.org' @@ -82,7 +82,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: 24.x + node-version: '^24.19.0' registry-url: 'https://registry.npmjs.org' From e62f4cbd058643b88ae71fc887d9fec6addb45c1 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 18:31:00 +0000 Subject: [PATCH 11/11] ci: drop manual npm install now that node 24.19 bundles npm 11.17 Co-Authored-By: Steven Zhang --- .github/workflows/ci.yml | 4 ---- .github/workflows/release-please.yml | 10 ---------- 2 files changed, 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bc84a5cc..6e602bfc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,10 +27,6 @@ jobs: with: node-version: ${{ matrix.variations.node }} registry-url: 'https://registry.npmjs.org' - - name: Update NPM - shell: bash - # Must be >=11.17.0 for min-release-age-exclude. - run: npm install -g npm@^11.17.0 - name: Install run: npm install - name: Build diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 239b76c9..81561cbc 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -46,11 +46,6 @@ jobs: registry-url: 'https://registry.npmjs.org' - - name: Update NPM - shell: bash - # Must be greater than 11.5.1 for OIDC, and >=11.17.0 for min-release-age-exclude. - run: npm install -g npm@^11.17.0 - - name: Install Dependencies run: npm install # Publishing will build because we have a prepublish script. @@ -86,11 +81,6 @@ jobs: registry-url: 'https://registry.npmjs.org' - - name: Update NPM - shell: bash - # Must be greater than 11.5.1 for OIDC, and >=11.17.0 for min-release-age-exclude. - run: npm install -g npm@^11.17.0 - - name: Install Dependencies run: npm install