リリースプロセス
新しいリリースの公開
公開しようとしているリリースの種類(メジャー、マイナーもしくはパッチ)により手順が少し変わります。
パッチバージョンのリリース(例えば 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.x へ)
- 現在のmaster ブランチで Circle、Travis および AppVeyor がグリーンであることを確認する
masterブランチにいることと Yarn のローカルコピーが最新であることを確認する- 次のシェルを実行する:
./scripts/release-branch.sh。これにより、0.xx-stableブランチと0.xx.0タグが作成されるmasterのバージョンが次のマイナーバージョンに上がる(例えば0.29.0のリリース後には、 master は0.30.0に上がる)originに push される
RC 版リリースを安定版としてマークする
RC 版がしばらくの間コミュニティによってテストされ、全ての主要なバグが解決されたなら、安定版としてマークすることができます。 これを行うには、 https://release.yarnpkg.com/ に行って、「RC 版を安定版に昇格させる」をクリックします。
注意: このページにアクセスできるユーザーはホワイトリストされています。 管理者がこのホワイトリストから漏れている場合は、ここから変更できます。
リリースをデバッグする
時に上手く行かないことがあります。よくある問題のデバッグ方法を以下に示します。
タグをコミットしたのに、サイトはまだ古いバージョンを示している
不足しているアーティファクトに関するGitHub のリリースを確認してください。 リリーススクリプトは、Linux および Windows のアーティファクトがリリースにアタッチされるまで、サイトのバージョン番号を上げません。
Linux のアーティファクト (.tar.gz、.debなど) が表示されない
CircleCI のビルド を確認し、失敗している場合は再実行してください。 ビルドが成功すれば、 エラーが無いか webhook のログを確認してください
Windows のアーティファクト (.msi) が表示されない
CircleCI のビルド を確認し、失敗している場合は再実行してください。 ビルドが成功すれば、 エラーが無いか webhook のログを確認してください
全てのアーティファクトがリリースにアタッチされているのに、サイトはまだ古いバージョンを表示している
Jenkins の yarn-version の ビルドジョブをチェックして、失敗していないかを確認してください。
手動で行うには
リリース作業のほとんどは自動化され、非常に簡単です。 通常は、ここで読むのを終えることができます。 しかし、リリース作業のツールが壊れている場合(もしくは手間の掛かる方法が好きなら)、リリース手順を手動で行うことができます。
新しいリリースの作成
yarn build-dist && yarn build-debを実行してリリースの tarball、Debian パッケージおよび RPM パッケージをビルドする- Windows で
yarn build-dist && yarn build-win-installerを実行して Windows インストーラーをビルドする -
GPG 署名を
.tar.gzおよび.jsアーティファクトに署名する: sh gpg -u 9D41F3C3 –armor –detach-sign yarn-0.xx.xx.tar.gz これによりリリースにアタッチする.ascファイルが生成される -
Authenticode 署名を
.msiアーティファクトに署名する: sh osslsigncode sign -t http://timestamp.digicert.com -n “Yarn Installer” -i https://yarnpkg.com/ -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://yarnpkg.com/ -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 - 以下のリリース後の作業を実施する
RC 版を安定版に昇格する
- GitHub リリースを安定版に変更する
npm dist-tag add yarn@0.xx.xx latest(ここでの0.xx.xxはリリースされたバージョン番号)を実行する- 以下のリリース後の作業を実施する
リリース後の作業
- ウェブサイトの _config.yml の バージョン番号を書き換える
./scripts/build-chocolatey.ps1を実行して Chocolatey に push する./scripts/update-homebrew.shを実行して HomeBrew に push する- Debian および CentOS のリポジトリは5分以内に自動的に最新のリリースに更新される(the commits から目を離さないこと)