SuperAPI AI 工具集

release

部署与运维

查看项目

更新于 10-15 18:26

技能介绍

用途

该技能用于端到端地准备并发布一个 cmux 版本,覆盖从确定版本号、整理面向用户的变更日志、更新版本元数据,到创建并监控发布 PR、合并、打标签以及验证发布产物的完整流程。

主要能力

  • 确定版本号:读取 GhosttyTabs.xcodeproj/project.pbxproj 中的 MARKETING_VERSION,默认进行 minor 递增,除非用户明确要求 patch、major 或指定版本。
  • 创建发布分支:git checkout -b release/vX.Y.Z。
  • 收集自上个 tag 以来的用户可见变更与贡献者:使用 git describe --tags --abbrev=0 与 git log --oneline <last-tag>..HEAD --no-merges,仅保留终端用户可见的变更(功能、缺陷修复、UX/性能行为)。
  • 收集贡献者:对每个 PR 使用 gh pr view <N> --repo manaflow-ai/cmux --json author --jq '.author.login' 获取作者,并用 gh issue view <N> --json author --jq '.author.login' 检查关联 issue 的报告者,构建去重后的贡献者 @handles 列表。
  • 更新变更日志:CHANGELOG.md 是唯一事实来源,web/app/[locale]/docs/changelog/page.tsx 直接从中渲染各版本的条目列表;按 Added、Changed、Fixed、Removed 分类更新,并内联致谢贡献者。
  • 同步高亮内容:将精选亮点镜像到 web/app/[locale]/docs/changelog/changelog-media.ts,保持与已发布范围一致;该文件提供文档变更日志页的 hero 标题与功能亮点(条目仍来自 CHANGELOG.md)。若用户移除某功能,也需从该版本 features 中移除并更新标题。
  • 更新应用版本元数据:优先使用 ./scripts/bump-version.sh(minor),或 ./scripts/bump-version.sh patch|major|X.Y.Z,确保 MARKETING_VERSION 与 CURRENT_PROJECT_VERSION 均已更新。
  • 提交并推送分支:暂存发布文件(变更日志与版本更新),以 Bump version to X.Y.Z 提交,执行 git push -u origin release/vX.Y.Z。
  • 创建发布 PR:gh pr create --title "Release vX.Y.Z" --body "...",PR 正文包含简洁的变更日志摘要。
  • 监控 CI 并解决失败:gh pr checks --watch,修复失败检查、推送并等待通过。
  • 合并并同步 main:gh pr merge --squash --delete-branch,然后 git checkout main && git pull --ff-only。
  • 运行预打标签守卫并创建推送 tag:./scripts/release-pretag-guard.sh;若失败,运行 ./scripts/bump-version.sh,提交构建号递增,推送/合并该变更后重试打标签;随后 git tag vX.Y.Z 与 git push origin vX.Y.Z。
  • 验证发布工作流与产物:gh run watch --repo manaflow-ai/cmux,确认 GitHub Releases 中存在发布且包含 cmux-macos.dmg。

使用方式

按上述工作流顺序执行。在起草面向用户的条目之前,需与用户确认实际发布范围:已合并的 PR 不等于已发布的功能,功能可能处于 beta 开关之后、内部标志、部分落地、后续被回滚或尚未就绪。在编写 Added/Changed 部分前,列出候选的面向用户条目并询问用户哪些确实已准备好在本次版本发布;删除用户表示未就绪的条目及其依赖条目。若版本、范围或发布面在发布过程中发生变化,需重新确认。若不存在面向用户的变更,需先与用户确认再继续。

变更日志规则

  • 仅包含本次版本实际发布的用户可见变更。仅合并 PR 不够:需与用户确认每个候选功能已发布(不在 beta 开关后、未部分落地、未被推迟)。有疑问时先询问再列出。
  • 排除仅内部变更(CI、测试、仅文档编辑、无行为变化的重构)。
  • 使用现在时编写简洁的面向用户条目。

贡献者致谢

  • 逐条致谢:对社区代码贡献追加 — thanks @user!;对缺陷报告者(与 PR 作者不同时)使用 — thanks @user for the report!。核心团队(lawrencecchen、austinywang)不单独标注,核心工作为基线。
  • 汇总致谢:在每个版本底部添加 ### Thanks to N contributors! 部分,按字母顺序列出所有 @handle 链接(包括核心团队)。
  • GitHub Release 正文:包含相同的 "Thanks to N contributors!" 部分并附链接的 handles。

适用场景

适用于 cmux 项目的版本发布流程,包括版本号确定、变更日志整理、版本元数据更新、发布 PR 创建与合并、打标签及发布产物验证。

限制

资料未提供该技能对操作系统、依赖版本、权限或网络环境的具体要求;未提供收费、价格或平台信息;未提供除上述脚本与命令之外的其他使用步骤。