chore: require Node 22, test on 22 and 24 - #19
Merged
Conversation
zanjonke
reviewed
Aug 25, 2026
zanjonke
left a comment
Collaborator
There was a problem hiding this comment.
A great change. Left a minor comment.
| - uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: 20 | ||
| node-version: 22 # the engines floor |
Collaborator
There was a problem hiding this comment.
I think it would be better to use the same node version for both test and publish jobs. WDYT?
Member
Author
|
Addressed, take a peak. |
Node 18 and 20 are both past end of life (2025-04-30 and 2026-04-30), so the matrix was exercising two unsupported runtimes and engines advertised them. The publish job moves to 24: npm 12 requires ^22.22.2 || ^24.15.0 || >=26.0.0, and 24 is LTS until 2028-04-30, so npm@latest keeps resolving there for longer than the 22 line allows. The pre-publish test gate runs on 22 instead, the declared floor, so a 24-only API fails before anything is published. @types/node stays on ^22 deliberately: types should describe the floor, not the newest runtime, or 24-only APIs type-check and then break for consumers on 22. Raising the engines floor drops support for Node 18 and 20 consumers. The matrix rename also changes the required status check names on main.
The gate ran on 22 to cover the engines floor, but ci.yml already tests the whole supported matrix on every pull request. Matching the publish runtime makes the gate test what actually ships.
gorandodig
force-pushed
the
chore/require-node-22
branch
from
August 28, 2026 15:35
8c003d9 to
0a5e52b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Node 18 and 20 are both past end of life (2025-04-30 and 2026-04-30). The test
matrix was exercising two unsupported runtimes and
enginesadvertised them.enginesbecomes>=22, matching what is tested.^22.22.2 || ^24.15.0 || >=26.0.0, and 24 is LTS until 2028-04-30, sonpm@latestkeeps resolving there for longer than the 22 line allows.fails before anything is published.
@types/nodestays on^22deliberately: types should describe the floor,not the newest runtime, or 24-only APIs type-check and then break for
consumers on 22.
This changes the required status check names on
main. They are generatedfrom the matrix, so
Test (node 18)andTest (node 20)will never reportagain. Update branch protection to require
Test (node 22)andTest (node 24)in the same window, or pull requests will sit unmergeable.Raising the
enginesfloor drops support for Node 18 and 20 consumers.