autopublish: gate-then-test ordering + survive devShell-generated untracked file#194
Conversation
…ated untracked file
Two robustness fixes surfaced by the first interdependent workspace publish:
- Reorder: the change gates (cargo package --no-verify + hash compare, npm/
soldeer version lookup) are cheap and decide whether anything publishes;
cargo test --workspace is the expensive step. Run it only when a gate reports
a change, so no-op pushes to main (CI/doc edits, empty re-trigger commits,
unchanged crates) short-circuit instead of paying the full test cost.
- Entering the rainix devShell writes a generated .pre-commit-config.yaml into
the tree; cargo-release aborts on any uncommitted change, including untracked
files ('uncommitted changes detected: .pre-commit-config.yaml (WT_NEW)').
Add it to .git/info/exclude in the Git config step so cargo-release never
sees it — repo-agnostic, no consumer has to remember to .gitignore it.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 29 minutes and 7 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
|
@coderabbitai assess this PR size classification for the totality of the PR with the following criterias and report it in your comment: S/M/L PR Classification Guidelines:This guide helps classify merged pull requests by effort and complexity rather than just line count. The goal is to assess the difficulty and scope of changes after they have been completed. Small (S)Characteristics:
Review Effort: Would have taken 5-10 minutes Examples:
Medium (M)Characteristics:
Review Effort: Would have taken 15-30 minutes Examples:
Large (L)Characteristics:
Review Effort: Would have taken 45+ minutes Examples:
Additional Factors to ConsiderWhen deciding between sizes, also consider:
Notes:
|
Two robustness fixes surfaced by the first interdependent workspace publish (rain.wasm).
Gate-then-test ordering
The change gates (
cargo package --no-verify+ content hash compare; npm/soldeer version lookup) are cheap and decide whether anything publishes.cargo test --workspaceis the expensive step but ran first, so every no-op push to main (CI/doc edits, empty re-trigger commits, unchanged crates) paid the full test cost for nothing. MovedCargo testafter the gates, conditioned on any gate reporting a change. PR CI already tests the code before merge; this remains the pre-publish gate on the exact merged commit.Survive devShell-generated untracked file
Entering the rainix devShell writes a generated
.pre-commit-config.yamlinto the tree.cargo-releaseaborts on any uncommitted change, including untracked files:This killed the rain.wasm bump step (run 26471237463). Add the file to
.git/info/excludein the Git config step so cargo-release never sees it — repo-agnostic, no consumer has to remember to.gitignoreit.🤖 Generated with Claude Code