kevinjqliu opened a new pull request, #3184:
URL: https://github.com/apache/iceberg-rust/pull/3184

   ## Which issue does this PR close?
   
   - Related to #3034 (0.11.0 release tracking). Found while verifying [0.11.0 
RC1](https://lists.apache.org/thread/nj95255r4ofqszpfx6pd8hbf8yxxydzv).
   
   ## What changes are included in this PR?
   
   `iceberg-property-macro` is new in 0.11.0 and is published because `iceberg` 
depends on it. It also had a dev-dependency on `iceberg` declared as `workspace 
= true`, which carries a version. When cargo packages the macro crate for 
publishing it must resolve `iceberg ^0.11.0` from crates.io, which does not 
exist until the next crate is uploaded, so `cargo publish --workspace` fails on 
the `v0.11.0-rc.1` tag:
   
   ```
   error: failed to prepare local package for uploading
     failed to select a version for the requirement `iceberg = "^0.11.0"`
     required by package `iceberg-property-macro v0.11.0`
   ```
   
   This is the same failure mode that broke the 0.5.0 publish (#1325).
   
   - Make the dev-dependency path-only (`iceberg = { path = "../iceberg" }`) so 
cargo strips it when packaging. This is the same shape already used for 
`iceberg_test_utils` across the workspace.
   - Mark the macro crate as internal to `iceberg` in its description and 
README, since it is published only because `iceberg` depends on it.
   - Add a `cargo publish --workspace --all-features --dry-run` step to the 
`check_standalone` CI job so an unpublishable crate fails on the PR rather than 
during the post-vote publish.
   
   Follow-ups outside this PR: cherry-pick to `0.11.x` before RC2, and note 
that the macro crate's first publish cannot go through Trusted Publishing 
(crates.io requires the first version of a new crate to be published with an 
API token).
   
   ## Are these changes tested?
   
   - `cargo publish --workspace --all-features --dry-run` fails on the current 
manifest and passes with this change, on both stable 1.95 (the publish 
workflow's toolchain) and the pinned nightly.
   - `cargo test -p iceberg-property-macro --all-features` passes with the 
path-only dev-dependency, including the trybuild compile-fail tests and README 
doctests.
   - The new CI step runs on this PR.
   
   ## AI Disclosure
   
   Investigated and drafted with Claude Code; changes reviewed and verified 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]

Reply via email to