リリースプロセス

新しいリリースの公開

公開しようとしているリリースの種類(メジャー、マイナーもしくはパッチ)により手順が少し変わります。

パッチバージョンのリリース(例えば 0.28.1 から 0.28.2 へ)

  1. -stable ブランチ(例えば 0.28 なら 0.28-stable)に全ての必要な変更をチェリーピックする
  2. ローカルで -stable ブランチにいることを確認する
  3. npm version patch を実行してバージョン番号を上げて、Git コミットとタグを作成する
  4. git push origin 0.xx-stable --follow-tags を実行する(0.xx-stable を正しいブランチ名に置き換える)

マイナーバージョンのリリース(例えば 0.28.x から 0.29.x へ)

  1. 現在のmaster ブランチで CircleTravis および AppVeyor がグリーンであることを確認する
  2. master ブランチにいることと Yarn のローカルコピーが最新であることを確認する
  3. 次のシェルを実行する: ./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 の ビルドジョブをチェックして、失敗していないかを確認してください。


手動で行うには

リリース作業のほとんどは自動化され、非常に簡単です。 通常は、ここで読むのを終えることができます。 しかし、リリース作業のツールが壊れている場合(もしくは手間の掛かる方法が好きなら)、リリース手順を手動で行うことができます。

新しいリリースの作成

  1. yarn build-dist && yarn build-deb を実行してリリースの tarball、Debian パッケージおよび RPM パッケージをビルドする
  2. Windows で yarn build-dist && yarn build-win-installer を実行して Windows インストーラーをビルドする
  3. GPG 署名を .tar.gz および .js アーティファクトに署名する: sh gpg -u 9D41F3C3 –armor –detach-sign yarn-0.xx.xx.tar.gz これによりリリースにアタッチする

    .asc ファイルが生成される

  4. 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

  5. 新しいリリースを GitHub に作成し、全てのアーティファクトをアタッチする。MSI には必ず署名したバージョンをアタッチすること!
  6. tarball を npm に公開する: npm publish ./artifacts/yarn-v0.xx.xx.tar.gz
  7. 以下のリリース後の作業を実施する

RC 版を安定版に昇格する

  1. GitHub リリースを安定版に変更する
  2. npm dist-tag add yarn@0.xx.xx latest(ここでの 0.xx.xx はリリースされたバージョン番号)を実行する
  3. 以下のリリース後の作業を実施する

リリース後の作業

  1. ウェブサイトの _config.yml の バージョン番号を書き換える
  2. ./scripts/build-chocolatey.ps1 を実行して Chocolatey に push する
  3. ./scripts/update-homebrew.sh を実行して HomeBrew に push する
  4. Debian および CentOS のリポジトリは5分以内に自動的に最新のリリースに更新される(the commits から目を離さないこと)