发行流程
发布新发行版
步骤因所发布的版本类型(主要版本、次要版本或修补程序版本)而略有不同
要发布一个新修补程序版本(例如从 0.28.1 到 0.28.2)
- 将所有必需的更改整合到
-stable
分支(例如 0.28 的0.28-stable
)。 - 确保你在本地处于
-stable
分支。 - 运行
npm version patch
升级版本号,并创建 Git 提交和标记 - 运行
git push origin 0.xx-stable --follow-tags
(使用合适的分支名称替换0.xx-stable
)
要发布一个新的次要版本或主要版本(例如,从 0.28.x 到 0.29.0)
- 确保当前主干分支在 Circle、Travis 和 AppVeyor 上都是绿色
- 确保你处于
master
且 Yarn 的本地副本是最新的 - 运行
./scripts/release-branch.sh
。这将- 创建
0.xx-stable
分支和0.xx.0
标记 - 将
master
升级到下一个次要版本(例如,在发布0.29.0
之后,主干将升级到0.30.0
) - 将所有内容推送到
origin
- 创建
标记 RC 发行版为稳定版本
在社区对 RC 进行了测试一段时间,并已解决所有主要错误后,即可将它标记为稳定版本。要执行此操作,请访问https://release.yarnpkg.com/,然后单击“将 RC 升级为稳定”按钮。
注意:一个白名单用于拥有访问该页面的权利。如果维护者不在白名单中,则你可以 在此进行修改。
调试发行版本
有时事情会出错。以下是如何对一些常见问题进行调试
我已经提交了标记,但是站点仍然指向旧版本
查看 GitHub 发行版本是否存在丢失的文件。发行脚本不会在 Linux 和 Windows 文件已附加到发行版本之前升级站点的版本号。
Linux 文件(.tar.gz
、.deb
等)丢失
检查 CircleCI 构建并在其失败时重新运行它。如果构建成功,检查 webhook 日志中是否有任何错误。
Windows 制品 (.msi
) 丢失
检查 AppVeyor 构建并在其失败时重新运行它。如果构建成功,检查 webhook 日志中是否有任何错误。
所有制品均已附加到发布,但网站仍指向旧版本
检查 yarn-version Jenkins 构建作业并查看它是否已失败。
如何手动执行
大多数发布已实现自动化且相当简单。通常情况下,您只需在阅读此处内容时停止即可。但是,如果发布工具包出现故障(或者如果您乐于困难行事),则可以手动执行发布步骤。
创建新发布
- 运行
yarn build-dist && yarn build-deb
以构建发布 tarball、Debian 包和 RPM 包 - 在 Windows 上运行
yarn build-dist && yarn build-win-installer
以构建 Windows 安装程序 - GPG 签名
.tar.gz
和.js
制品gpg -u 9D41F3C3 --armor --detach-sign yarn-0.xx.xx.tar.gz
这将生成
.asc
文件,您也应将其附加到发布中 - Authenticode 签名
.msi
制品osslsigncode sign -t http://timestamp.digicert.com -n "Yarn Installer" -i https://yarn.npmjs.net.cn/ -pkcs12 yarn-20161122.pfx -readpass yarn-20161122.key -h sha1 -in yarn-0.xx.xx-unsigned.msi -out yarn-0.xx.xx.msi osslsigncode sign -t http://timestamp.digicert.com -n "Yarn Installer" -i https://yarn.npmjs.net.cn/ -pkcs12 yarn-20161122.pfx -readpass yarn-20161122.key -nest -h sha2 -in yarn-0.xx.xx.msi -out yarn-0.xx.xx.msi
- 在 GitHub 上创建新发布,并附加所有制品。对于 MSI,确保您附加了已签名版本!
- 将 tarball 发布到 npm:
npm publish ./artifacts/yarn-v0.xx.xx.tar.gz
- 执行以下发布后步骤
将候选版本升至稳定版
- 修改 GitHub 发布以将其标注为稳定版本
- 运行
npm dist-tag add [email protected] latest
(其中0.xx.xx
是要发布的版本号) - 运行以下发布后步骤
发布后
- 在 网站上的 _config.yml 中升级版本号
- 运行
./scripts/build-chocolatey.ps1
以推送到 Chocolatey - 运行
./scripts/update-homebrew.sh
以推送到 Homebrew - Debian 和 CentOS 库应在 5 分钟内自动更新为最新版本(留意 提交)