发布过程
要发布一个 Yarn 新版本
- 确保当前 master 分支在 Circle, Travis 和 AppVeyor 上是绿色的。
- 确保你的 Yarn 本地代码拷贝是新的,然后运行
./scripts/release-branch.sh
。 这会创建0.xx-stable
分支并赋予标签0.xx.0
给 HEAD 并且推送它们到 gitorigin
- 如果构建通过,CircleCI 和 Appveyor会自动创建一个 GitHub 发布版本。 他们会构建出工件并附加到 GitHub 版本上。 他们也会用标签
rc
发布新版本到 npm (意味着它默认不会被安装给用户但可用) - 验证所有工件都被附加到发布版本上 (
.tar.gz
,.deb
,.rpm
和.msi
). 直到完成前别继续 - 用命令
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
标记一个发布版本为稳定版
- 从 npm 的版本中移除标签
rc
,并设置版本为稳定版latest
:
npm dist-tag rm yarn rc
npm dist-tag add yarn@<version> latest
- 增长 网站上 _config.yml 里的
latest_version
。 这会更新下载链接(/latest.tar.gz
等)指向新版本。 最终这将自动化(#187) - Debian 和 CentOS 仓库应该在5分钟内自动更新到最新版本(盯住那些提交)
旧的手工处理
这是旧方式发布已经结束,仅供参考(以防任何自动化中断) 构建一个发布版本是两步处理 - 大多数基于 Linux 构建,也有一些 Windows 专有的东西 (比如 Windows 安装程序)在 Windows 上构建。
Linux 上:
./scripts/release-branch.sh
- 构建 Debian 和 RPM 包:
./scripts/build-deb.sh
- 从
artifacts
目录附加.deb
和.rpm
文件到 Github 版本
Windows 上:
- 正常构建 Yarn (
yarn install && yarn run build
) powershell .\scripts\build-dist.ps1
- 构建 Windows 安装程序:
yarn run build-win-installer
- TODO: 增加安装程序验证签名 (#619) - 构建 Chocolatey 包:
yarn run build-chocolatey
- 从
artifacts
目录附加结果.msi
文件到 Github 版本 - 上传 Chocolatey 包 (未来我们应该自动化这个). - 注:只在 MSI 附加到 GitHub 版本时做一次,作为 Chocolatey 通过下载链接拉取 MSI - 另注:上传 Chocolatey 包后修改 MSI 将会破坏 Chocolatey 包,因为它包含 MSI 的 hash。确保两边总是都同时更新。