SuperAPI AI 工具集

oe-release

部署与运维

查看项目

更新于 10-15 20:27

技能介绍

用途:这是 outcome-engineering 包的发布流程说明。发布由标签驱动,推送 vX.Y.Z 标签会触发 GitHub Actions 发布流水线,依次运行测试、构建包、通过可信发布推送至 PyPI,并创建 GitHub Release。

主要能力:按补丁/次版本/主版本/测试版提升版本;更新 CHANGELOG;运行发布前检查;提交、打标签并推送;监控发布流水线并核验发布结果;失败时可回退重试。

前置条件:工作区干净(git status --short)、位于 main(git branch --show-current)、与远端同步(git fetch origin 并比较 main 与 origin/main),任一不满足应停止并告知用户。若未指定发布类型需询问。

使用方式:先用 git describe --tags --abbrev=0 与 git log $(git describe --tags --abbrev=0)..HEAD --oneline 查看变更;在 api 下运行 uv run ruff check .、uv run ty check、uv run pytest、uv build;仅在影响用户行为时更新文档;在 api/pyproject.toml 修改版本号;CHANGELOG.md 需保留空 ## [Unreleased] 并新增 ## [X.Y.Z] - YYYY-MM-DD,标题格式必须精确;提交 git commit -m "release: vX.Y.Z" 并 git tag vX.Y.Z,推送前展示版本、更新日志、变更文件与标签,等待用户明确确认后再 git push origin main 与 git push origin vX.Y.Z;随后用 gh run list --workflow=publish.yml --limit=1 与 gh run watch 监控,失败用 gh run view <run-id> --log-failed 查看。核验用 pip index versions outcome-engineering 与 gh release view vX.Y.Z,并报告 PyPI 与 GitHub Release 链接。

限制与注意:测试版版本号如 0.1.0→0.1.1b1、0.1.1b1→0.1.1b2、0.1.1b2→0.1.1 转稳定版。不得从失败的本地状态打标签。删除标签具有破坏性,必须先获得用户明确确认,确认后可用 git tag -d vX.Y.Z 与 git push origin :refs/tags/vX.Y.Z。其它未提供的细节暂未提供。