Repository navigation
Raise the supported Node floor to 22.12, and move CI to Node 22 - #636
Merged
Merged
Conversation
Node 20 has reached end of life. 22.12.0 is the first release of the 22 line in which JSON modules and import attributes are no longer experimental. `engines` goes from >=20.11.0 to >=22.12.0. The two CI jobs that stand for the floor, the Node step of the tests and the check of the packed package, run on exactly that version, so that what the package promises is what is tested. The lint rules that judge Node features by version follow. No source changes.
The row has Node connect to the proxy at `localhost` and printed only the first error's code. On Node 22.12.0 it is refused, on both Windows legs, where Node 20 connected. `localhost` is two addresses, and the code alone does not say which was refused.
…w say more On Node 22.12.0 the row tried `::1` only and was refused: the proxy listens on 127.0.0.1. This run is on the newest release of the 22 line, to tell a fault of that release from one of the line. On a failure the row also prints what `localhost` resolved to and whether Node's address fallback is on.
A comment only. On the newest Node 22 both Windows legs pass. On 22.12.0 the row that runs `node` inside the sandbox is refused, which is about the Node a sandboxed command runs and not about the one that runs the library.
antdres
self-requested a review
October 1, 2026 11:48
antdres
approved these changes
Oct 1, 2026
antdres
approved these changes
Oct 1, 2026
Merged
ronleizrowice-ant
added a commit
that referenced
this pull request
Oct 2, 2026
The bundle had `>=22`: main's `>=22.12.0` stands. The comment on CI's Node step is main's, with the bundle's sentence on the steps repeated on 24.
This was referenced Oct 2, 2026
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.
enginesgoes from Node>=20.11.0to>=22.12.0, and CI moves from Node 20 to Node 22.Why
What changes
package.jsonand the lockfile:engines.nodeis>=22.12.0.eslint.config.js: the two rules that judge Node features by version use the new floor.No source changes.
Found on the way
The tests are not on 22.12.0 itself, because they also run
nodeinside the sandbox. On Windows, Node 22.12.0 tries only::1forlocalhostand is refused: the proxy is handed to a command aslocalhostand listens on 127.0.0.1. Node 20 and 22.23.2 connect.This is about the Node a sandboxed command runs, which
enginesdoes not govern. Whether the proxy should listen on both loopback addresses, or be named by address, is not decided here.Who sees a difference
On Node 20, or on 22 before 22.12,
npm installwarns that the engine does not match, and fails whereengine-strictis set. Worth a line in the release notes.Testing
On this branch's CI, every leg passes with the tests on Node 22.23.2 and the package check on 22.12.0. With the tests on 22.12.0, both Windows legs failed in that one row and every other leg passed. Locally, eslint, prettier and the type-check are clean.