GFramework/ai-plan/public/semantic-release-versioning/traces/semantic-release-versioning-trace.md
gewuyou b194238385 build(release): 迁移语义化版本打标流程
- 新增 semantic-release 配置并固定 release rules 与 v 前缀 tag 格式

- 重构 auto-tag workflow 为 main 上的真实打标与 workflow_dispatch dry-run 双入口

- 保留现有 publish workflow 并补充 ai-plan 跟踪与验证记录
2026-04-26 09:42:18 +08:00

1.8 KiB
Raw Blame History

Semantic Release 版本迁移追踪

2026-04-26

阶段方案落地准备SEMREL-RP-001

  • 读取当前 auto-tag.ymlpublish.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_run 监听 CI - Build & Test
    • workflow_dispatch 变为 dry-run 入口
    • 真实打 tag 改由 semantic-release-action 处理,并要求 PAT_TOKEN
  • 完成最小构建验证:
    • 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. 向用户说明新的发版链路与可优化点