fix(aztec-up): install manifest-pinned Node version instead of LTS#23201
Merged
Conversation
`install_node` was running `nvm install --lts && nvm alias default lts/*`, which installs whatever Node version is currently tagged LTS rather than the version pinned in the per-release `versions` manifest. The manifest already names a concrete version (currently `node: 24.12.0`); installing LTS instead is silently wrong whenever LTS and the manifest disagree. Install the manifest version directly so each aztec release pins its toolchain Node deterministically.
vezenovm
approved these changes
May 12, 2026
AztecBot
pushed a commit
that referenced
this pull request
May 12, 2026
…23201) ## Summary `install_node` runs `nvm install --lts && nvm alias default lts/*` when the host Node doesn't meet the manifest's minimum. That installs whatever Node version is *currently* tagged LTS, not the version pinned in `versions` for the release being installed. Today this happens to be safe — current LTS is 24.x and the manifest says `node: 24.12.0`. But it's coincidence: the moment a release pins a non-LTS line (or an LTS slips behind), the installer silently runs the rest of the install on the wrong Node and the failure manifests far away from `install_node`. ## Fix Install the version named in the manifest, instead of `--lts`: ```diff - nvm install --lts - nvm alias default lts/* + nvm install "$node_min_version" + nvm alias default "$node_min_version" ``` (Same change applied to the error-message hint for hosts without nvm.)
Collaborator
|
✅ Successfully backported to backport-to-v4-next-staging #23198. |
AztecBot
added a commit
that referenced
this pull request
May 13, 2026
BEGIN_COMMIT_OVERRIDE chore: kv store test fully on vitest (#23096) chore: backport kv-store vitest migration (#23096) to v4-next (#23185) test: add noir tests for get_note_hash_membership_witness (#23190) fix(aztec-up): explicit exit in CLI acceptance test harness (#23200) refactor(pxe): batch nullifier sync across scopes (#23129) refactor(pxe): backport batch nullifier sync across scopes (#23129) to v4-next (#23208) fix(ci): revert ci-compat-e2e to AWS access keys (#23211) test: drop event_logs from compat matrix and loosen avm_simulator assertion regex (#23193) fix(aztec-up): install manifest-pinned Node version instead of LTS (#23201) fix(ci): move CLI acceptance test timeout from job to step (#23205) END_COMMIT_OVERRIDE
rangozd
pushed a commit
to rangozd/aztec-packages
that referenced
this pull request
May 16, 2026
BEGIN_COMMIT_OVERRIDE fix(aztec-up): install manifest-pinned Node version instead of LTS (AztecProtocol#23201) fix(ci): move CLI acceptance test timeout from job to step (AztecProtocol#23205) feat: package sqlite kv-store backend for stricter browser envs (AztecProtocol#23089) fix(pxe): sync target contract before cross-contract utility call (AztecProtocol#23225) fix(ci): swap slack_notify args in CLI acceptance test (AztecProtocol#23241) feat: optimize get next app tag as sender (AztecProtocol#23239) chore(aztec-nr): mark emit_event_in_public as #[inline_never] to shrink public dispatch (AztecProtocol#23161) chore: better encrypted sqlite ergonomics (AztecProtocol#23231) END_COMMIT_OVERRIDE
critesjosh
added a commit
that referenced
this pull request
May 18, 2026
Covers operator-facing changes in v4.3.0: - Bundled binaries renamed under aztec- prefix on PATH (#22902, #22709) - --pxe flag removed from aztec start (#22867) - aztec-up pins manifest Node version (#23201) - aztec-up pins FOUNDRY_DIR (#22886) Added to both source docs-operate/ and the v4.3.0 versioned snapshot, and linked from the operator changelog sidebar in both places.
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
install_noderunsnvm install --lts && nvm alias default lts/*when the host Node doesn't meet the manifest's minimum. That installs whatever Node version is currently tagged LTS, not the version pinned inversionsfor the release being installed.Today this happens to be safe — current LTS is 24.x and the manifest says
node: 24.12.0. But it's coincidence: the moment a release pins a non-LTS line (or an LTS slips behind), the installer silently runs the rest of the install on the wrong Node and the failure manifests far away frominstall_node.Fix
Install the version named in the manifest, instead of
--lts:(Same change applied to the error-message hint for hosts without nvm.)