chore(node): upgrade to Node.js 24 - #1106
Open
hsablonniere wants to merge 1 commit into
Open
Conversation
|
🔎 A preview has been automatically published! If you created the alias to the preview script, you can run this command to download and install this preview: clever-preview update feat-node-24You can also run it from your local repository: ./scripts/preview.js update feat-node-24
This preview will be deleted once this PR is closed. |
hsablonniere
force-pushed
the
feat/node-24
branch
from
June 24, 2026 16:18
56b7f61 to
b1be750
Compare
Open
hsablonniere
force-pushed
the
feat/node-24
branch
from
June 30, 2026 11:39
b1be750 to
99f85ed
Compare
Bump the runtime from Node.js 22 to 24.18.0 (Active LTS), and bump @yao-pkg/pkg 6.10.1 -> 6.21.0 (pulls pkg-fetch 3.6.4, the first to ship a Node 24.18.0 base binary). - engines.node: >=22 -> >=24 - volta.node / mise: 22.17.0 -> 24.18.0 - @yao-pkg/pkg: 6.10.1 -> 6.21.0 - docs: system CA note now mentions Node.js >= 24 Closes #1013 BREAKING CHANGE: Node.js 22 -> 24. Users installing via npm now need Node.js 24+ (binary users are unaffected, Node is embedded).
hsablonniere
force-pushed
the
feat/node-24
branch
from
June 30, 2026 12:22
99f85ed to
6b3c472
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.
Closes #1013
Context
Node.js 24 is now supported by
@yao-pkg/pkg. The project currently runs on Node.js 22 and pins@yao-pkg/pkg@6.10.1, which only resolves@yao-pkg/pkg-fetch@3.5.30— and that build ships a single v24 base binary (24.11.0).Proposal
Bump the runtime to Node.js 24.18.0 (Active LTS), and bump
@yao-pkg/pkg6.10.1 → 6.21.0 so the toolchain can fetch it.pkg@6.21.0pullspkg-fetch@3.6.4, whosepatches.jsonshipsv24.18.0as its v24 entry — i.e. whatpkgfetches for thenode24-*targets. Staying onpkg@6.10.1would lock us to24.11.0.@yao-pkg/pkg:6.10.1→6.21.0(pullspkg-fetch@3.6.4)engines.node:>=22→>=24volta.node/mise.toml:22.17.0→24.18.0docs/README.md: system-CA note now mentionsNode.js >= 24⚠ Breaking change → next release is a major (5.0.0)
Same as the Node 18 → 22 bump, which shipped as 4.0.0. Bumping the minimum Node version is breaking for users who install via npm.
npm installusers: now require Node.js 24+.The commit is
feat(node)!:with aBREAKING CHANGE:footer so release-please produces the major bump (mirrorschore!: prepare 4.0.0).Why not 25 or 26
pkg-fetch.pkg-fetch@3.6.4already ships av26base binary).Notes
.github/actions/setup-nodereadsnode-version-file: package.json(i.e.volta.node).volta.nodeinscripts/lib/build-binary.js(node${major}-${platform}-${arch}), so the major bump flows through automatically.How to test
mise install(orvolta install) → picks up Node 24.18.0npm ci && npm testnpm run build:binaryon each platform → confirmspkgfetches the Node 24.18.0 base binary and produces working executables (Linux / macOS / Windows)Out of scope — deferred until full e2e coverage
This PR is a pure runtime bump. The "now that we're on Node 24, let's use it" refactors are deliberately deferred until a complete e2e test suite is in place, so we can refactor safely (they touch runtime behavior across many commands). To be tracked as follow-up issues/PRs:
lodashin favor of native equivalents (structuredClone,Object.groupBy,Arraymethods, optional chaining).using/await usingfor resources currently closed viatry/finally.RegExp.escapewhere regex patterns are built from dynamic input.URLPattern, native type stripping — only if a concrete need shows up.