SuperAPI AI 工具集

prepare-release

部署与运维

查看项目

更新于 10-16 06:15

技能介绍

用途:为 inspect_evals 准备新版本发布。流程创建 release-YYYY-MM-DD 分支,收集 changelog.d/ 中的片段,提升版本标签,并打开草案 PR;合并后由 release-on-merge.yml 自动打 v<版本> 标签、创建 GitHub Release、构建并发布到 PyPI 并通知 Slack。参考文档为 PACKAGE_VERSIONING.md。

前提条件:gh CLI 已认证;对仓库有推送权限;changelog.d/ 中除 .gitkeep 与 TEMPLATE.md 外存在 changelog 片段。

阶段一 准备发布分支:先同步 main(git fetch origin;git checkout main;git merge --ff-only origin/main),失败则停止并告知用户本地 main 已偏离。检查 changelog 片段,没有则说明无可发布内容。用 git tag --sort=-v:refname --list 'v*' | head -1 找当前版本,参照 semver 表向用户确认是 major(破坏性变更)、minor(新功能)还是 patch(缺陷修复),计算并确认新版本号,再执行 git checkout -b release-YYYY-MM-DD。

阶段二 收集 changelog:运行 uv run scriv collect --version <NEW_VERSION>,它会删除个别片段文件并在 CHANGELOG.md 顶部插入新条目;用 git diff CHANGELOG.md 展示给用户审阅,确认后再 git add CHANGELOG.md changelog.d/ 与 git commit -m "Prepare release v<NEW_VERSION>"。

阶段三 推送并开 PR:git push -u origin release-YYYY-MM-DD;从 CHANGELOG.md 抽取新版本段落作为正文,执行 gh pr create --draft --title "Release v<NEW_VERSION>" --body "<EXTRACTED_CHANGELOG_SECTION>"。PR 标题必须以 Release v 开头,供工作流识别;告知用户 PR 地址与草案状态。

阶段四 合并后自动完成标签、Release、PyPI 发布与 Slack 通知,无需手动操作;版本由 setuptools_scm 从标签推导,无版本文件可编辑。注意标签必须带 v 前缀;中途出错可删除发布分支重来;weekly-release.yml 也可按计划或手动触发阶段一至三。