console: move the remaining Node 20 pins to Node 24 - #38219
Draft
jasonhernandez wants to merge 2 commits into
Draft
jasonhernandez wants to merge 2 commits into
jasonhernandez wants to merge 2 commits into
Conversation
CI already builds the console on Node 24 (ci/builder/Dockerfile); the Volta pin was the last thing steering local dev to the now-EOL Node 20. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
node:20-alpine is EOL and no longer receives security updates. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This branch has not been 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.
Motivation
Vercel emailed us that the
consoleproject is on Node.js 20, which is EOL — they reject new builds on it after 2026-10-01. The Vercel-side setting is fixed in MaterializeInc/i2#3698; this PR clears the leftover Node 20 pins in this repo.Worth stating up front, because it changes how urgent this looks: the console's Vercel builds are already on Node 24. All three deploy paths (
ci/deploy/console.sh,ci/test/console/vercel-preview.sh,ci/deploy/console-impersonation.sh) runvercel build+vercel deploy --prebuiltunderbin/ci-builder run stable, and ci-builder has beenFROM node:24-trixie-slimsince a152e93 (2026-07-15). Vercel never runs the build, so the deadline does not threaten our deploys. What's left is hygiene.Description
Two independent commits, so either can be dropped:
console/package.json—volta.node20.12.2→24.19.0(current Node 24 LTS). This was the last thing steering local dev to Node 20; CI ignores it (uses corepack plus the image's node).volta.yarnandpackageManagerare unchanged.console/misc/docker/Dockerfile—node:20-alpine→node:24-alpine. This is the hand-built self-hosted/impersonation image described inconsole/misc/docker/README.md, not built by CI. It was the only actual Node 20 execution left in the console.Deliberately not changed:
engines.node: ">=20.12.2"stays as is. 24 already satisfies it, and tightening it to>=24would make Yarn complain inconsole/Dockerfile, which builds on Node 22. Raising the floor is a separate decision.console/Dockerfile(node:22-alpine) stays. Node 22 is supported until 2027, so it is not part of this deadline.Verification
Built
console/misc/docker/Dockerfileas committed on this branch, with BuildKit, and ran the result:corepack enableandyarn install --immutablesucceed onnode:24-alpine(25s; only the peer-dependency warnings this repo already emits).yarn buildsucceeds — vite 6.4.3, 5906 modules transformed, built in 13.2s, withSOURCE_MAPS=trueand the Sentry plugin active (it skips the upload with no auth token, as expected locally).docker run -p 3000:8080 -e MZ_ENDPOINT=...returns HTTP 200 and the consoleindex.html.The Volta bump is unverified by execution, and inert for CI by inspection: nothing under
ci/,bin/,misc/, or.github/readsvolta, and both ci-builder variants (ci-builder-fullandci-builder-console) already take node fromFROM node:24-trixie-slim.Note that CI will run the full console suite on this PR (both files match the
console/**input filter), but none of those steps buildmisc/docker/Dockerfileor read the Volta pin — a green build here is not evidence for either change.🤖 Generated with Claude Code