ci: check new crates are reserved on crates.io before merge (#3185) - #3218
Merged
laskoviymishka merged 2 commits intoSep 14, 2026
Merged
Conversation
) * ci: check new crates are reserved on crates.io before merge Trusted publishing can't create a crate, and the release workflow publishes the whole workspace in one `cargo publish --workspace` run, which cargo aborts if any crate already exists at the release version. So the existing "publish the new crate by hand after the workflow fails" instructions no longer work. Add a lint step that fails if a publishable crate is missing from crates.io, and rewrite the release guide appendix around reserving the crate with a placeholder version when it is added. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs: reserve the crate name with a standalone placeholder crate Overriding the version inside the workspace fails because iceberg depends on the new crate at the workspace version. Verified with cargo publish --dry-run. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * ci: match the existing publishable-crate filter; document partial publish recovery Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs: clarify that reserving a crate needs a token with the publish-new scope Owning the existing crates does not imply the token in ~/.cargo/credentials.toml has publish-new, and crates.io reports a missing scope as a generic authentication failure. Say so, and point at where to create the token. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * docs: fix stale first-publish note, empty placeholder, and owner invitations - The release steps still said the publish workflow is expected to fail on new crates and linked to a heading that no longer exists. - `cargo new --lib` generates a non-empty lib.rs; use mkdir and touch. - `cargo owner --add <user>` sends an invitation that must be accepted. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * ci: fail the crates.io check if the crate list is empty A failed `cargo metadata` inside `for pkg in $(...)` never trips `bash -e`, so the loop ran zero times and the step passed without checking anything. Capture the list first and fail if it is empty. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit cb912c9)
Contributor
Author
|
FYI @CTTY |
This was referenced Sep 14, 2026
kevinjqliu
approved these changes
Sep 14, 2026
kevinjqliu
left a comment
Contributor
There was a problem hiding this comment.
LGTM
this is a backport
Contributor
looks like we also need the minio PR 😄 |
dannycjones
marked this pull request as draft
September 14, 2026 15:57
Contributor
Author
Being RM for 0.11.0 will be simple, I thought... 😄 Thanks @kevinjqliu, opened the backport PR. #3220 |
laskoviymishka
approved these changes
Sep 14, 2026
dannycjones
marked this pull request as ready for review
September 14, 2026 17:21
Contributor
Author
|
Ready to merge, thanks all! |
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.
Which issue does this PR close?
Backport of #3185 to 0.11.x branch.
Related to #3034.
What changes are included in this PR?
CI will block where any of the publishable crates do not have at least one version on crates.io, to highlight where a maintainer needs to create a crate ahead of a release candidate.
The release guide also has changes related to this in the commit.
Are these changes tested?
N/A
AI Disclosure
Used LLM to assist in backporting this change. Reviewed by me for correctness.