From c7de05e48ff41c85c5cbdb678f8773103f7842bf Mon Sep 17 00:00:00 2001 From: Lex Christopherson Date: Mon, 6 Apr 2026 14:54:03 -0600 Subject: [PATCH] fix(engines): lower Node.js minimum to 22 Node 22 is still in Active LTS until October 2026 and Maintenance LTS until April 2027. Raising the engines floor to >=24.0.0 unnecessarily locked out a fully-supported LTS version and produced EBADENGINE warnings on install. Restore Node 22 support, add Node 22 to the CI matrix, and update CONTRIBUTING.md to match. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/test.yml | 2 +- CHANGELOG.md | 8 +++++++- CONTRIBUTING.md | 10 +++++----- package.json | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8884f0b2d..a5b5a61e1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,7 +22,7 @@ jobs: fail-fast: true matrix: os: [ubuntu-latest] - node-version: [24] + node-version: [22, 24] include: # Single macOS runner — verifies platform compatibility on the standard version - os: macos-latest diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ba1f94c8..578629589 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [Unreleased] +## [1.34.2] - 2026-04-06 + +### Changed +- **Node.js minimum lowered to 22** — `engines.node` was raised to `>=24.0.0` based on a CI matrix change, but Node 22 is still in Active LTS until October 2026. Restoring Node 22 support eliminates the `EBADENGINE` warning for users on the previous LTS line. CI matrix now tests against both Node 22 and Node 24. + ## [1.34.1] - 2026-04-06 ### Fixed @@ -1859,7 +1864,8 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - YOLO mode for autonomous execution - Interactive mode with checkpoints -[Unreleased]: https://github.com/gsd-build/get-shit-done/compare/v1.34.1...HEAD +[Unreleased]: https://github.com/gsd-build/get-shit-done/compare/v1.34.2...HEAD +[1.34.2]: https://github.com/gsd-build/get-shit-done/releases/tag/v1.34.2 [1.34.1]: https://github.com/gsd-build/get-shit-done/releases/tag/v1.34.1 [1.34.0]: https://github.com/gsd-build/get-shit-done/releases/tag/v1.34.0 [1.33.0]: https://github.com/gsd-build/get-shit-done/releases/tag/v1.33.0 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8e39525ba..50024d598 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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 × Node 24) must be green +- **CI must pass** — all matrix jobs (Ubuntu × Node 22, 24; 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,17 +231,17 @@ const content = ` ### Node.js Version Compatibility -**Node 24 is the minimum and primary CI target.** All tests must pass on Node 24. +**Node 22 is the minimum supported version.** Node 24 is the primary CI target. All tests must pass on both. | Version | Status | |---------|--------| -| 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 22** | Minimum required — Active LTS until October 2026, Maintenance LTS until April 2027 | +| **Node 24** | Primary CI target — current Active LTS, all tests must pass | | Node 26 | Forward-compatible target — avoid deprecated APIs | Do not use: - Deprecated APIs -- APIs not available in Node 24 +- APIs not available in Node 22 Safe to use: - `node:test` — stable since Node 18, fully featured in 24 diff --git a/package.json b/package.json index bff47a38f..5e79efd96 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "url": "https://github.com/gsd-build/get-shit-done/issues" }, "engines": { - "node": ">=24.0.0" + "node": ">=22.0.0" }, "devDependencies": { "c8": "^11.0.0",