leo icon indicating copy to clipboard operation
leo copied to clipboard

[Feature] Use lock files to determine when depdencies change when switching networks.

Open d0cd opened this issue 8 months ago • 1 comments

^

d0cd avatar May 01 '25 18:05 d0cd

This came up again recently while working on dependency documentation (https://github.com/ProvableHQ/leo-docs-source/pull/556) and the edition handling PR (https://github.com/ProvableHQ/leo/pull/29027).

The leo.lock infrastructure exists (files get created, error types defined) but doesn't appear to be populated - all lock files I checked are just package = [].

Currently, if you don't manually specify an edition via leo add some_program.aleo --edition 3, Leo fetches the latest edition at build time. Two developers building the same project at different times could get different editions - no automatic pinning happens.

A Cargo.lock-style approach would solve this:

  • Auto-record resolved editions in leo.lock on first build
  • Subsequent builds use the locked editions
  • Users don't need to think about it unless they explicitly want to update

Would help with reproducible builds and avoid surprises when dependencies get upgraded on-chain.

CC @vicsn @mitchmindtree

JoshuaBatty avatar Dec 11 '25 02:12 JoshuaBatty