mcpField
R
release

release

github.com/jackin-project开发3162 次安装4 周前更新
代码仓库

关于 release

jackin 项目的发布编排技能,供维护者执行版本发布。它串联发布检查、变更日志生成、版本建议和经确认后运行 cargo release。

主要功能

  1. 01发布前验证
  2. 02生成变更日志
  3. 03建议版本号
  4. 04确认后执行 cargo release
  5. 05发布后检查标签推送

适用场景

  1. 01准备发布 jackin 新版本
  2. 02依据变更日志选择版本升级级别
  3. 03检查发布标签是否已推送

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jackin-project/jackin-dev --skill release

安装后在 Claude Code 中输入/release确认已加载。

详细介绍

发布

jackin 项目的完整发布协调流程。运行发布前验证、生成更新日志、推荐版本,并执行 cargo release。

适用场景

  • 需要创建新版本时
  • 用户要求“发布”“创建版本”或“发布上线”时

不适用场景

  • 只想检查是否已准备就绪:改用 release-check
  • 只想更新更新日志:改用 release-notes

前置条件

  • 必须已安装 cargo-release:cargo install cargo-release
  • gh CLI 必须已通过身份验证:gh auth status
  • release.toml 必须为 CHANGELOG.md 配置 pre-release-replacements
  • CHANGELOG.md 必须存在且包含 `` 标记
  • .github/workflows/ci.yml 必须存在

流程

步骤 1:运行发布检查

完整遵循 release-check 技能。读取 skills/release-check/SKILL.md 并执行所有检查。

如果任何阻塞性检查失败,立即停止。展示就绪情况报告,并告知用户需要修复哪些问题。不要继续。

如果只有警告或待审核项,展示报告并询问:“发现警告。要继续发布吗?(是/否)”

步骤 2:运行发布说明

完整遵循 release-notes 技能。读取 skills/release-notes/SKILL.md 并执行所有步骤。

展示生成的更新日志部分,供用户审核和编辑。

在用户批准更新日志之前,不要继续。

步骤 3:推荐版本

读取 CHANGELOG.md 中已批准的 [Unreleased] 部分,并分析各类别:

条件建议
Removed 中有条目,或任何条目提及“breaking”升级 major 版本
Added 中有条目升级 minor 版本
仅包含 Fixed、Changed、Security、Deprecated升级 patch 版本

获取当前版本:

grep '^version' Cargo.toml | head -1 | sed 's/.*"\(.*\)"/\1/'

计算建议的下一个版本并展示:

“当前版本:v0.4.0 更新日志包含:2 个 Added、1 个 Fixed、1 个 Changed 建议版本:v0.5.0(minor — 添加了新功能)

接受此版本,还是指定其他升级级别?(major/minor/patch)”

等待用户确认。

步骤 4:提交更新日志

如果 CHANGELOG.md 有未提交的更改(来自步骤 2),则提交这些更改:

git add CHANGELOG.md
git commit -m "docs: update changelog for vX.Y.Z"

将 X.Y.Z 替换为步骤 3 中建议的版本。

步骤 5:最终确认

展示摘要:

Release Summary
===============
Version:   v0.5.0 (minor)
Changelog: 2 Added, 1 Fixed, 1 Changed
Checks:    all green (1 warning)
Command:   cargo release minor --execute

This will:
  1. Bump version in Cargo.toml to 0.5.0
  2. Rename [Unreleased] to [0.5.0] - 2026-04-04 in CHANGELOG.md
  3. Add new [Unreleased] section
  4. Create release commit: "chore: release v0.5.0"
  5. Create tag: v0.5.0
  6. Push commit and tag to origin

Proceed? (yes/no)

未经用户明确回复“是”,绝不要运行 cargo release。

步骤 6:执行发布
cargo release {major|minor|patch} --execute

其中,{major|minor|patch} 应与步骤 3 中用户确认的升级级别一致。

监控输出。如果 cargo release 失败,展示错误并停止。

步骤 7:发布后验证

验证标签已推送:

git tag -l "vX.Y.Z"
git ls-remote --tags origin "refs/tags/vX.Y.Z"

提醒用户:

“已创建并推送 v0.5.0 标签。GitHub Actions 现在将:

  • 为所有目标平台构建发布二进制文件
  • 创建包含构件的 GitHub Release
  • 更新 Homebrew tap

可在此处监控:https://github.com/jackin-project/jackin/actions/workflows/release.yml”

错误恢复

如果任何步骤出错:

  • 运行 cargo release 之前: 可以安全修复问题并重新运行 /release。该技能会重新验证所有内容。
  • 运行 cargo release 期间: 检查已提交或已创建标签的内容。如果标签已创建但尚未推送,可以手动推送:git push origin vX.Y.Z。如果已创建版本升级提交但尚未创建标签,可能需要重置后重试。
  • 运行 cargo release 之后: 发布已完成。如果 CI 失败,请检查 GitHub Actions 工作流。

评论

支持 Markdown