kevinjqliu opened a new pull request, #3185: URL: https://github.com/apache/iceberg-rust/pull/3185
## Which issue does this PR close? - Related to #3034. Follow-up to #3184. ## What changes are included in this PR? While looking at the 0.11.0 RC1 publish failure, I noticed our "Publishing a crate for the first time" instructions no longer work. crates.io trusted publishing can't create a new crate, the first version has to be published manually with an API token ([crates.io docs](https://crates.io/docs/trusted-publishing)). The current instructions say to let the release workflow fail, publish the new crate by hand from the tag, then re-run. That was fine when the workflow published crates one at a time. Since #2489 it runs `cargo publish --workspace`, and cargo bails if any crate already exists at that version, so the re-run fails for every crate. The instructions were written in #3037 after the switch, but 0.10 didn't add a new crate so we never hit this. The fix is to reserve the crate when it's added instead of at release time: - Add a lint step that fails if a publishable crate doesn't exist on crates.io. Uses `cargo info --registry crates-io`. - Rewrite the release guide appendix: publish a `0.0.0` placeholder from the PR branch, add owners, configure trusted publishing, then merge. Also spells out who can do this and what token scopes and team membership they need. Note this PR's CI will stay red until `iceberg-property-macro` is reserved on crates.io. That's the check doing its job. Reserving it now also means the 0.11.0 publish goes through the workflow like any other release. ## Are these changes tested? Ran the check locally: the 10 existing crates pass and `iceberg-property-macro` fails, which is correct today. Verified `cargo info` without `--registry` resolves the local workspace member and would pass incorrectly, hence the flag. ## AI Disclosure Investigated and drafted with Claude Code, reviewed by me. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
