jackin-release
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesejackin-release
jackin-release
Cut a release. The only irreversible skill in the suite — bumps the version, rewrites the changelog header, tags, and pushes. Hard-gated on one explicit operator "yes"; nothing releases on assumption.
cargo release --executeOrchestrates (the gates) and (the changelog), then recommends a version from the changelog shape and cuts.
jackin-release-checkjackin-release-notes执行版本发布。这是套件中唯一不可撤销的skill——会更新版本号、重写变更日志标题、打标签并推送。必须经过操作人员明确输入“yes”才能执行,不会自动发布。
cargo release --execute该工具会协调(就绪检查)和(变更日志生成),然后根据变更日志的内容推荐版本号并完成发布。
jackin-release-checkjackin-release-notesWhen to use
使用场景
- The operator asks to cut / ship / release a version.
- 操作人员要求执行版本发布/上线操作时。
When NOT to use
不适用场景
- Just checking readiness → .
jackin-release-check - Just updating the changelog → .
jackin-release-notes
- 仅需检查发布就绪状态 → 使用。
jackin-release-check - 仅需更新变更日志 → 使用。
jackin-release-notes
Prerequisites
前置条件
cargo-releaseghrelease.tomlpre-release-replacementsCHANGELOG.mdCHANGELOG.md<!-- next-header -->.github/workflows/ci.yml已安装;已完成身份验证;中配置了针对的;包含标记;存在文件。
cargo-releaseghrelease.tomlCHANGELOG.mdpre-release-replacementsCHANGELOG.md<!-- next-header -->.github/workflows/ci.ymlProcess
流程
-
Gates. Run. A red gate stops — show the report and name what to fix. Warns surface; ask whether to continue.
jackin-release-checkDone when every gate is green, or the operator accepted the warns. -
Changelog. Run. Present the
jackin-release-notessection; let the operator re-classify or reword.[Unreleased]Done when the operator approves the changelog. -
Recommend a version. Read the approvedbuckets: any Removed or "breaking" entry → major; any Added → minor; only Fixed / Changed / Security / Deprecated → patch. Read the current version (
[Unreleased]), compute the next, present the recommendation, wait.grep '^version' Cargo.tomlDone when the operator confirms the bump level. -
Commit the changelog. Ifhas uncommitted edits,
CHANGELOG.md.git add CHANGELOG.md && git commit -m "docs: update changelog for vX.Y.Z" -
Final confirm. Show the summary — version, bump level, changelog shape, and the exactabout to run (it bumps
cargo release <level> --execute, renamesCargo.tomlto[Unreleased]via[X.Y.Z] - <date>, tags, and pushes). Do not run it without an explicit "yes."release.tomlDone when the operator says "yes." -
Cut.. On failure, show the error and stop.
cargo release <level> --execute -
Verify.and
git tag -l "vX.Y.Z". Point the operator at the release workflow that now builds the artifacts.git ls-remote --tags origin "refs/tags/vX.Y.Z"
-
就绪检查。运行。若检查不通过(红色状态)则终止流程——展示检查报告并说明需要修复的内容。若仅为警告,则询问是否继续。
jackin-release-check完成标志:所有检查项通过,或操作人员确认接受警告。 -
变更日志处理。运行。展示
jackin-release-notes部分内容,允许操作人员重新分类或修改措辞。[Unreleased]完成标志:操作人员确认变更日志内容。 -
推荐版本号。读取已确认的分类内容:若包含Removed或“破坏性变更”条目 → 主版本(major);若包含Added条目 → 次版本(minor);仅包含Fixed / Changed / Security / Deprecated → 补丁版本(patch)。读取当前版本号(
[Unreleased]),计算下一个版本号,展示推荐结果并等待确认。grep '^version' Cargo.toml完成标志:操作人员确认版本升级级别。 -
提交变更日志。若存在未提交的修改,执行
CHANGELOG.md。git add CHANGELOG.md && git commit -m "docs: update changelog for vX.Y.Z" -
最终确认。展示汇总信息——版本号、升级级别、变更日志结构,以及即将执行的命令详情(该命令会更新
cargo release <level> --execute版本号,通过Cargo.toml将release.toml重命名为[Unreleased]、打标签并推送)。必须得到明确的“yes”才能执行。[X.Y.Z] - <date>完成标志:操作人员输入“yes”。 -
执行发布。运行。若执行失败,展示错误信息并终止流程。
cargo release <level> --execute -
验证发布。执行和
git tag -l "vX.Y.Z"。引导操作人员查看负责构建产物的发布工作流。git ls-remote --tags origin "refs/tags/vX.Y.Z"
Error recovery
错误恢复
- Before : safe to fix and re-run — this skill re-validates everything.
cargo release - During : check what committed or tagged. Tag created but unpushed →
cargo release. Version commit without tag → reset and retry.git push origin vX.Y.Z - After: the release is done; a CI failure is a workflow issue, not a rollback.
- 在执行之前:可以安全修复问题后重新运行——该skill会重新验证所有内容。
cargo release - 在执行过程中:检查已提交或已打标签的内容。若标签已创建但未推送 → 执行
cargo release。若已提交版本号变更但未打标签 → 重置并重试。git push origin vX.Y.Z - 执行完成后:发布已完成;若CI失败属于工作流问题,无需回滚。
Common mistakes
常见错误
- Running without the explicit "yes" — the one hard gate.
cargo release - Letting a red readiness gate through to the cut.
- Hand-editing the version heading —
[X.Y.Z]rewrites it viacargo-releaserelease.toml; double-editing corrupts the release commit.pre-release-replacements
- 未得到明确“yes”就运行——这是唯一的强制检查项。
cargo release - 允许未通过的就绪检查项进入发布流程。
- 手动编辑版本标题——
[X.Y.Z]会通过cargo-release的release.toml重写该标题;手动编辑会导致发布提交内容损坏。pre-release-replacements