chore: align Node version pins with the Node 25+ floor (#7752)

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) <noreply@anthropic.com>
This commit is contained in:
John McLear 2026-05-15 11:24:39 +01:00 committed by GitHub
parent ab60ed33c1
commit 33b616b925
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 7 additions and 5 deletions

View file

@ -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

View file

@ -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

View file

@ -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",