fix(release): publish verify uses cargo package, restore CI step (#146)#190
Merged
Conversation
`./publish verify` ran `cargo publish --dry-run -p <name>`, which resolves every workspace dep through the public crates.io index — so on a first publish of a new version the dependents always fail with the chicken-and-egg "dep not yet published" error. That sank the v0.7.0 verify step; PR #144 dropped it entirely, losing the fail-fast metadata/compile check. Switch verify() to `cargo package -p <name>`: it resolves through the local path deps (no chicken-and-egg), builds each .crate end-to-end, and catches the real pre-flight surface — missing README/license, bad include/exclude, broken metadata, code that doesn't compile. Verified `cargo package` resolves for all 11 CRATES_TO_PUBLISH on a clean workspace with no prior version on crates.io. Restore the `./publish verify` step in publish-to-crates-io.yml ahead of the publish step. (publish=false crates like synth-abi aren't in CRATES_TO_PUBLISH, so the synth-wit-version quirk noted in #146 is not hit by the verify pass.) Tooling only — scripts/publish.rs is not a published crate, so this merges to main without a crates.io version bump. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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.
Summary
Closes #146.
./publish verifyrancargo publish --dry-run -p <name>, which resolves every workspace dep through the public crates.io index — so on a first publish of a new version the dependents always fail with the chicken-and-egg "dep not yet published" error. That sank the v0.7.0 verify step; PR #144 dropped it entirely, losing the fail-fast metadata/compile check.cargo package -p <name>resolves through the local path deps (no chicken-and-egg), builds each.crateend-to-end, and catches the real pre-flight surface: missing README/license, bad include/exclude, broken metadata, code that doesn't compile.Changes
scripts/publish.rs::verify→cargo package -p <name>(+ header doc)./publish verifystep inpublish-to-crates-io.yml, ahead of publishValidation
cargo packageresolves for all 11CRATES_TO_PUBLISHon a clean workspace with no prior version on crates.io (the publish: change./publish verifyto usecargo package(currently dropped; lost the fail-fast metadata check) #146 falsification check — confirmed via--no-verifymetadata pass on all 11, + full package+build of the leaf layer locally).synth-verify's z3-sys dependency (the known local-build quirk) + build time, so the full verify run is first exercised in CI on the next release tag. Risk is low:cargo packageis build + metadata, both of which the publish workflow already does forcargo publish, and the step runs before upload so a failure blocks cleanly with nothing partially published.Notes
publish = falsecrates (synth-abi, synth-wit) are not inCRATES_TO_PUBLISH, so the synth-wit-version quirk noted in publish: change./publish verifyto usecargo package(currently dropped; lost the fail-fast metadata check) #146 is never hit by the verify pass.scripts/publish.rsis not a published crate, so this merges to main without a crates.io version bump.Closes #146.
🤖 Generated with Claude Code