From 33b616b925ed11c918ad460cc9ce0ced4a10bfe6 Mon Sep 17 00:00:00 2001 From: John McLear Date: Fri, 15 May 2026 11:24:39 +0100 Subject: [PATCH] chore: align Node version pins with the Node 25+ floor (#7752) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The workspace root declares `engines.node: >=25.0.0` and `engineStrict: true`, so anyone running Node 22 or 24 is hard-blocked by pnpm at install time. Three places still referenced the old floor and were testing / supporting a configuration no real user can reach: 1. `.github/workflows/backend-tests.yml` Windows matrices (both `withoutpluginsWindows` and `withpluginsWindows`) still had `node: [22, 24, 25]`. The Linux jobs were already collapsed to `[25]`; this collapses the Windows side to match. Drops 4 Windows CI cells per develop push (Node 22 × 2 + Node 24 × 2) that were exercising an unsupported runtime. 2. `src/package.json` engines.node was `>=22.13.0`. Bumped to `>=25.0.0` to match the workspace root. `pnpm` floor bumped from `>=11.0.0` to `>=11.1.2` so the inner package agrees with the root packageManager pin. 3. `.github/workflows/deb-package.yml` setup-node was pinned to `node-version: '24'`. Every other setup-node call in the workflows folder is already on 25; this brings the deb job in line. Side benefit: the Windows + Node 24 flake addressed in #7748 is now moot for develop CI — Node 24 isn't tested at all. The `--exit` mitigation and node-diagnostic-report capture remain in place on Windows Node 25 as defence in depth in case the same native-crash class shows up on a different Node line. Verified locally: - cd src && pnpm exec vitest run tests/backend-new/specs/backend-tests-flake-mitigation.test.ts → 3 passed (3). The mitigation test counts step blocks (4) and Windows --exit invocations (2), not matrix dimensions, so the contract is unchanged. Co-authored-by: Claude Opus 4.7 (1M context) --- .github/workflows/backend-tests.yml | 6 ++++-- .github/workflows/deb-package.yml | 2 +- src/package.json | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/backend-tests.yml b/.github/workflows/backend-tests.yml index 7bfa69524..0ebea8576 100644 --- a/.github/workflows/backend-tests.yml +++ b/.github/workflows/backend-tests.yml @@ -179,7 +179,8 @@ jobs: strategy: fail-fast: false matrix: - node: [22, 24, 25] + # Etherpad requires Node >= 25 (see package.json engines.node). + node: ${{ fromJSON('[25]') }} name: Windows without plugins runs-on: windows-latest steps: @@ -246,7 +247,8 @@ jobs: strategy: fail-fast: false matrix: - node: [22, 24, 25] + # Etherpad requires Node >= 25 (see package.json engines.node). + node: ${{ fromJSON('[25]') }} name: Windows with Plugins runs-on: windows-latest diff --git a/.github/workflows/deb-package.yml b/.github/workflows/deb-package.yml index f8e769304..491c68015 100644 --- a/.github/workflows/deb-package.yml +++ b/.github/workflows/deb-package.yml @@ -53,7 +53,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v6 with: - node-version: '24' + node-version: '25' cache: pnpm - name: Resolve version diff --git a/src/package.json b/src/package.json index 9442c4c84..87f236449 100644 --- a/src/package.json +++ b/src/package.json @@ -138,9 +138,9 @@ "vitest": "^4.1.6" }, "engines": { - "node": ">=22.13.0", + "node": ">=25.0.0", "npm": ">=6.14.0", - "pnpm": ">=11.0.0" + "pnpm": ">=11.1.2" }, "repository": { "type": "git",