release

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Release

发布

Run this workflow to prepare and publish a cmux release.
运行此工作流以准备并发布cmux版本。

Workflow

工作流程

  1. Determine the version:
  • Read
    MARKETING_VERSION
    from
    GhosttyTabs.xcodeproj/project.pbxproj
    .
  • Default to a minor bump unless the user explicitly requests patch/major/specific version.
  1. Create a release branch:
  • git checkout -b release/vX.Y.Z
  1. Gather user-facing changes and contributors since the last tag:
  • git describe --tags --abbrev=0
  • git log --oneline <last-tag>..HEAD --no-merges
  • Keep only end-user visible changes (features, bug fixes, UX/perf behavior).
  • Collect contributors: For each PR, get the author with
    gh pr view <N> --repo manaflow-ai/cmux --json author --jq '.author.login'
    . Also check linked issue reporters with
    gh issue view <N> --json author --jq '.author.login'
    .
  • Build a deduplicated list of all contributor
    @handle
    s.
  1. Update changelogs:
  • Update
    CHANGELOG.md
    .
  • Update
    docs-site/content/docs/changelog.mdx
    .
  • Use categories
    Added
    ,
    Changed
    ,
    Fixed
    ,
    Removed
    .
  • Credit contributors inline (see Contributor Credits below).
  • If no user-facing changes exist, confirm with the user before continuing.
  1. Bump app version metadata:
  • Prefer
    ./scripts/bump-version.sh
    :
    • ./scripts/bump-version.sh
      (minor)
    • ./scripts/bump-version.sh patch|major|X.Y.Z
  • Ensure both
    MARKETING_VERSION
    and
    CURRENT_PROJECT_VERSION
    are updated.
  1. Commit and push branch:
  • Stage release files (changelog + version updates).
  • Commit with
    Bump version to X.Y.Z
    .
  • git push -u origin release/vX.Y.Z
    .
  1. Create release PR:
  • gh pr create --title "Release vX.Y.Z" --body "..."
  • Include a concise changelog summary in the PR body.
  1. Watch CI and resolve failures:
  • gh pr checks --watch
  • Fix failing checks, push, and wait for green.
  1. Merge and sync
    main
    :
  • gh pr merge --squash --delete-branch
  • git checkout main && git pull --ff-only
  1. Create and push tag:
  • git tag vX.Y.Z
  • git push origin vX.Y.Z
  1. Verify release workflow and assets:
  • gh run watch --repo manaflow-ai/cmux
  • Confirm release exists in GitHub Releases and includes
    cmux-macos.dmg
    .
  1. 确定版本号:
  • GhosttyTabs.xcodeproj/project.pbxproj
    中读取
    MARKETING_VERSION
  • 默认采用小版本升级,除非用户明确要求补丁版本/大版本/特定版本号。
  1. 创建发布分支:
  • git checkout -b release/vX.Y.Z
  1. 收集上一标签以来的用户可见变更及贡献者:
  • git describe --tags --abbrev=0
  • git log --oneline <last-tag>..HEAD --no-merges
  • 仅保留终端用户可见的变更(功能新增、Bug修复、UX/性能优化)。
  • 收集贡献者: 对于每个PR,使用
    gh pr view <N> --repo manaflow-ai/cmux --json author --jq '.author.login'
    获取作者。同时通过
    gh issue view <N> --json author --jq '.author.login'
    查看关联问题的报告者。
  • 生成去重后的所有贡献者
    @handle
    列表。
  1. 更新更新日志:
  • 更新
    CHANGELOG.md
  • 更新
    docs-site/content/docs/changelog.mdx
  • 使用
    Added
    Changed
    Fixed
    Removed
    分类。
  • 内联致谢贡献者(见下方贡献者致谢规则)。
  • 若无用户可见变更,需先与用户确认后再继续。
  1. 升级应用版本元数据:
  • 优先使用
    ./scripts/bump-version.sh
    • ./scripts/bump-version.sh
      (小版本升级)
    • ./scripts/bump-version.sh patch|major|X.Y.Z
      (指定升级类型或版本号)
  • 确保
    MARKETING_VERSION
    CURRENT_PROJECT_VERSION
    均已更新。
  1. 提交并推送分支:
  • 暂存发布相关文件(更新日志 + 版本更新文件)。
  • 提交信息为
    Bump version to X.Y.Z
  • git push -u origin release/vX.Y.Z
  1. 创建发布PR:
  • gh pr create --title "Release vX.Y.Z" --body "..."
  • 在PR正文中包含简洁的更新日志摘要。
  1. 监控CI并解决失败项:
  • gh pr checks --watch
  • 修复失败检查项,推送代码并等待检查通过。
  1. 合并并同步
    main
    分支:
  • gh pr merge --squash --delete-branch
  • git checkout main && git pull --ff-only
  1. 创建并推送标签:
  • git tag vX.Y.Z
  • git push origin vX.Y.Z
  1. 验证发布流程与制品:
  • gh run watch --repo manaflow-ai/cmux
  • 确认GitHub Releases中存在该版本,且包含
    cmux-macos.dmg
    制品。

Changelog Rules

更新日志规则

  • Include only user-visible changes.
  • Exclude internal-only changes (CI, tests, docs-only edits, refactors without behavior changes).
  • Write concise user-facing bullets in present tense.
  • 仅包含用户可见的变更。
  • 排除内部仅需的变更(CI配置、测试、仅文档编辑、无行为变更的重构)。
  • 使用简洁的现在时语句撰写面向用户的项目符号条目。

Contributor Credits

贡献者致谢

Credit the people who made each release happen:
  • Per-entry: Append
    — thanks @user!
    for community code contributions. Use
    — thanks @user for the report!
    for bug reporters (when different from PR author). No callout for core team (
    lawrencecchen
    ,
    austinywang
    ) — core work is the baseline.
  • Summary: Add a
    ### Thanks to N contributors!
    section at the bottom of each release with an alphabetical list of all
    [@handle](https://github.com/handle)
    links (including core team).
  • GitHub Release body: Include the same "Thanks to N contributors!" section with linked handles.
感谢参与每个版本发布的贡献者:
  • 单条目致谢: 对于社区代码贡献,在条目后追加
    — thanks @user!
    。对于Bug报告者(若与PR作者不同),使用
    — thanks @user for the report!
    。核心团队成员(
    lawrencecchen
    austinywang
    )无需单独标注——核心工作属于基础范畴。
  • 摘要致谢: 在每个版本更新日志底部添加
    ### 感谢N位贡献者!
    章节,按字母顺序列出所有
    [@handle](https://github.com/handle)
    链接(包含核心团队成员)。
  • GitHub Release正文: 包含相同的
    ### 感谢N位贡献者!
    章节及带链接的用户handle。