リリースプロセス
新しいリリースの公開
公開しようとしているリリースの種類(メジャー、マイナーもしくはパッチ)により手順が少し変わります。
パッチバージョンのリリース(例えば 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 から目を離さないこと)