name: release-bump description: 用于在新的发布中提升 ralph-orchestrator 版本,在修复已提交并准备发布时使用
发布版本更新
概述
提升版本并触发 ralph-orchestrator 的发布。所有版本都位于工作空间 Cargo.toml 文件中——个别 crate 通过 version.workspace = true 继承版本。
与用户确认新版本。一旦版本提升提交被推送,跟踪发布的进度。
快速参考
| 步骤 | 命令/操作 |
|---|---|
| 1. 提升版本 | 编辑 Cargo.toml:替换所有 version = "X.Y.Z"(7 个位置) |
| 2. 构建 | cargo build(更新 Cargo.lock) |
| 3. 测试 | cargo test |
| 4. 提交 | git add Cargo.toml Cargo.lock && git commit -m "chore: bump to vX.Y.Z" |
| 5. 推送 | git push origin main |
| 6. 标签 | git tag vX.Y.Z && git push origin vX.Y.Z |
版本位置(均在 Cargo.toml 中)
# 约第 17 行 - 工作空间版本
[workspace.package]
version = "X.Y.Z"
# 约第 113-118 行 - 内部 crate 依赖
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" }
提示: 使用编辑工具,开启 replace_all: true,将 version = "OLD" 替换为 version = "NEW",一次性更新所有 7 个位置。
CI 自动执行的操作
一旦推送标签,.github/workflows/release.yml 被触发并执行:
- 创建 GitHub Release 并自动生成笔记
- 为 macOS(arm64, x64)和 Linux(arm64, x64)构建二进制文件
- 将构件上传到 GitHub Release
- 发布到 crates.io(按依赖顺序)
- 发布到 npm 为
@ralph-orchestrator/ralph
常见错误
| 错误 | 修复 |
|---|---|
| 只更新 workspace.package.version | 必须更新所有 7 个位置,包括内部依赖 |
| 忘记运行测试 | 提交前始终运行 cargo test |
手动创建 release,使用 gh release create |
只需推送标签 - CI 会创建 release 和构件 |
| 推送标签先于主分支 | 先推送主分支,然后推送标签 |