Repository navigation
chore: upgrade Node.js version to 24 in workflows and package files. - #975
Merged
Merged
Conversation
jonathanp-okta
marked this pull request as ready for review
October 26, 2026 21:34
|
Preview URL https://next-jwt-pns1rqvf5-okta.vercel.app |
jcmartinezdev
approved these changes
Oct 27, 2026
This branch was successfully deployed
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.
✏️ Changes
Moves the project from Node.js 20.x/22 to Node.js 24.x, because Vercel discontinued Node.js 20 for builds and Functions (see the changelog linked below). Vercel builds that still resolve to 20.x are blocked.
package.json: adds"engines": { "node": "24.x" }. Vercel reads this field and it overrides the project-level Node.js setting in the dashboard, so the version is pinned in the repo and no dashboard permission is needed to change it. It is pinned to a major (not an open-ended range) so Vercel can't silently move to a newer major.package.json/package-lock.json:@types/nodegoes from^20to^24to match the runtime. The lockfile change is limited to@types/node(20.12.2 → 24.19.2), itsundici-typesdependency (5.26.5 → 7.24.6) and the newenginesentry..github/workflows/tests.yaml,production.yaml,preview-community.yaml:actions/setup-nodenode-versiongoes from'22'to'24'(5 places) so CI runs on the same major as the Vercel build.No application code changes.
🔮 Type of Change
Build/runtime tooling update. No product surface, behavior or public API changes.
🔗 References
Node.js 20 is being deprecated on October 1, 2026 – Vercel
I added at least one link explaining why this change is needed.
📖 Documentation
No update needed. No docs reference the Node version.
🎯 Testing
On Node 24.15.0, from a clean
node_modules:npm ci: succeeds.npm run typecheck: clean.npm run lint: clean.npx vitest run: 11 files, 102 tests, all passing.npm run build: succeeds (23 static pages generated).Also verified on a separate branch that carries the same Node 24 change on top of other work: the full Playwright suite (Chromium + Firefox) passed (208 passed, 12 skipped), and the Vercel preview build log showed
Node.js version changed from "20.x" to "24.x", confirmingenginesis honored.Gaps a reviewer should know about:
Playwright was not re-run on this exact branch (based on current
master). CI (tests.yaml) will exercise it.production.yamlonly runs on push tomaster/production, so its deploy path on Node 24 is first exercised on merge.One Vercel preview build failed with
503 Service Unavailablefrom the JFrog OIDC token exchange inscripts/oidc-install.mjs, beforenpm cistarted. This is unrelated to Node. It cleared on retry. If it recurs, it needs JFrog/OIDC follow-up, not changes here.Not tested: Safari, real mobile devices.
I described how I tested these changes.
This change has test coverage, or I explained why it does not.
🚀 Deployment
Deployable at any time. Existing deployments keep running as they are; the new Node version applies to the next build.
enginestakes precedence over the Vercel dashboard Node.js setting, so no dashboard change is required (leaving it on 22.x or switching to 24.x are both fine).🔥 Rollback
Revert this PR to go back to the previous Node setup. Note that Node.js 20.x builds are blocked by Vercel, so after a revert the Vercel project's Node.js setting must be 22.x or newer for builds to succeed.