Repository navigation
build(root): bump Nix dev shell to Node 22.23.4 - #10034
Draft
ralph-bitgo[bot] wants to merge 1 commit into
Draft
ralph-bitgo[bot] wants to merge 1 commit into
ralph-bitgo[bot] wants to merge 1 commit into
Conversation
The flake's nixpkgs-nodejs input was pinned to a nixpkgs revision whose nodejs_22 was 22.14.0, below the patched floor for the Node October 2026 security release. Move the pin to nixpkgs master 8bd52575 (verified nodejs_22 = 22.23.4) so the Node 22 dev shell matches the BitGo Express runtime update in WCN-3321 (22.23.4). The dev shell intentionally stays on Node 22 while the root .nvmrc keeps the separate Node 24 SDK toolchain; a comment in flake.nix now records that the two majors are independent decisions. Verified in the shell: node v22.23.4, npm 10.9.9 (bundled with the Node toolchain), yarn 1.22.22; nix flake check passes and flake.lock matches the input pin. Ticket: PLAT-2213 Session-Id: 43e5ef1d-2bb5-49a8-8dd2-7c4a9fd4fd47 Task-Id: e5e0b452-7fb4-4ea6-98c2-7e96e3c91dd8
Contributor
| # Node 22 is intentional here: the dev shell mirrors the BitGo Express | ||
| # runtime major, while the root .nvmrc pins the separate Node 24 SDK | ||
| # toolchain. Keep the two decisions independent. | ||
| nixpkgs-nodejs.url = "github:nixos/nixpkgs/8bd525757851975db0aebe3af18073b7f52d6f34"; # Node.js 22.23.4 |
Author
There was a problem hiding this comment.
I picked this revision because nixpkgs master is currently the only branch carrying nodejs_22 = 22.23.4 — both nixos-unstable and nixpkgs-unstable still resolve 22.23.3, below the remediation floor. The 22.23.4 bump landed in master commit fb7f563bfe; this pin is a master rev at/after it that I verified still exposes yarn with the nodejs override argument this flake relies on, and the toolchain came straight from the binary cache (no source build needed).
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.
Description
Bumps the Nix dev shell to a patched Node 22 (October 2026 security
remediation).
What
flake.nix:nixpkgs-nodejsinput pin6ad174a6…(nodejs_22 =22.14.0) →
8bd525757851975db0aebe3af18073b7f52d6f34(nixpkgsmaster; nodejs_22 = 22.23.4). The trailing comment now records the
new version.
flake.lock:nixpkgs-nodejsre-locked to the same revision(narHash
sha256-vgbDVD3b…BMr7aA=); the separatenixpkgsinput isuntouched.
flake.nix: short comment recording that the Node 22 dev shell andthe root
.nvmrc(Node 24) are independent decisions..nvmrc, CI, or application changes.Why
nodejs_22(22.14.0) is below the patched floor of theNode October 2026 security release. PLAT-2213 asks the shell to land
on 22.23.4, matching the BitGo Express runtime update (WCN-3321,
fix(express): bump Dockerfile Node base image to 22.23.4 #10022,
node:22.23.4-bookworm-slim).major) while the root
.nvmrckeeps the separate Node 24 SDKtoolchain decision (WCN-3186). Both majors are preserved on purpose,
so devs running the shell get the same major the service runs.
Issue Number
PLAT-2213 — https://linear.app/bitgo/issue/PLAT-2213/update-bitgojs-nix-dev-shell-to-patched-node-22
Prerequisite: WCN-3321 is complete — #10022 merged; the Express
Dockerfile stages select Node 22.23.4
(
node:22.23.4-bookworm-slim@sha256:de170b39…22f38d).Type of change
(Toolchain pin fix — no consumer-facing behaviour change, and the dev
shell major stays 22, so this is not a breaking change.)
How Has This Been Tested?
Run in the dev shell on x86_64-linux from this branch:
nix develop --command node --version→v22.23.4nix develop --command npm --version→10.9.9— npm bundled withthe selected Node package (
…-nodejs-slim-22.23.4-npmstore output)nix develop --command yarn --version→1.22.22(the shell'syarn.override { nodejs = nodejs_22; }still resolves)nix flake check→all checks passed!(devShell evaluates)yarn install --frozen-lockfile(withNOYARNPOSTINSTALL=1) → okyarn check-versions→ passThe
code-qualityjob runs on every PR regardless of changed paths, soI ran its full check set in the shell too:
yarn run check-commits→ 0 problems (commit-lint)yarn run check-deps→ passyarn run check-fmt→ pass (all modules)yarn run lint→ pass (all modules)yarn run test:scripts→ 12 passingResolved nixpkgs revision:
8bd525757851975db0aebe3af18073b7f52d6f34(nixpkgs master; nodejs_22 bumped to 22.23.4 in commit
fb7f563bfe).Reproduce by running the two version commands above on this branch.
Note: the diff touches only
flake.nix/flake.lock, which match noneof the changed-path filters in
.github/workflows/ci.yml, so thepath-gated jobs (unit-test, browser-test, docker, vendor) skip this PR;
code-qualityis not path-gated and runs, per the set above.(
check-fmtwas OOM-killed in the sandbox in its CI-style--parallelform and passed serialized via
lerna run check-fmt --concurrency 1;the kill is sandbox memory, not formatting.)
Checklist
nix flake checkpasses).nvmrcmajor distinction)yarn test:scripts: 12 passing)