fix(ci): drop Node 22 from matrix, require Node 24 minimum (#1848)

Node 20 reached EOL April 30 2026. Node 22 is no longer the LTS
baseline — Node 24 is the current Active LTS. Update CI matrix to
run only Node 24, raise engines floor to >=24.0.0, and update
CONTRIBUTING.md node compatibility table accordingly.

Fixes #1847

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Tom Boucher
2026-04-05 23:23:07 -04:00
committed by GitHub
parent c0145018f6
commit f7d4d60522
3 changed files with 11 additions and 11 deletions

View File

@@ -22,7 +22,7 @@ jobs:
fail-fast: true
matrix:
os: [ubuntu-latest]
node-version: [22, 24]
node-version: [24]
include:
# Single macOS runner — verifies platform compatibility on the standard version
- os: macos-latest

View File

@@ -88,7 +88,7 @@ PRs that arrive without a properly-labeled linked issue are closed automatically
- **Link with a closing keyword** — use `Closes #123`, `Fixes #123`, or `Resolves #123` in the PR body. The CI check will fail and the PR will be auto-closed if no valid issue reference is found.
- **One concern per PR** — bug fixes, enhancements, and features must be separate PRs
- **No drive-by formatting** — don't reformat code unrelated to your change
- **CI must pass** — all matrix jobs (Ubuntu, macOS, Windows × Node 22, 24) must be green
- **CI must pass** — all matrix jobs (Ubuntu, macOS × Node 24) must be green
- **Scope matches the approved issue** — if your PR does more than what the issue describes, the extra changes will be asked to be removed or moved to a new issue
## Testing Standards
@@ -231,25 +231,25 @@ const content = `
### Node.js Version Compatibility
**Node 24 is the primary CI target.** All tests must pass on Node 24. Node 22 (LTS) must remain backward-compatible — do not use APIs that are not available in Node 22.
**Node 24 is the minimum and primary CI target.** All tests must pass on Node 24.
| Version | Status |
|---------|--------|
| **Node 24** | Primary CI target — all tests must pass |
| **Node 22** | Backward compatibility required |
| Node 22 | EOL April 2027 — no longer a CI target; may still work but unsupported |
| **Node 24** | Minimum required — primary CI target, all tests must pass |
| Node 26 | Forward-compatible target — avoid deprecated APIs |
Do not use:
- Deprecated APIs
- Version-specific features not available in Node 22
- APIs not available in Node 24
Safe to use:
- `node:test` — stable since Node 18, fully featured in 22+
- `node:test` — stable since Node 18, fully featured in 24
- `describe`/`it`/`test` — all supported
- `beforeEach`/`afterEach`/`before`/`after` — all supported
- `t.after()` — per-test cleanup, available in Node 22+
- `t.plan()` — available since Node 22.2
- Snapshot testing — available since Node 22.3
- `t.after()` — per-test cleanup
- `t.plan()` — fully supported
- Snapshot testing — fully supported
### Assertions

View File

@@ -36,7 +36,7 @@
"url": "https://github.com/gsd-build/get-shit-done/issues"
},
"engines": {
"node": ">=22.0.0"
"node": ">=24.0.0"
},
"devDependencies": {
"c8": "^11.0.0",