mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-11 20:38:58 +08:00
- 重构 semantic-release workflow 为 preview 与 release 两种手动触发模式 - 更新 AGENTS 中的 Conventional Commit 规则并禁止 feat(docs) 这类文档提交类型 - 补充 semantic-release 迁移跟踪与二次验证记录
2.4 KiB
2.4 KiB
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
- 最新 tag 为
- 补建本主题的 active tracking / trace 入口,并在
ai-plan/public/README.md中为feat/semantic-release-versioning建立 worktree 映射
阶段:配置落地与验证(SEMREL-RP-001)
- 新增
.releaserc.json,显式固定:feat -> minorfix/perf/refactor -> patchdocs/test/chore/build/ci/style -> no releaseBREAKING CHANGE/BREAKING CHANGES作为 major 信号
- 重写
auto-tag.yml:- 改为纯
workflow_dispatch手动入口 - 增加
release_mode=preview|release输入 preview只跑 dry-run 并输出last_tag、next_version、next_tagrelease由维护者手动触发真实打 tag,并要求PAT_TOKEN
- 改为纯
- 收紧
AGENTS.md的提交信息约束,明确提交类型必须反映 release semantics,纯文档变更禁止写成feat(...) - 按用户反馈继续调整发版入口:
- 删除基于
workflow_run的自动发版路径 - 统一改为
workflow_dispatch手动触发 - 通过
release_mode=preview|release区分“查看下个版本”和“真实打 tag”
- 删除基于
- 复验最小构建命令:
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
- 成功识别
下一步
- 复核变更 diff 并创建提交
- 向用户说明新的发版链路与可优化点