Release Bump
Overview
Bump version and trigger release for ralph-orchestrator. All versions live in workspace Cargo.toml
- individual crates inherit via version.workspace = true .
Confirm the new version with the user. Once the bump commit is pushed, track progress of the release.
Quick Reference
Step Command/Action
-
Bump version Edit Cargo.toml : replace all version = "X.Y.Z" (7 occurrences)
-
Build cargo build (updates Cargo.lock)
-
Test cargo test
-
Commit git add Cargo.toml Cargo.lock && git commit -m "chore: bump to vX.Y.Z"
-
Push git push origin main
-
Tag git tag vX.Y.Z && git push origin vX.Y.Z
Version Locations (All in Cargo.toml)
Line ~17 - workspace version
[workspace.package] version = "X.Y.Z"
Lines ~113-118 - internal crate dependencies
ralph-proto = { version = "X.Y.Z", path = "crates/ralph-proto" } ralph-core = { version = "X.Y.Z", path = "crates/ralph-core" } ralph-adapters = { version = "X.Y.Z", path = "crates/ralph-adapters" } ralph-tui = { version = "X.Y.Z", path = "crates/ralph-tui" } ralph-cli = { version = "X.Y.Z", path = "crates/ralph-cli" } ralph-bench = { version = "X.Y.Z", path = "crates/ralph-bench" }
Tip: Use Edit tool with replace_all: true on version = "OLD" → version = "NEW" to update all 7 at once.
What CI Does Automatically
Once you push the tag, .github/workflows/release.yml triggers and:
-
Creates the GitHub Release with auto-generated notes
-
Builds binaries for macOS (arm64, x64) and Linux (arm64, x64)
-
Uploads artifacts to the GitHub Release
-
Publishes to crates.io (in dependency order)
-
Publishes to npm as @ralph-orchestrator/ralph
Common Mistakes
Mistake Fix
Only updating workspace.package.version Must update all 7 occurrences including internal deps
Forgetting to run tests Always cargo test before commit
Creating release manually with gh release create
Just push the tag - CI creates the release with artifacts
Pushing tag before main Push main first, then push the tag