chore: raise the root .nvmrc to Node 24 - #724
Conversation
Greptile SummaryThe PR updates the repository’s root Node.js version marker from Node 22 to Node 24.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Reviews (2): Last reviewed commit: "chore: raise the root .nvmrc to Node 24" | Re-trigger Greptile |
Twelve packages depend on `@solana-program/token` at 0.14.0 or later, and every release of it that declares `engines` requires Node `>=24.0.0`. Developers following the checked-in toolchain get Node 22 and an unsupported-engine warning on install — an error once engine-strict is on. Nothing else in the repository still says 22: the two games projects pin 24.13.0 in their own .nvmrc, and CI resolves `lts/*`, which is Node 24 today. This brings the one file developers actually read into line.
6d42947 to
dc36aaa
Compare
|
@amilz could you take a look at this one when you get a chance? No open review threads left on it, so it is ready for maintainer review. It is one of 23 open Pinocchio ports I have up — they are independent and self-contained, so they can be reviewed and merged in any order: https://github.com/solana-developers/program-examples/pulls/MarkFeder |
|
Hey, in order to not overflow our reviewers with PRs, we'll limit the number of opened PRs to 3 per contributor for now. Thanks for the work! (You can re-open those whenever your other PRs get merged in) |
What
Raises the root
.nvmrcfrom22to24. One line.Split out of #723, where Greptile flagged the mismatch. Per CONTRIBUTING.md — "Do not bump language runtimes … as an incidental part of another change" — it belongs in its own PR rather than folded into an example.
Why
Twelve packages already require Node 24. They depend on
@solana-program/tokenat^0.14.0or later, and every release of that package which declaresenginesrequires>=24.0.0:engines.node>=24.0.0>=24.0.0>=24.0.0So there is no Node 22-compatible version to pin back to — the floor genuinely moved.
Nothing else in the repo still says 22. The two
games/*/pinocchioprojects already pin24.13.0in their own.nvmrc, and CI takes the setup action's defaultnode-version: 'lts/*'withcheck-latest: true, which resolves to Node 24 today. The root.nvmrcis the last file saying 22 — and the one contributors actually read, since CONTRIBUTING.md points them at it.Effect
A contributor on Node 22 currently gets an unsupported-engine warning on
pnpm install, and a hard failure onceengine-strictis enabled.No CI behaviour changes: no workflow reads the root
.nvmrc.just.ymlreads${{ matrix.project }}/.nvmrc— the per-project files undergames/— and every other workflow useslts/*or an explicit version. The Prettier job stays on Node 20, which is fine: it installs root devDependencies only (--ignore-workspace), and none of those declare an engine above 20.Deliberately left alone: no
enginesfield added to the rootpackage.json, and no change totypescript.yml.AI use: I identified the version floor and verified it against the published
enginesmetadata and every Node declaration in the repo; the change itself is one line.