fix: publish ironclaw_safety 0.2.0 - #1659
Conversation
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request addresses a critical issue preventing the successful release of the Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Pull request overview
Enables publishing of ironclaw_safety by bumping it to 0.2.0 and removing release-plz configuration that previously prevented publishing, so the ironclaw crate can resolve the correct ironclaw_safety API from crates.io during release.
Changes:
- Bump
ironclaw_safetycrate version from0.1.0to0.2.0and make it publishable (removepublish = false). - Remove the release-plz package override that excluded
ironclaw_safetyfrom publishing. - Update
ironclawto depend onironclaw_safety 0.2.0and refreshCargo.lock.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| release-plz.toml | Removes the package-level block that prevented ironclaw_safety from being released/published by release-plz. |
| crates/ironclaw_safety/Cargo.toml | Bumps crate version to 0.2.0 and removes publish = false so it can be published to crates.io. |
| Cargo.toml | Updates the ironclaw crate’s dependency on ironclaw_safety to 0.2.0. |
| Cargo.lock | Updates the locked ironclaw_safety version to 0.2.0. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Code Review
This pull request updates the ironclaw_safety crate version from 0.1.0 to 0.2.0 across various Cargo.toml and Cargo.lock files. It also removes the publish = false setting from the crates/ironclaw_safety/Cargo.toml and removes the package entry from release-plz.toml. A critical issue was identified regarding the removal of publish = false for ironclaw_safety. The crate currently uses edition = "2024" and rust-version = "1.92", which are unstable and unreleased. Publishing the crate in this state would make it unusable for most users due to its reliance on unstable features like let-chains. The reviewer suggests either changing the edition to 2021 and refactoring the code, or waiting until the required Rust version (at least 1.87.0) is stable before publishing.
| license = "MIT OR Apache-2.0" | ||
| homepage = "https://github.com/nearai/ironclaw" | ||
| repository = "https://github.com/nearai/ironclaw" | ||
| publish = false |
There was a problem hiding this comment.
Removing publish = false will make this crate available on crates.io. However, the current Cargo.toml specifies edition = "2024" and rust-version = "1.92".
The 2024 edition is not yet stable, and Rust 1.92 is a future, unreleased version. Publishing a crate that requires such a new, unstable toolchain will make it unusable for the vast majority of the Rust ecosystem, as it cannot be built with stable Rust. For example, the code uses let-chains, which are only stabilized in the unreleased Rust 1.87.0.
This will cause significant build failures for anyone trying to use ironclaw_safety as a dependency from crates.io.
Before publishing, please either:
- Change
editionto2021and refactor the code to not use features from unreleased Rust versions (likelet-chains). - Wait until the required Rust version (at least 1.87.0) is stable before publishing this crate.
Given the fix nature of this PR, option 1 is likely the intended path.
|
Need to merge to unblock release. |
Summary
Why
After #1657, release-plz gets past ironclaw_common but still fails while verifying ironclaw because the packaged crate resolves ironclaw_safety from crates.io. The published 0.1.0 API does not match the current workspace API, so the release flow needs a new published ironclaw_safety version.
Verification