feat: update manage-release

This commit is contained in:
2026-08-04 13:55:16 +08:00
parent 5018a1801d
commit 5ff8899b48
7 changed files with 168 additions and 80 deletions
@@ -28,9 +28,11 @@
- `schema`:配置结构版本,当前为 `1`
- `base_branch`:发布 PR/MR 的目标分支。
- `branch_pattern`:版本分支格式,支持无展示前缀的规范 `{version}`
- `branch_pattern`需要准备仓库修改时使用的版本分支格式,支持无展示前缀的规范
`{version}`;直接发布不因此创建分支。
- `version.scheme``semver` 或项目已经使用的其他方案。
- `version.sources`:构建和运行实际读取的权威版本文件
- `version.sources`:构建和运行实际读取的权威版本文件;项目明确从 Git tag 派生版本时
可以省略,不要为了发布新增无消费方的版本文件。
- `tag_pattern`release tag 格式,支持无展示前缀的规范 `{version}`
- `merge_method``squash``merge``rebase`
- `forge_release`:项目是否建议在 tag 后创建 Forge Release;它不授予创建权限。
@@ -54,18 +56,20 @@ symlink 后,目标必须仍在当前 worktree 内;权威来源通常还应
1. 从 remote HEAD 和平台信息确定默认 base,不能确定时询问。
2. 从项目文档、CI 和构建入口找版本文件及更新方式。
3. 从已有分支和已合并 PR/MR 识别命名与合并方式。
4. 从稳定 tag 识别前缀版本方案,只把 tag 当作交叉验证。
5. 无项目约定时使用 `release/v<version>`、SemVer、`v<version>` annotated tag 和
squash merge;默认不创建 Forge Release,不删除远端分支。
3. 仅当发布需要修改仓库内容时,从已有分支和已合并 PR/MR 识别命名与合并方式。
4. 从稳定 tag 识别前缀版本方案和更新说明范围;项目由 tag 派生版本时,把实际构建
入口和 tag 历史共同作为版本来源证据,否则只把 tag 当作交叉验证。
5. 无项目约定时使用 SemVer 和 `v<version>` annotated tag;需要准备仓库修改时再使用
`release/v<version>` 和 squash merge。默认不创建 Forge Release,不删除远端分支。
## 每次执行的计划快照
在第一次写操作前列出以下事实:
- base 分支远端 commit。
- base 分支远端 commit 和 tag 将指向的目标 commit。
- 当前版本、目标版本、版本来源和升级依据。
- worktree 路径与分支名
- 更新说明的提交范围、来源和拟发布内容
- 是否需要修改仓库内容;需要时再列出 worktree 路径与分支名。
- PR/MR 托管平台和合并方式。
- tag 与 Forge Release 计划。
- 用户授权的最远阶段和清理范围。