Skip to content

chore: upgrade Node.js version to 24 in workflows and package files. - #975

Merged
jonathanp-okta merged 1 commit into
masterfrom
chore/node-24-upgrade
Oct 27, 2026
Merged

jonathanp-okta merged 1 commit into
masterfrom
chore/node-24-upgrade

Conversation

@jonathanp-okta

@jonathanp-okta jonathanp-okta commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

✏️ 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/node goes from ^20 to ^24 to match the runtime. The lockfile change is limited to @types/node (20.12.2 → 24.19.2), its undici-types dependency (5.26.5 → 7.24.6) and the new engines entry.
  • .github/workflows/tests.yaml, production.yaml, preview-community.yaml: actions/setup-node node-version goes 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.

  • Standard
  • Emergency
  • Significant

🔗 References

📖 Documentation

No update needed. No docs reference the Node version.

  • I reflected this change in the documentation, or explained why no update is needed.

🎯 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", confirming engines is 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.yaml only runs on push to master/production, so its deploy path on Node 24 is first exercised on merge.

  • One Vercel preview build failed with 503 Service Unavailable from the JFrog OIDC token exchange in scripts/oidc-install.mjs, before npm ci started. 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. engines takes 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).

  • This change can support multiple releases serving traffic at the same time.
  • This can be deployed at any time, or I listed the prerequisites.

🔥 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.

  • I explained the rollback and recovery process.

@jonathanp-okta jonathanp-okta self-assigned this Oct 26, 2026
@jonathanp-okta jonathanp-okta added the dependencies Pull requests that update a dependency file label Oct 26, 2026
@jonathanp-okta
jonathanp-okta marked this pull request as ready for review October 26, 2026 21:34
@github-actions

Copy link
Copy Markdown

Preview URL https://next-jwt-pns1rqvf5-okta.vercel.app

@jonathanp-okta
jonathanp-okta merged commit 1cc363e into master Oct 27, 2026
5 checks passed
@jonathanp-okta
jonathanp-okta deleted the chore/node-24-upgrade branch October 27, 2026 12:29

This branch was successfully deployed

1 active deployment
preview — 543659f5 Deployed Oct 26, 2026 by jonathanp-okta via Deploy-Preview #234
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants