GFramework/ai-plan/public/semantic-release-versioning/traces/semantic-release-versioning-trace.md
gewuyou 16e04cc541 build(release): 调整为同次运行预览后审批发版
- 重构 semantic-release workflow 为 preview 预览后经 environment 审批继续 release

- 绑定同一 SHA 的 preview 与 release 结果并在 summary 中展示版本信息

- 更新 semantic-release 迁移跟踪文档记录新的审批式发版链路
2026-04-26 10:10:53 +08:00

51 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Semantic Release 版本迁移追踪
## 2026-04-26
### 阶段方案落地准备SEMREL-RP-001
- 读取当前 `auto-tag.yml``publish.yml`,确认最小侵入改法应只替换版本判断与打 tag保留 tag 触发发布链
- 核对最近 tag 与提交历史:
- 最新 tag 为 `v0.0.222`
- `v0.0.222..HEAD` 含多条 `feat(...)`,按目标规则首次 dry-run 预期结果为 `v0.1.0`
- 补建本主题的 active tracking / trace 入口,并在 `ai-plan/public/README.md` 中为
`feat/semantic-release-versioning` 建立 worktree 映射
### 阶段配置落地与验证SEMREL-RP-001
- 新增 `.releaserc.json`,显式固定:
- `feat -> minor`
- `fix/perf/refactor -> patch`
- `docs/test/chore/build/ci/style -> no release`
- `BREAKING CHANGE` / `BREAKING CHANGES` 作为 major 信号
- 重写 `auto-tag.yml`
- 改为纯 `workflow_dispatch` 手动入口
- 增加 `release_mode=preview|release` 输入
- `preview` 只跑 dry-run 并输出 `last_tag``next_version``next_tag`
- `release` 由维护者手动触发真实打 tag并要求 `PAT_TOKEN`
- 收紧 `AGENTS.md` 的提交信息约束,明确提交类型必须反映 release semantics纯文档变更禁止写成 `feat(...)`
- 按用户反馈继续调整发版入口:
- 删除基于 `workflow_run` 的自动发版路径
- 统一改为 `workflow_dispatch` 手动触发
- 先在同一次 run 中执行 `preview`
- 再通过 `release-approval` environment 做人工确认
- 审批通过后继续同一 SHA 的真实 `release`
- 复验最小构建命令:
- `dotnet build GFramework.Core.Abstractions/GFramework.Core.Abstractions.csproj -c Release -p:RestoreFallbackFolders=`
- 结果:通过,`0 warning / 0 error`
- 完成最小构建验证:
- `dotnet build GFramework.Core.Abstractions/GFramework.Core.Abstractions.csproj -c Release -p:RestoreFallbackFolders=`
- 结果:通过,`0 warning / 0 error`
- 直接在当前工作树执行 `semantic-release --dry-run` 时命中本地 tag 抓取冲突:
- `git fetch --tags ... would clobber existing tag`
- 结论:当前工作树不适合作为 dry-run 验证环境
- 改用干净临时克隆 `/tmp/gframework-semrel-dryrun` 再跑 dry-run
- 成功识别 `v0.0.222` 为最新 release
- 成功分析 `269` 个提交
- 按当前规则得出下一次应为 `minor` 发布,预期版本窗口从 `0.0.222` 提升到 `0.1.0`
### 下一步
1. 复核变更 diff 并创建提交
2. 向用户说明新的发版链路与可优化点