Repository navigation
build: upgrade node from 24.21.0 to 26.10.0 - #3588
Merged
Merged
Conversation
Move the production image, CI, .nvmrc, engines, the dev container and the README to Node 26 together, so the version CI tests against is the version the image ships. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_012HJcjmPgnddvbTCwe5kvW3
valleXYZ (vseehausen)
approved these changes
Oct 12, 2026
Pooya Raki (PooyaRaki)
added a commit
that referenced
this pull request
Oct 15, 2026
The node:26 images no longer bundle Yarn and Node 25+ no longer ships Corepack, so `yarn install` failed with exit code 127 in the devstaging build after the Node 26 upgrade (#3588). CI was unaffected because GitHub runners have Yarn installed globally. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Pooya Raki (PooyaRaki)
added a commit
that referenced
this pull request
Oct 15, 2026
The Docker image build has been failing on `main` since the Node 26 upgrade (#3588): `RUN yarn install` exits with `/bin/sh: yarn: not found` (exit code 127) — [failed run](https://github.com/safe-global/safe-client-gateway/actions/runs/38732856014/job/116417969071). The official `node` images stopped bundling Yarn v1 from Node 26 ([nodejs/docker-node#2474](nodejs/docker-node#2474)), and Node itself stopped shipping Corepack from v25, so the build stage has no way to start Yarn. CI didn't catch it because the GitHub runners have Yarn installed globally; only the Docker build runs inside the bare image. This installs Corepack in the build stage and enables it. Corepack resolves `[email protected]` from `packageManager`, which then defers to the vendored release via `yarnPath`. The Corepack version is pinned as a devDependency (0.36.0, past the 7-day `npmMinimalAgeGate`) and the Dockerfile reads it from `package.json`, so the existing npm Dependabot ecosystem bumps it — Dependabot's docker ecosystem only updates `FROM` tags, not version values in `ARG`/`ENV`. The production stage runs `node` directly and is unchanged. --------- Co-authored-by: Claude Opus 5.5 <[email protected]>
Pooya Raki (PooyaRaki)
added a commit
that referenced
this pull request
Oct 21, 2026
Upgrade the runtime from Node 26.10.0 to 26.12.1, the latest Node release (published 2026-10-21), on `alpine3.24`, the newest Alpine variant of the official image. As in #3588, every place that pins the version moves together, so the version CI lints and tests against is the version the image ships. This supersedes Dependabot's #3634 (26.11.1), which only touched the `Dockerfile`. The dev container's digest moves from image release 5.2.2 to 5.2.3, the latest stable `typescript-node:26-bookworm`. Both ship Node 26.10.0: Microsoft hasn't published a 26.12.1 build yet, so the dev container stays one patch behind production until it does. Yarn 4 doesn't enforce `engines`, so the dev container keeps working on 26.10.0. --------- Co-authored-by: Claude Opus 5.5 <[email protected]>
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.
Summary
Upgrade the runtime from Node 24.21.0 to 26.10.0 everywhere at once. Node 26 enters Active LTS later this month.
This replaces Dependabot's #3576. That PR changed only the
Dockerfile, while CI kept linting and testing on Node 24 (the_ci-node.ymldefault and.nvmrc). Its green run therefore said nothing about Node 26, and the first time the code would have run on 26 was the devstaging image. Here the version CI tests against is the version the image ships.Risk: this is a runtime major. CI now runs the full unit and integration suites on 26.10.0, but the image itself is only built after merge (
devstaging.yml). It's worth letting it run in devstaging for a while before cutting a release.Changes
Dockerfile:node:26.10.0-alpine3.24for both the build and production stages.github/workflows/_ci-node.yml:node_versiondefault26.10.0; drop the stale# Krypton(Node 24) comments.nvmrc:26.10.0package.json:engines.node>=26.10.0.devcontainer/Dockerfile:typescript-node:26-bookworm, pinned by digest (ships Node 26.10.0)README.md: requirements lineLocally on Node 26.10.0:
yarn install --immutable,format,lint,typecheckandbuildare clean, andyarn testpasses 384 files, 6962 tests, 18 skipped. Integration tests run in CI.🤖 Generated with Claude Code
https://claude.ai/code/session_012HJcjmPgnddvbTCwe5kvW3
Generated by Claude Code