SuperAPI AI 工具集

cut-release

通用与其它

查看项目

更新于 10-16 00:30

技能介绍

用途:cut-release 在当前工作树上端到端驱动发版流程,从评估变更到打开发布 PR,流程在“PR 已打开”处停止;打标签是人工触发的后续步骤,不属于本技能。

主要能力:枚举自上个标签以来已合并的 PR;依据 semver 规则判断应做 PATCH、MINOR 还是升级到 MAJOR;按 Keep-a-Changelog 格式整理 CHANGELOG.md 条目;更新 pyproject.toml 版本并刷新 uv.lock;镜像 CI 的 lint 链进行校验;提交、推送并创建发布 PR。

使用方式:在发布准备分支上触发,常见意图包括“cut a release”“release prep”“bump and open the PR”等。流程分阶段执行:读取当前分支与最近标签,运行 scripts/list-changes-since-tag.sh 枚举变更,依据 assets/semver-rubric.md 选择版本号,依据 assets/entry-sanitizer.md 整理日志,运行 scripts/bump-version.sh <new-version> 更新版本,运行 scripts/verify-lint-mirror.sh 校验,最后用 gh pr create 打开 PR。过程中有三个操作员确认点:版本选择、日志整理、lint 失败恢复。

适用场景:APM 仓库的常规发版准备,需要生成发布 PR 并确保 lint 通过。

限制:不执行打标签、不运行测试套件或构建二进制、不发布 GitHub Release 正文或公告、不决定是否应该发版;未经明确确认不会升级到 1.0.0 及以上;lint 未通过前不推送、不打开 PR;变更日志条目必须来自脚本输出,不能凭记忆编写;产物文件需保持可打印 ASCII。部分脚本与资产文件的具体内容暂未提供。