React Router 发布技能用于通过项目现有的发布自动化流程完成正式发布,覆盖从评审自动生成的发布 PR 到合并、跟踪 release 工作流以及验证外部发布制品。
用途: 执行 React Router 的标准版本发布,基于自动生成的发布 PR 完成就绪检查、合并和发布后验证。发布请求即授权合并已验证的 PR 并跟进发布;仅要求检查就绪状态时,在评审处停止。创建或编辑本技能不授权实际发布。
主要能力:
- 评审发布 PR:确认 PR 目标分支(默认 main 或指定的 v7/现有 hotfix 分支)、来源仓库与生成分支符合 scripts/changes/pr.ts;记录 head SHA 与 base tip;检查版本号变更、根/包变更日志、删除的待发布变更文件以及 what's-changed.md 的使用;核对预期包/版本对与 npm/git 标签。
- 利用 PR CI 验证构建、测试、类型检查、lint 和集成验证;待定、失败、取消、缺失或过期的检查会阻止发布。
- 合并并跟进工作流:合并前刷新 PR 状态、检查分支保护与评审;使用带 head guard 的受支持合并策略(如 squash)合并;获取合并 SHA 并确认树中包含已评审的发布变更;跟踪 release.yml 在目标分支上的运行,等待发布被选中,跟进 Publish 与 release-comment 任务。
- 验证发布:通过只读的 npm、git、gh 命令确认每个预期包在 npm registry 上的版本存在且 dist-tag 指向正确;验证远程 git 标签解析到合并 SHA;确认 GitHub Release 已发布(非 draft/prerelease)、命名为 v<version>、链接到对应变更日志,并检查 latest 状态。
使用方式:
- 阅读 DEVELOPMENT.md、.github/workflows/release.yml 和 scripts/changes/{pr,publish}.ts 了解当前流程与标签规则。
- 定位自动生成的发布 PR 并进行评审,记录 reviewed head SHA 和 base tip。
- 确认 CI 全部通过后,刷新 PR 状态并合并(示例:gh pr merge <number> --repo remix-run/react-router --squash --match-head-commit <reviewed-head-sha>)。
- 跟踪 release.yml 运行,确认发布任务执行,不运行本地发布命令。
- 发布完成后用只读命令验证 npm 版本/dist-tag、远程 git 标签和 GitHub Release。
适用场景: React Router 仓库(remix-run/react-router)的标准正式发布,包括 main 和 hotfix 分支;实验性发布使用单独工作流,不属于本技能范围。
限制:
- 仅覆盖自动生成的发布 PR;实验性发布不适用。
- 发布就绪依赖 CI 通过;不允许使用 --admin 或在不完整就绪时启用无人值守自动合并。
- 不进行本地依赖安装、构建、打包、消费者冒烟测试或重新生成。
- 发布仅在 CI 工作流中执行,不运行本地发布命令。
- 工作流失败或部分发布时需检查日志并报告缺失项,不得盲目重跑;超出原发布范围的恢复操作需额外授权。
- 注册表/网络错误视为不确定,不能作为版本缺失或发布成功的证据。
- 当前标签规则:main 和 hotfix 使用 npm latest;v7 使用 version-7,但 react-router-dom 使用 latest;所有已发布包都有 git 标签(包括 scoped 包);仅 react-router 创建 GitHub Release。需根据当前脚本重新确认这些规则。