Repository navigation
Conversation
niran
marked this pull request as ready for review
November 4, 2026 22:54
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
Node.js 20 reached end of life on April 30, 2026. Keep development runtimes on Node.js 24 LTS. The existing devcontainer also requests Python 3.14 packages that are unavailable in Ubuntu 22.04's default repositories.
Solution
python3intact and install Vyper in a Python 3.14 virtual environment.nodejs_24explicitly in the Nix development shell, so a future nixpkgs update cannot silently change the major version.The deadsnakes PPA is a third-party source and does not guarantee timely security updates. The existing Nix flake lock resolves Node.js 24.12.0; refresh the lock separately to pick up newer Node.js 24 security updates.
The
@foundry-rs/anvilmeta package has noenginesfield; generated platform packages declarenode: ">=20". Consider a>=22consumer minimum separately after compatibility testing.PR Checklist
Pre-existing CI fixes
crypto-bigint0.7.10,libz-sys1.1.31,pulldown-cmark0.13.6,zstd0.13.4,zstd-safe7.4.0, andzstd-sys2.1.2.Known residual issue (pre-existing)
cargo-denyfails on RUSTSEC-2026-0387 forcrypto-bigint0.5.5, which is pulled in throughalloy-signer2.5.0 →elliptic-curve0.13.8, and throughk2560.13.4 andp2560.13.2. The fix requirescrypto-bigint≥0.7.6; no compatible 0.5 release provides it. The alloy and elliptic-curve migration will be addressed separately. RUSTSEC-2026-0387 is not suppressed.ci-successalso fails because it aggregatescargo-deny; all other applicable checks pass. Docs deployment is skipped for pull requests.Test plan
RUNinstructions without executing them.bash -non NodeSource'ssetup_24.x; verified its signednodistropackage indexes and checked that the Node 24nodejspackages for amd64 and arm64 return HTTP 200.-dev, and-venvpackages for amd64 and arm64. Checked that the key validation rejects an additional primary key.immutablesdependency built its C extension from source; no cargo build was run.npm/src/bin.mjs --helpand the optional-dependency path ofnpm/src/install.mjswith Node.js 24.22.0, using a local platform-package fixture linked to an installed Anvil binary. Repeated both checks with Node.js 22.19.0.git diff --check.rustdoc -D warningspassed after the changes.cargo metadata --locked; it passed.cargo deny --locked check advisoriesreports only the remainingcrypto-bigint0.5.5 advisory.cargo doc,cargo check, orcargo testlocally.cargo-nextest. Did not evaluate the Nix shell becausenixwas unavailable; checked the locked nixpkgs definition instead.type=routine
risk=low
impact=sev5