ci: build the development scripts' mado with --locked - #412
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #412 +/- ##
=======================================
Coverage 99.81% 99.81%
=======================================
Files 72 72
Lines 8527 8527
=======================================
Hits 8511 8511
Misses 16 16 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
`scripts/acceptance/test.sh` builds and runs mado to compare it against mdl, and `scripts/benchmarks/comparison.sh` builds it to time. Both did so unlocked, which is the same thing #410 and #411 fixed in CI seen from the other side: a contributor running either one has the tracked `Cargo.lock` rewritten under them by a script that only meant to measure something. The measurement is the reason, more than the lockfile is. Both scripts answer a question about this tree — what mado reports, and how long it takes — and a build that resolves a newer dependency answers it about a different one. `just flamegraph` and `just fuzz` are the two invocations this leaves, and neither can be given the flag: `cargo flamegraph` has no `--locked`, `--frozen` or `--offline` of its own and no passthrough to cargo's — its trailing arguments go to the binary being profiled — and `cargo fuzz run` has none of the three either, its trailing arguments going to libFuzzer. `just fuzz` resolves and can rewrite `fuzz/Cargo.lock`, which is tracked, so it is the same failure this closes rather than a different one; both need something other than a flag, and that is not this. Verified by running each command as the scripts now spell it: `cargo build --locked`, `cargo run --locked -- --config … check …` and `cargo build --locked --release` all succeed against the tracked lockfile. `sh -n` and `dash -n` pass on both scripts, and `shellcheck` reports what it reported before — the four SC2016 in `comparison.sh` that #398 covers, and nothing new. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011xqGos7Q8MiBm6G59sh4FV
akiomik
force-pushed
the
ci-locked-dev-scripts
branch
from
September 6, 2026 15:58
2d1ff8d to
d0d290d
Compare
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.
Finishes what #410 and #411 did for CI, on the side a contributor runs.
scripts/acceptance/test.shbuilds and runs mado to compare it against mdl, andscripts/benchmarks/comparison.shbuilds it to time. Both did so unlocked, soeither one can rewrite the tracked
Cargo.lockunder someone who only meant tomeasure something.
The measurement is the better reason. Both scripts answer a question about this
tree — what mado reports, and how long it takes — and a build that resolves a
newer dependency answers it about a different one.
Left alone
just flamegraphandjust fuzz, which are the two invocations this leaves.Neither can be given the flag:
cargo flamegraphhas no--locked,--frozenor--offlineof its own andno passthrough to cargo's; its trailing arguments go to the binary being
profiled.
cargo fuzz runhas none of the three either; its trailing arguments go tolibFuzzer. It resolves and can rewrite
fuzz/Cargo.lock, which is tracked, soit is the same failure this pull request closes rather than a different one.
Both need something other than a flag —
CARGO_NET_OFFLINEaround the recipe,or a
cargo build --lockedahead of it — and that is not a--lockedchange.Verification
cargo build --locked,cargo run --locked -- --config … check …andcargo build --locked --releaseall succeed against the tracked lockfile. The middle one matters most, the
flag having to sit before the
--that hands the rest to mado.sh -nanddash -npass on both scripts.shellcheckreports what it reported before the change: the four SC2016 incomparison.shthat The benchmark scripts are unquoted, and nothing runs shellcheck on them #398 covers, and nothing new.No changelog entry: the development scripts are not something a user of
madocan observe, which is what
CONTRIBUTING.mdasks the entry to describe.🤖 Generated with Claude Code
https://claude.ai/code/session_011xqGos7Q8MiBm6G59sh4FV