Repository navigation
Lock network dependencies and add explicit dependency updates - #29641
Merged
Merged
Conversation
This was referenced Sep 25, 2026
mohammadfawaz
force-pushed
the
codex/pin-network-bytecode
branch
from
September 28, 2026 15:58
21e5422 to
3d708ea
Compare
mohammadfawaz
changed the base branch from
codex/fix-dependency-name-traversal
to
master
September 28, 2026 15:58
mohammadfawaz
marked this pull request as draft
September 30, 2026 13:35
mohammadfawaz
marked this pull request as ready for review
September 30, 2026 14:54
IGI-111
reviewed
Oct 6, 2026
IGI-111
approved these changes
Oct 8, 2026
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.
Leo automatically records network editions, checksums, and Git commits in
leo.lock. No manual checksum entry is needed. Theprogram.jsonformat stays the same.Add and build dependencies
leo add token.aleo --networkchecks the program and writes its manifest entry, locked edition, and checksum.leo buildcreates missing locks. If it locks edition 3 and edition 4 is later deployed, builds, runs, and tests still use edition 3.leo add token.aleo --edition 3requires edition 3, including during updates. Useleo add token.aleo --edition 4to change it.leo add my_library --git https://github.com/example/my_library --branch mainlocks a commit. Builds keep it when the branch changes and restore missing checkouts.leo build --offlinerequires a cached Git checkout.Update dependencies explicitly
leo updateselects newer eligible network editions and Git branch commits across the project or workspace, including development and transitive dependencies. Only the lock changes.leo update token.aleopreserves unrelated versions where possible. Git packages sharing a repository and reference move together. Exact editions, Git revisions, and locked tags stay fixed.leo update token.aleo --dry-runshows changes without writing them. Failed updates leave the existing lock unchanged.leo update --network mainnetupdates mainnet entries; testnet entries stay separate.Other user flows
leo build --no-cachechecks a fresh download against the locked edition and checksum. A mismatch fails; neither this flag norleo updatecan replace an existing edition’s checksum.leo execute,leo deploy,leo synthesize, and standalone files use project pins when available. Outside a project, no supplied lock is needed.leo upgradechecks the current deployed root edition and keeps dependency pins.leo remove my_libraryremoves its Git pins.credits.aleouses bundled snarkVM bytecode regardless of its manifest edition and needs no network lock entry.--disable-update-checkfrom scripts; for example, useleo build.This follows Cargo's manifest and lockfile model and explicit updates. Leo editions remain exact requirements; this does not add version ranges or Cargo's full option set.
Trust limit: The first download trusts the configured endpoint after ID and size checks. Old cache contents cannot establish the first checksum. This detects later changes, not a malicious first response, and partially addresses Zkao ZK-96f521d7.
Closes #28591 (automatic dependency locks and explicit updates).
Closes #29463 (broken self-updater removed).
Closes #29282 (self-update code and dependencies removed).
Closes #28444 (obsolete
Updaterremoved).Also addresses the checksum portion of #28480, the self-update removal in #29337, and part of the package and CLI coverage tracked in #28590 and #29041. These broader issues remain open.