用途:为已发布的 NuGet 或 npm 包创建热修复(hotfix)发布流程,适用于补丁发布、将修复提交 cherry-pick 到发布分支等场景。
输入:需要用户提供包类型(nuget 或 npm)、要修补的已发布版本(如 NuGet 的 0.0.45、npm 的 1.31.0),以及要 cherry-pick 的一个或多个提交 SHA、PR 编号或分支名。信息缺失时通过 AskUserQuestion 收集;版本缺失时可用 git tag -l "nuget/v*" --sort=-version:refname | head -10(或 npm/v*)列出近期标签供选择。
主要步骤:1)用 git fetch origin --tags 与 git rev-parse 校验标签存在;2)计算热修复版本,NuGet 用四段版本号(无历史热修复则为 {{version}}.1,已有 {{version}}.N 则递增为 N+1),npm 用 semver 补丁递增(1.31.0→1.31.1);3)创建发布分支 release/{{type}}-v{{version}} 并推送;4)创建修复分支 fix/hotfix-{{type}}-v{{hotfix_version}},逐个执行 git cherry-pick {{commit_sha}};5)提升版本,NuGet 修改 packages/host/Version.props 的 <VersionPrefix>,npm 修改 packages/typescript-sdk/core/package.json 等受影响包(Rush 版本策略要求同步更新);6)提交版本变更;7)推送并创建以 release/{{type}}-v{{version}} 为目标(非 main)的草稿 PR,标题为 fix({{type}}): hotfix v{{hotfix_version}};8)输出摘要与后续步骤(合并 PR、在发布分支上排队 rayfin.official 流水线并设置 Publish{{Type}}: true,由流水线发布并打标签)。
限制与错误处理:标签不存在时停止并列出可用标签;cherry-pick 冲突时展示冲突文件,由用户解决后执行 git cherry-pick --continue;分支已存在时询问是否复用;版本已被打标签时递增到下一个可用修订并确认。具体仓库路径与流水线名称以资料为准,其他环境细节暂未提供。