feat(autopublish): one workflow for 1..N crates (workspace publish)#191
Conversation
Generalise rainix-autopublish to a crate LIST. New input crates (space-separated, dependency order); singular crate stays as a back-compat alias. Cargo steps loop: gate per crate (changed if ANY differs), one cargo-release bump of all listed crates in a single commit (atomic inter-crate pin rewrite), publish in dependency order, namespaced <crate>-v<version> tags, one GitHub release per crate. npm/soldeer paths unchanged. A single crate is a one-element list, so one workflow not two. Ends chained-per-crate-job conflicts on multi-crate repos. Closes #188 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThe autopublish workflow now supports publishing multiple Cargo crates as a unified workspace release. The ChangesMulti-crate workspace publishing
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related issues
Possibly related PRs
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:
|
Generalises
rainix-autopublish.yamlfrom a singlecrateto a crate list, so one workflow handles single-crate and multi-crate (workspace) repos — no second file.crates(space-separated, dependency order). The singularcratestays as a back-compat alias (a one-element list), so existing consumers (rain.erc, rain.error, rain.math.float, rain.metadata) keep working unchanged.cargo releasebump of all listed crates in a single commit (atomic inter-crate pin rewrite), publish in dependency order, namespaced<crate>-v<version>tags, one GitHub release per crate.Why one workflow, not two: a single crate is just a one-element workspace. This also ends the chained-per-crate-job failure modes on multi-crate repos — rebase conflicts on shared dependent manifests, tag races/collisions — because it's one job, one commit, one push.
Consolidates the fixes from #184/#186/#187/#190 into the workspace-capable form. rain.wasm, rain.metadata, rainlang move to
crates:.Closes #188.
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Changes