Skip to content

[ci] Keep read-only checks from rewriting lockfiles - #3516

Open
joshlf wants to merge 1 commit into
Gr5dxmcwfct6ij22jsf3sevpdetlzlcuzfrom
Gb7xokkyivphxcgxt7f2k2lyap32oa7kv
Open

[ci] Keep read-only checks from rewriting lockfiles#3516
joshlf wants to merge 1 commit into
Gr5dxmcwfct6ij22jsf3sevpdetlzlcuzfrom
Gb7xokkyivphxcgxt7f2k2lyap32oa7kv

Conversation

@joshlf

@joshlf joshlf commented Jul 31, 2026

Copy link
Copy Markdown
Member

Treat each first-party Cargo.lock as an input to validation. Make
cargo-zerocopy add --locked by default, add the inner flag to Cargo
plugins that parse their own arguments, and use locked, offline
metadata where dependency resolution is unnecessary.

Pin cargo-readme exactly and reject the wrong executable before
generation. Build the Anneal dependency-cache image from its real
workspace manifests so the repository lockfile can be enforced.

Guard all five first-party lockfiles around pre-push checks. Reap every
parallel child even after failures, then report any lockfile changed by
a nominally read-only check. Discover the inventory dynamically so new
workspaces are protected automatically.

Bootstrap and developer-tool workspaces intentionally remain online: a
fresh checkout may need to fetch exact packages recorded in their
lockfiles. Nested Anneal builds of external user projects also remain
online. These operations use --locked but not --offline; release
scripts that deliberately regenerate lockfiles remain mutable.

Add focused tests for wrapper argument placement, generator failures,
the Anneal Docker contract, lockfile coverage, and complete child
reaping.


Latest Update: v7 — Compare vs v6

📚 Full Patch History

Links show the diff between the row version and the column version.

Version v6 v5 v4 v3 v2 v1 Base
v7 vs v6 vs v5 vs v4 vs v3 vs v2 vs v1 vs Base
v6 vs v5 vs v4 vs v3 vs v2 vs v1 vs Base
v5 vs v4 vs v3 vs v2 vs v1 vs Base
v4 vs v3 vs v2 vs v1 vs Base
v3 vs v2 vs v1 vs Base
v2 vs v1 vs Base
v1 vs Base
⬇️ Download this PR

Branch

git fetch origin refs/heads/Gb7xokkyivphxcgxt7f2k2lyap32oa7kv && git checkout -b pr-Gb7xokkyivphxcgxt7f2k2lyap32oa7kv FETCH_HEAD

Checkout

git fetch origin refs/heads/Gb7xokkyivphxcgxt7f2k2lyap32oa7kv && git checkout FETCH_HEAD

Cherry Pick

git fetch origin refs/heads/Gb7xokkyivphxcgxt7f2k2lyap32oa7kv && git cherry-pick FETCH_HEAD

Pull

git pull origin refs/heads/Gb7xokkyivphxcgxt7f2k2lyap32oa7kv

Stacked PRs enabled by GHerrit.

@codecov-commenter

codecov-commenter commented Jul 31, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.85%. Comparing base (cbd2d66) to head (f149ae5).

Additional details and impacted files
@@                        Coverage Diff                         @@
##           Gr5dxmcwfct6ij22jsf3sevpdetlzlcuz    #3516   +/-   ##
==================================================================
  Coverage                              91.85%   91.85%           
==================================================================
  Files                                     20       20           
  Lines                                   6093     6093           
==================================================================
  Hits                                    5597     5597           
  Misses                                   496      496           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@joshlf
joshlf force-pushed the Gr5dxmcwfct6ij22jsf3sevpdetlzlcuz branch from fc717ce to f7e1231 Compare July 31, 2026 23:39
@joshlf
joshlf force-pushed the Gb7xokkyivphxcgxt7f2k2lyap32oa7kv branch from 29ab67e to 438934f Compare July 31, 2026 23:39
@joshlf
joshlf force-pushed the Gr5dxmcwfct6ij22jsf3sevpdetlzlcuz branch from f7e1231 to ba38f94 Compare July 31, 2026 23:45
@joshlf
joshlf force-pushed the Gb7xokkyivphxcgxt7f2k2lyap32oa7kv branch 2 times, most recently from 01787d5 to 91f1559 Compare July 31, 2026 23:54
@joshlf
joshlf force-pushed the Gr5dxmcwfct6ij22jsf3sevpdetlzlcuz branch 2 times, most recently from 0b7d536 to cbd2d66 Compare August 1, 2026 00:04
@joshlf
joshlf force-pushed the Gb7xokkyivphxcgxt7f2k2lyap32oa7kv branch from 91f1559 to f149ae5 Compare August 1, 2026 00:04
Treat each first-party `Cargo.lock` as an input to validation. Make
`cargo-zerocopy` add `--locked` by default, add the inner flag to Cargo
plugins that parse their own arguments, and use locked, offline
metadata where dependency resolution is unnecessary.

Pin `cargo-readme` exactly and reject the wrong executable before
generation. Build the Anneal dependency-cache image from its real
workspace manifests so the repository lockfile can be enforced.

Guard all five first-party lockfiles around pre-push checks. Reap every
parallel child even after failures, then report any lockfile changed by
a nominally read-only check. Discover the inventory dynamically so new
workspaces are protected automatically.

Bootstrap and developer-tool workspaces intentionally remain online: a
fresh checkout may need to fetch exact packages recorded in their
lockfiles. Nested Anneal builds of external user projects also remain
online. These operations use `--locked` but not `--offline`; release
scripts that deliberately regenerate lockfiles remain mutable.

Add focused tests for wrapper argument placement, generator failures,
the Anneal Docker contract, lockfile coverage, and complete child
reaping.

gherrit-pr-id: Gb7xokkyivphxcgxt7f2k2lyap32oa7kv
@joshlf
joshlf force-pushed the Gr5dxmcwfct6ij22jsf3sevpdetlzlcuz branch from cbd2d66 to c40fe8b Compare August 1, 2026 00:08
@joshlf
joshlf force-pushed the Gb7xokkyivphxcgxt7f2k2lyap32oa7kv branch from f149ae5 to 0220455 Compare August 1, 2026 00:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants