Files
octopus-workflow/core/checklists/release.md
T

6.3 KiB
Raw Blame History

Release 检查清单

发版前自检。Producer (Worker) 在 Phase 1 和 Phase 6 完整过一遍。

维度命名空间(dimension namespace): 本清单中的维度代码(如 TST/BEH/GATE/REG)是**清单局部(checklist-local)**标识符,仅在本文档内唯一;其他清单可能对相同字母串绑定不同概念(如 code-review.md 的 TST=Test Quality、verification.md 的 TST=Test Suite Completeness、port.md 的 TST=Test Porting)。跨清单引用时必须带清单限定(如 code-review.md TST 5.8),不得使用裸代码。


1. 前置闸门(GATE — Pre-release Gates)

# 检查项 通过 不通过 备注
1.1 工作区干净(git status 无未提交变更) ☐ ☐
1.2 在正确的发布分支上 ☐ ☐
1.3 构建通过 ☐ ☐
1.4 Typecheck + Lint 通过 ☐ ☐
1.5 测试全部通过 ☐ ☐
1.6 依赖审计已运行,无新增 HIGH/CRITICAL CVE ☐ ☐
1.7 无未跟踪的敏感文件(.npmrc 含 token、.env、credentials、私钥等) ☐ ☐

注意 1.6:若使用了无法访问公有 registry 的私有仓库(如自建 Gitea),bun audit / npm audit 可能报 404。此时无法获取 CVE 数据属于已知盲区,须在 release report 中明确标注「dependency audit: N/A (custom registry)」。


2. 版本号(VER — Version)

# 检查项 通过 不通过 备注
2.1 已找到上一个 tag(或确认这是首个 tag) ☐ ☐
2.2 所有 commit 已按类型分类(BREAKING/feat/fix/other) ☐ ☐
2.3 版本号遵循 semver(MAJOR.MINOR.PATCH) ☐ ☐
2.4 变更类型与 commit 内容一致 ☐ ☐
2.5 版本号大于上一个 tag ☐ ☐
2.6 版本号已写入所有版本文件 ☐ ☐

3. 变更日志(LOG — Changelog)

# 检查项 通过 不通过 备注
3.1 自上一个 tag 以来的所有非 chore 提交均已收录 ☐ ☐
3.2 条目分组正确(Added/Changed/Fixed/Breaking) ☐ ☐
3.3 Breaking change 有迁移说明 ☐ ☐
3.4 每个条目标注了对应的 commit hash ☐ ☐
3.5 CHANGELOG.md 已更新(prepend 新版本段) ☐ ☐

4. 标签(TAG — Git Tag)

# 检查项 通过 不通过 备注
4.1 commit message 含版本号 ☐ ☐
4.2 tag 已创建且指向正确 commit ☐ ☐
4.3 tag 命名遵循项目约定(默认 v{version}) ☐ ☐

5. 回滚计划(ROLL — Rollback Plan)

# 检查项 通过 不通过 备注
5.1 Git 回退步骤已文档化 ☐ ☐
5.2 若有数据库迁移,down migration 存在且已测试 ☐ ☐
5.3 回滚触发条件已明确(延迟/错误率/严重 Bug) ☐ ☐

6. 冒烟测试(SMOKE — Post-release Smoke)

# 检查项 通过 不通过 备注
6.1 Tagged commit 可构建 ☐ ☐
6.2 测试全部通过 ☐ ☐
6.3 回到了原始分支 ☐ ☐

7. 产物发布(DIST — Artifact Distribution,octopus 项目)

对应 .octopus/skills/release/SKILL.md Phase 4b(#2003 退役 CI publish 管线后的手工发布流程)。主仓库 tag + release 对象 ≠ 发布完成——CLI 二进制、公开镜像、桌面 feed 三层外圈全部就位才算。本清单从磁盘读取, 作为技能注入被截断时的兜底事实源(v0.25.0 发布时技能注入截断恰好切掉 Phase 4b,导致外圈整层遗漏——本节由此设立)。

# 检查项 通过 不通过 备注
7.1 12 平台 CLI 二进制已构建(tag 的干净 checkout,bun packages/octopus/script/build.ts),全部 smoke test 输出版本号 ☐ ☐ Windows 无 python3 命令,zip 归档需垫 shim 或手动补齐
7.2 12 个归档已挂到主仓库 release(zip×6 + tar.gz×6) ☐ ☐
7.3 (可选,Gitea-only 口径可跳过)npm/docker/AUR 外部 registry 已发或明确跳过 ☐ ☐ OCTOPUS_GITEA_ONLY=true
7.4 sync-public-assets.sh 已跑:公共镜像 Octopus/octopus-release 的 v{version} release 有 12 资产 ☐ ☐ 大 POST 出站不通时经服务器 localhost 中继
7.5 sync-public-install.sh 已跑:install/install.ps1/README 同步到镜像 main(注意 cp 目标是根 README.md,不是 scripts/ 副本) ☐ ☐
7.6 verify-public-sync.sh PASSED ☐ ☐
7.7 Desktop feed 双平台已派发(desktop-feed.yml dispatch ×2:beta/prod × win/linux),latest.yml 与 latest-linux.yml 的 version: == CLI 版本 ☐ ☐ concurrency 组已按 platform 分离;资产字节数须与 feed 声明一致
7.8 README 下载链接抽查(install 脚本 raw、资产直链、docs 相对链接)匿名可达 ☐ ☐ v0.18 遗留 wiki 坏链由此发现