chore(supply-chain): prune the 157 exemptions the lock re-sync orphaned - #7
Draft
h4x0r wants to merge 1 commit into
Draft
chore(supply-chain): prune the 157 exemptions the lock re-sync orphaned#7h4x0r wants to merge 1 commit into
h4x0r wants to merge 1 commit into
Conversation
Re-syncing Cargo.lock dropped 150 package-versions from the graph. Their
cargo-vet exemptions stayed behind, so `cargo vet` has been warning:
WARN Your supply-chain has unnecessary exemptions which could be relaxed or pruned.
WARN Consider running `cargo vet prune` to prune unnecessary exemptions and imports.
$ cargo vet prune
Pure deletion — 713 lines out, none in:
supply-chain/config.toml | 628 ------------------------------------
supply-chain/imports.lock | 85 ------
Verified rather than assumed. Comparing exemption `(name, version)` pairs against
the package-versions actually in the lock:
exemption entries: 786 -> 629 removed=157 added=0
removed exemptions whose exact (name, version) is still in the lock: 0
So every pruned entry names a package-version that genuinely left the graph. The
name-level view is misleading here and worth stating: 20 of the removed names —
`rand`, `http`, `hyper`, `tower`, `prost`, `windows` and friends — still appear
in the lock. Those are the duplicate-major cases. The exemption removed is for
the OLD version that left; the surviving version keeps its own entry.
All four aggregate import sets are intact, as ADR-0018 requires:
[imports.bytecode-alliance] [imports.embark] [imports.google] [imports.mozilla]
One inert leftover cargo-vet chose not to prune: `crossbeam-epoch 0.9.18` while
the lock carries 0.9.20. An exemption for an absent version grants nothing, and
removing it is cargo-vet's call to make, not a hand edit.
Before: Vetting Succeeded (170 fully audited, 5 partially, 628 exempted) + 2 WARN
After: Vetting Succeeded (170 fully audited, 5 partially, 628 exempted)
Kept out of the lock PR deliberately. That PR's whole value is that a reviewer
can confirm "strict subset, nothing added" at a glance, and folding 628 deleted
policy lines into it would destroy exactly that property.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
Author
|
CI does not run on this PR, and that is not the same as CI passing.
The gates were run locally instead, on this exact branch:
Retargeting this PR to |
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.
Re-syncing
Cargo.lockin #5 dropped 150 package-versions from the graph. Their cargo-vet exemptions stayed behind, socargo vetwarns:This is
cargo vet prune, nothing else. Pure deletion — 713 lines out, none in.Verified, not assumed
Comparing exemption
(name, version)pairs against the package-versions actually present in the lock:Every pruned entry names a package-version that genuinely left the graph.
The name-level view is misleading here, which is worth stating because it is the obvious way to sanity-check this and it gives the wrong answer. 20 of the removed names still appear in the lock:
ahash·getrandom·http·http-body·hyper·memmap2·memoffset·prost·prost-derive·rand·rand_chacha·rand_core·sync_wrapper·tokio-rustls·toml_datetime·toml_edit·tower·wasi·windows·winnowThose are the duplicate-major cases from #5. The exemption removed is for the old version that left; the surviving version keeps its own entry. Checked at
(name, version)granularity, the intersection is empty.ADR-0018 compliance
All four aggregate import sets survive the prune:
cargo vet prunealso prunes imports, so this was worth confirming rather than trusting — count went 4 -> 4.One inert leftover cargo-vet chose not to prune:
crossbeam-epoch 0.9.18, while the lock carries 0.9.20. An exemption for an absent version grants nothing. Removing it is cargo-vet's call, not a hand edit, so it stays.Result
The effective exemption count is unchanged — these 157 entries were granting nothing. This removes dead policy, it does not loosen or tighten the gate.
Why this is not part of #5
#5's entire value is that a reviewer can confirm "strict subset, nothing added" at a glance. Folding 628 deleted lines of supply-chain policy into it would destroy exactly that property. Orphaned exemptions are a WARN and block nothing, so this could also simply wait.
🤖 Generated with Claude Code