[ci] Make crate releases resumable - #3515
Open
joshlf wants to merge 1 commit into
Open
Conversation
This was referenced Jul 31, 2026
joshlf
force-pushed
the
G25sqrb3x2qf3c2e26jcymmrjhitfoijb
branch
from
July 31, 2026 23:23
8ebcaa5 to
f0716f1
Compare
joshlf
force-pushed
the
Gr5dxmcwfct6ij22jsf3sevpdetlzlcuz
branch
from
July 31, 2026 23:23
3538a08 to
fc717ce
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## G25sqrb3x2qf3c2e26jcymmrjhitfoijb #3515 +/- ##
====================================================================
Coverage ? 91.85%
====================================================================
Files ? 20
Lines ? 6093
Branches ? 0
====================================================================
Hits ? 5597
Misses ? 496
Partials ? 0 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
joshlf
force-pushed
the
G25sqrb3x2qf3c2e26jcymmrjhitfoijb
branch
from
July 31, 2026 23:39
f0716f1 to
d04c064
Compare
joshlf
force-pushed
the
Gr5dxmcwfct6ij22jsf3sevpdetlzlcuz
branch
2 times, most recently
from
July 31, 2026 23:45
f7e1231 to
ba38f94
Compare
joshlf
force-pushed
the
G25sqrb3x2qf3c2e26jcymmrjhitfoijb
branch
from
July 31, 2026 23:45
d04c064 to
42b7a55
Compare
joshlf
force-pushed
the
Gr5dxmcwfct6ij22jsf3sevpdetlzlcuz
branch
2 times, most recently
from
August 1, 2026 00:04
0b7d536 to
cbd2d66
Compare
joshlf
force-pushed
the
G25sqrb3x2qf3c2e26jcymmrjhitfoijb
branch
from
August 1, 2026 00:04
42b7a55 to
5093546
Compare
The old core workflow tagged before publishing, rejected any existing tag on a retry, and serialized every version behind a workflow-wide approval lock. It also compared only with HEAD^, so a multi-commit push could silently miss a version bump. Recent OIDC runs authenticated successfully but crates.io rejected zerocopy-derive because trusted-publisher authorization is configured per crate. Diagnose 403s with the exact owner, repository, workflow, environment, and crate settings needed, and make retries reconcile matching registry checksums rather than republishing blindly. Package and verify release archives without credentials. Transfer only the archive bytes, construct the release plan from trusted constants in the privileged checkout, reproduce every archive byte-for-byte, and publish dependencies in order without running package code. Scope the Cargo and GitHub tokens to only their respective subprocesses. Create or accept the exact GitHub tag and release only after all crates are public. Accept completed matching state after a lost response, reject yanked or mismatched crates, wrong tags, drafts, and release metadata, and use version-specific concurrency so stale approvals cannot block later versions. Repair the Anneal publishability failure by giving its path dependency an exact registry version and publishing exocrate first. The manually published exocrate 0.2.0 and cargo-anneal alpha.24 were built from dirty manifests that do not match repository source, so record that historical exception and advance the incompatible checked-in exocrate API to 0.3.0. Make packaged README assets absolute. Run the exact release packaging boundaries in PR CI, and test the cross-file workflow contracts and all reconciler failure/retry states. gherrit-pr-id: Gr5dxmcwfct6ij22jsf3sevpdetlzlcuz
joshlf
force-pushed
the
G25sqrb3x2qf3c2e26jcymmrjhitfoijb
branch
from
August 1, 2026 00:08
5093546 to
1d9867a
Compare
joshlf
force-pushed
the
Gr5dxmcwfct6ij22jsf3sevpdetlzlcuz
branch
from
August 1, 2026 00:08
cbd2d66 to
c40fe8b
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.
The old core workflow tagged before publishing, rejected any existing
tag on a retry, and serialized every version behind a workflow-wide
approval lock. It also compared only with HEAD^, so a multi-commit
push could silently miss a version bump.
Recent OIDC runs authenticated successfully but crates.io rejected
zerocopy-derive because trusted-publisher authorization is configured
per crate. Diagnose 403s with the exact owner, repository, workflow,
environment, and crate settings needed, and make retries reconcile
matching registry checksums rather than republishing blindly.
Package and verify release archives without credentials. Transfer only
the archive bytes, construct the release plan from trusted constants in
the privileged checkout, reproduce every archive byte-for-byte, and
publish dependencies in order without running package code. Scope the
Cargo and GitHub tokens to only their respective subprocesses.
Create or accept the exact GitHub tag and release only after all crates
are public. Accept completed matching state after a lost response,
reject yanked or mismatched crates, wrong tags, drafts, and release
metadata, and use version-specific concurrency so stale approvals cannot
block later versions.
Repair the Anneal publishability failure by giving its path dependency
an exact registry version and publishing exocrate first. The manually
published exocrate 0.2.0 and cargo-anneal alpha.24 were built from dirty
manifests that do not match repository source, so record that historical
exception and advance the incompatible checked-in exocrate API to 0.3.0.
Make packaged README assets absolute.
Run the exact release packaging boundaries in PR CI, and test the
cross-file workflow contracts and all reconciler failure/retry states.
Latest Update: v7 — Compare vs v6
📚 Full Patch History
Links show the diff between the row version and the column version.
⬇️ Download this PR
Branch
git fetch origin refs/heads/Gr5dxmcwfct6ij22jsf3sevpdetlzlcuz && git checkout -b pr-Gr5dxmcwfct6ij22jsf3sevpdetlzlcuz FETCH_HEADCheckout
git fetch origin refs/heads/Gr5dxmcwfct6ij22jsf3sevpdetlzlcuz && git checkout FETCH_HEADCherry Pick
git fetch origin refs/heads/Gr5dxmcwfct6ij22jsf3sevpdetlzlcuz && git cherry-pick FETCH_HEADPull
Stacked PRs enabled by GHerrit.