Repository navigation
ci: build IronClaw reborn release binaries with cargo-dist - #6354
think-in-universe wants to merge 13 commits into
Conversation
🔎 IronLoop Review StatusHead: Current reviewers:
Reviewer summaries
Recent activity
Available commands
Run metadataAdmission: webhook accepted the request and IronLoop persisted reviewer state before this projection. |
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe release configuration now publishes the standalone Reborn CLI through cargo-dist, aligns workspace and CLI versions at ChangesReborn release publication
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related issues
Suggested reviewers: Sequence Diagram(s)sequenceDiagram
participant ReleaseTag
participant CargoDistPlan
participant ArtifactBuilds
participant Host
ReleaseTag->>CargoDistPlan: plan standalone Reborn CLI release
CargoDistPlan->>ArtifactBuilds: build local and global artifacts
ArtifactBuilds->>Host: pass successful artifacts
Host->>ReleaseTag: publish release metadata and binaries
🚥 Pre-merge checks | ✅ 3 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (3 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request configures cargo-dist and WiX installer settings to release the standalone ironclaw_reborn_cli binary (under the display name "ironclaw") instead of the legacy packages. It bumps package versions to 1.0.0-rc.1, updates release CI expectations in the smoke tests, and simplifies the WiX installer configuration by targeting ironclaw.exe and removing legacy binaries. There are no review comments, so I have no feedback to provide.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
@claude review |
There was a problem hiding this comment.
❌ IronLoop Review: reviewer
Review at a glance
| Verdict | Blocking | Notes | Inline | Head |
|---|---|---|---|---|
| ❌ Changes requested | 2 | 0 | 2 | fe73078c1718 |
Head: fe73078c1718192ca2885a7708d24e556d56d9e1
Next: Fix the blocking findings, push the PR branch, then re-run this reviewer.
Run details
Status: Current
Needs human: no
Needs validation: no
Summary
Blocked: cargo-dist cannot select the allow-listed Reborn CLI from the retained tag format, and the Windows MSI template is placed outside the CLI package cargo-wix builds.
Findings
Blocking: 2 / Notes: 0
Blocking findings
1. ❌ [HIGH] Release tag selects the excluded root package
Location: Cargo.toml:628
ironclaw-v1.0.0-rc.1 is a singular cargo-dist tag for the root package named ironclaw. Since this allow-list excludes that package and retains only ironclaw_reborn_cli, cargo-dist filters out the CLI as tag-not-matched and has no release to plan. The enabled plan job will fail before any assets are built. Align the tag/selection scheme so this public tag resolves to the selected CLI, and add an executable dist plan --tag=... regression check.
2. ❌ [HIGH] Reborn MSI template is in the wrong package directory
Location: wix/main.wxs:60
cargo-dist invokes cargo-wix with crates/ironclaw_reborn_cli/Cargo.toml; cargo-wix searches for WXS files under crates/ironclaw_reborn_cli/wix/. This root-level template is therefore ignored, and the CLI crate has no WXS file, causing the Windows artifact build to fail with no WXS files to create an installer. Place/regenerate the adapted template in the CLI crate (and preserve the root template if legacy MSI creation remains supported).
Developer follow-up
After fixing this feedback:
- Push the fix to this PR branch.
- Re-run this reviewer with
@ironloopai review --agent reviewerif you only changed this reviewer's findings. - Re-run all reviewers with
@ironloopai reviewwhen the fix may affect multiple areas.
| allow-dirty = ["ci", "msi"] | ||
| # Release only the standalone Reborn CLI through cargo-dist. The workspace root | ||
| # still contains the legacy package named `ironclaw`, so keep selection explicit. | ||
| packages = ["ironclaw_reborn_cli"] |
There was a problem hiding this comment.
ironclaw-v1.0.0-rc.1 is parsed as a singular tag for the root ironclaw package. This allow-list excludes that root package, so cargo-dist also rejects the Reborn CLI as tag-not-matched and the enabled plan job has nothing to release. Please validate the exact public tag with dist plan --tag=... after changing the selection scheme.
| @@ -60,7 +60,7 @@ | |||
|
|
|||
There was a problem hiding this comment.
cargo-dist builds this MSI using the Reborn CLI manifest, so cargo-wix searches crates/ironclaw_reborn_cli/wix/*.wxs, not this root directory. No WXS exists there, making the Windows artifact job fail. Move or regenerate this template under the CLI crate.
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
Cargo.toml (1)
70-70: 🎯 Functional Correctness | 🟠 MajorFix the cargo-dist tag/package selection mismatch.
The preserved tag
ironclaw-v1.0.0-rc.1selects the rootironclawpackage, but the dist allow-list selects onlyironclaw_reborn_cli. Make the exact tag resolve to the Reborn CLI, then verify:cargo dist plan --tag=ironclaw-v1.0.0-rc.1
Cargo.toml#L70-L70: avoid making the root package the singular tag target, or configure an explicit mapping.Cargo.toml#L625-L632: align the cargo-dist package selection with the preserved public tag.This repeats the prior review finding. (axodotdev.github.io)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@Cargo.toml` at line 70, Align the preserved tag target and cargo-dist allow-list so ironclaw-v1.0.0-rc.1 resolves to the ironclaw_reborn_cli package rather than the root ironclaw package. Update Cargo.toml lines 70-70 to avoid making the root package the singular tag target or add an explicit mapping, and update Cargo.toml lines 625-632 to select the Reborn CLI; verify with cargo dist plan --tag=ironclaw-v1.0.0-rc.1.Source: MCP tools
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@crates/ironclaw_reborn_cli/tests/smoke.rs`:
- Around line 359-360: Remove the broad !workspace_manifest.contains("\"npm\"")
check from the smoke test and rely on the exact installers assertion to verify
npm is excluded, or scope the npm check specifically to the cargo-dist metadata
section. Update the assertion near the workspace_manifest checks in the smoke
test without changing unrelated manifest validation.
---
Outside diff comments:
In `@Cargo.toml`:
- Line 70: Align the preserved tag target and cargo-dist allow-list so
ironclaw-v1.0.0-rc.1 resolves to the ironclaw_reborn_cli package rather than the
root ironclaw package. Update Cargo.toml lines 70-70 to avoid making the root
package the singular tag target or add an explicit mapping, and update
Cargo.toml lines 625-632 to select the Reborn CLI; verify with cargo dist plan
--tag=ironclaw-v1.0.0-rc.1.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 4e50b007-d29a-4d05-a56f-5243eed51542
📒 Files selected for processing (2)
Cargo.tomlcrates/ironclaw_reborn_cli/tests/smoke.rs
| && workspace_manifest.contains("installers = [\"shell\", \"powershell\", \"msi\"]") | ||
| && !workspace_manifest.contains("\"npm\"") |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Scope the npm assertion to cargo-dist metadata.
!workspace_manifest.contains("\"npm\"") scans the entire root manifest, so an unrelated quoted npm string can fail this release smoke test even when the installer configuration is correct. The exact installers = ["shell", "powershell", "msi"] assertion already excludes npm from the configured installer list; otherwise parse or isolate the dist metadata section.
Proposed fix
&& workspace_manifest.contains("packages = [\"ironclaw_reborn_cli\"]")
&& workspace_manifest.contains("installers = [\"shell\", \"powershell\", \"msi\"]")
- && !workspace_manifest.contains("\"npm\"")
&& !workspace_manifest.contains("tag-namespace"),📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| && workspace_manifest.contains("installers = [\"shell\", \"powershell\", \"msi\"]") | |
| && !workspace_manifest.contains("\"npm\"") | |
| && workspace_manifest.contains("installers = [\"shell\", \"powershell\", \"msi\"]") |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@crates/ironclaw_reborn_cli/tests/smoke.rs` around lines 359 - 360, Remove the
broad !workspace_manifest.contains("\"npm\"") check from the smoke test and rely
on the exact installers assertion to verify npm is excluded, or scope the npm
check specifically to the cargo-dist metadata section. Update the assertion near
the workspace_manifest checks in the smoke test without changing unrelated
manifest validation.
|
Already resolved in #6327 |
Summary
Prepare the release pipeline to publish
ironclaw-v1.0.0-rc.1binaries with cargo-dist.This PR scopes cargo-dist releases to the standalone Reborn CLI package while preserving the public
ironclaw-v*tag shape used by previous releases. It also keeps Docker image publication disabled for this release path so the workflow only builds and publishes binary release assets.Changes
aarch64-apple-darwinaarch64-unknown-linux-gnuaarch64-unknown-linux-muslx86_64-apple-darwinx86_64-unknown-linux-gnux86_64-unknown-linux-muslx86_64-pc-windows-msvcironclawbinary.1.0.0-rc.1.Validation
cargo metadata --locked --no-deps --format-version 1git diff --check -- Cargo.toml crates/ironclaw_reborn_cli/Cargo.toml Cargo.lock .github/workflows/release.yml crates/ironclaw_reborn_cli/tests/smoke.rs wix/main.wxsNotes
After this lands, pushing tag
ironclaw-v1.0.0-rc.1should run the release workflow and publish cargo-dist release assets. Because this is an rc tag, cargo-dist/GitHub will treat it as a prerelease.