用途:完成一次发布收尾。它会将 CHANGELOG.md 的 [Unreleased] 段落盖上版本号与日期,运行 bumpversion 更新所有被跟踪的版本文件,并创建带标签的发布提交。运行后仓库会得到一个干净的发布提交和标签,等待推送。
前提条件:已安装并认证 gh CLI(gh auth status);已安装 bumpversion(pip install bumpversion 或项目 venv 中可用);CHANGELOG.md 的 [Unreleased] 段落应已包含发布说明,若为空或过时,先运行 draft-release-notes 技能。
工作流程:1) 用 git status --porcelain 确认工作区干净(仅 CHANGELOG.md 及可选的 .agents/ 文件可被修改),否则停止并让用户先提交或暂存;2) 确定升级级别(patch、minor 或 major),未指定则询问用户,可用 grep '^current_version' .bumpversion.cfg 查看当前版本;3) 标记 changelog:清空 [Unreleased] 正文,在其后插入带版本与日期的段落,并更新文件底部引用链接;4) git add CHANGELOG.md;5) 运行 bumpversion --allow-dirty <patch|minor|major>,它会更新所有被跟踪文件中的版本字符串、创建提交(消息为 Bump version: X.Y.Z -> A.B.C)并创建标签 vA.B.C;6) 用 git show --name-only --stat HEAD 和 git tag --list "v*" --sort=-v:refname | head -n 5 验证提交包含 CHANGELOG.md、.bumpversion.cfg、tauri/src-tauri/tauri.conf.json、tauri/src-tauri/Cargo.toml、package.json、app/package.json、tauri/package.json、web/package.json、backend/init.py,并确认新标签存在。
版本计算:当前 X.Y.Z 时,patch 为 X.Y.(Z+1),minor 为 X.(Y+1).0,major 为 (X+1).0.0。
限制与注意:除非用户明确要求,否则不要推送;推送时建议 git push origin main --follow-tags。若 bumpversion 失败则标签不会存在,修复后重跑即可(只要标签不存在,bumpversion 是幂等的)。撤销未推送的发布提交可用 git tag -d vX.Y.Z && git reset --soft HEAD~1;绝不要修改已推送的发布提交。标签推送后,发布 CI(.github/workflows/release.yml)会自动从 CHANGELOG.md 提取对应版本段落作为 GitHub Release 正文。发布提交消息由 .bumpversion.cfg 控制,不要覆盖。如需事后手动更新 GitHub Release 正文,可用 gh release edit vX.Y.Z --notes-file <(sed -n '/## [X.Y.Z]/,/## [/p' CHANGELOG.md | head -n -1)。