Release 检查清单
发版前自检。Release Manager 在 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 |
回到了原始分支 |
☐ |
☐ |
|