Repository navigation
fix(autopublish): rebase before push so chained release jobs don't race - #184
Conversation
Repos with multiple crates wire several rainix-autopublish callers chained via needs:. Each job checks out main at the workflow-trigger sha, so once an earlier job pushes its version-bump commit, the next job's push is rejected non-fast-forward (observed: rain-metaboard-subgraph never published while rain-metadata-bindings did). Since the jobs are sequential, fetch + rebase our bump onto the latest main before tagging/pushing; regenerate the shared Cargo.lock if it is the only conflict. Refs rainlanguage/rain.metadata#120 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThe PR enhances the CI/CD autopublish workflow to handle concurrent publish attempts across multiple crates. The ChangesAutopublish rebase and conflict handling
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related issues
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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:
|
Repos with multiple crates wire several
rainix-autopublishcallers chained vianeeds:(e.g. rain.metadata'sbindings→metaboard). Each job checks outmainat the workflow-trigger sha, so once an earlier job pushes its version-bump commit, the next job'sgit pushis rejected non-fast-forward.Observed in rain.metadata#120:
rain-metadata-bindingspublished butrain-metaboard-subgraphfailed at the push step every time.Since the jobs are sequential (
needs:), the fix is to fetch + rebase our bump onto the latestmainbefore tagging/pushing. The only file both bumps touch is the sharedCargo.lock; if that's the sole conflict, regenerate it deterministically and continue. Tags are created after the rebase so they point at the final commit shas.Closes rainlanguage/rain.metadata#120 (once consumers pick up
@main).🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes
No user-facing changes. This release contains internal workflow infrastructure updates to improve build reliability and consistency. These changes are not visible to end-users and do not affect product functionality.