发布过程

要发布一个 Yarn 新版本

  1. 确保当前 master 分支在 Circle, TravisAppVeyor 上是绿色的。
  2. 确保你的 Yarn 本地代码拷贝是新的,然后运行 ./scripts/release-branch.sh。 这会创建 0.xx-stable 分支并赋予标签 0.xx.0 给 HEAD 并且推送它们到 git origin
  3. 如果构建通过,CircleCI 和 Appveyor会自动创建一个 GitHub 发布版本。 他们会构建出工件并附加到 GitHub 版本上。 他们也会用标签 rc 发布新版本到 npm (意味着它默认不会被安装给用户但可用)
  4. 验证所有工件都被附加到发布版本上 (.tar.gz, .deb, .rpm.msi). 直到完成前别继续
  5. 用命令 git-release-notes v0.yy.0..v0.xx.0 markdown > release-notes.md 生成新的版本说明,用 git release notes tool 其中 v.0.yy.0 是最新的稳定 tag 欢迎建议替代工具

给已有 Yarn 版本打补丁

  • 切换到已发布的版本分支 git checkout 0.x-stable, 例如 0.7-stable
  • 从 master 分支捡出修复 bug 的提交
  • 给新版本打标签 npm version patch, 它会创建一个提交记录来修改 package.json 并给那个提交打上 v0.xx.1 标签
  • 推送到 origin git push origin 0.x-stable --follow-tags

标记一个发布版本为稳定版

  1. 从 npm 的版本中移除标签 rc,并设置版本为稳定版 latest
npm dist-tag rm yarn rc
npm dist-tag add yarn@<version> latest
  1. 增长 网站上 _config.yml 里的 latest_version。 这会更新下载链接(/latest.tar.gz 等)指向新版本。 最终这将自动化(#187
  2. Debian 和 CentOS 仓库应该在5分钟内自动更新到最新版本(盯住那些提交

旧的手工处理

这是旧方式发布已经结束,仅供参考(以防任何自动化中断) 构建一个发布版本是两步处理 - 大多数基于 Linux 构建,也有一些 Windows 专有的东西 (比如 Windows 安装程序)在 Windows 上构建。

Linux 上:

  1. ./scripts/release-branch.sh
  2. 构建 Debian 和 RPM 包: ./scripts/build-deb.sh
  3. artifacts 目录附加 .deb.rpm 文件到 Github 版本

Windows 上:

  1. 正常构建 Yarn (yarn install && yarn run build)
  2. powershell .\scripts\build-dist.ps1
  3. 构建 Windows 安装程序: yarn run build-win-installer - TODO: 增加安装程序验证签名 (#619)
  4. 构建 Chocolatey 包: yarn run build-chocolatey
  5. artifacts 目录附加结果 .msi 文件到 Github 版本
  6. 上传 Chocolatey 包 (未来我们应该自动化这个). - 注:只在 MSI 附加到 GitHub 版本时做一次,作为 Chocolatey 通过下载链接拉取 MSI - 另注:上传 Chocolatey 包后修改 MSI 将会破坏 Chocolatey 包,因为它包含 MSI 的 hash。确保两边总是都同时更新。