古い安定ブランチからのリリース
デフォルトのmaster
ブランチからリリースを行う以外にも、Jekyll Coreでは、メンテナンス中の古いバージョンに対してセキュリティパッチや重要なバグ修正を含むリリースを、特別な名前のブランチから作成することがあります。そのようなリリースは、[x].[y]-stable
というパターンに従って名前付けられたブランチから作成されます。[x]
はsemverメジャーバージョン、[y]
はsemverマイナーバージョンを表します。例えば、3.9-stable
ブランチは、jekyll-3.9.x
シリーズの一部としてリリースされたコミットを参照します。
*-stable
ブランチからリリースを調整することは、デフォルトブランチも必然的にそのリリースを反映する必要があるため、複雑になります。
要件
- メンテナンス担当者は、対象の
*-stable
ブランチとmaster
ブランチの両方に**書き込みアクセス権**を持っている必要があります。 - メンテナンス担当者は、GitHub Web UIを介してディスパッチする代わりに、**ローカルのCLIプログラム**を使用してタスクを完了する必要があります。
- メンテナンス担当者は、
master
からのリリースのワークフローを理解している必要があります。次のセクションに記載されている手順は、master
のワークフローを簡略化したものです。 - リリース投稿が作成済みであり、承認済みのプルリクエストを介して
master
に**公開待ち**です。 - 安定したインターネット接続。
リリースワークフローのトリガー
- 対象の
*-stable
ブランチをチェックアウトし、GitHubのjekyll/jekyll
にある対応するブランチと最新の状態であることを確認してください。 lib/jekyll/version.rb
のVERSION
文字列を更新します。- こちらに記載されているように、**履歴ドキュメント**を更新します。
(**重要:安定ブランチでrake site:generate
を実行しないでください**) - 現在のリリースに関する履歴セクション全体をコピーし、テキストエディタの新しいタブ/ウィンドウに貼り付けます。この一時的なスニペットは、後の段階で使用します。
- バージョンファイルと履歴ドキュメントに対する変更を、コミットメッセージ
Release :gem: v[CURRENT_VERSION]
でコミットします。 - コミットをGitHubのアップストリームリモート
jekyll/jekyll
にプッシュします。
リリース投稿を公開する
Release Gem
ワークフローが正常に完了したことを確認します。- リリース投稿のプルリクエストを
master
にマージします。
安定ブランチからのリリースを反映するようにデフォルトブランチを更新する
- ローカルで
master
をチェックアウトし、GitHubのjekyll/jekyll
にあるリモートの対応物と最新の状態であることを確認します。 - 前に作成した一時的なタブ/ウィンドウにあるスニペットを使用して、履歴ドキュメントを更新します。履歴ドキュメント内の様々なセクションは、主に逆時系列順に、次にsemverメジャーバージョン別にスコープされています。例えば、
v3.9.2
のリリースセクションはv3.9.1
のセクションの上、v4.xのリリースセクションの下にリストされます。前に保存したスニペットは、手動で正しい位置に挿入する必要があります。 - オプションで、
lib/jekyll/version.rb
のVERSION
文字列を更新します。(既存のバージョンが最新バージョンより小さい場合) - ここで、**
rake site:generate
を実行して**様々なメタファイルを更新します。- docs/_config.yml
- docs/_docs/history.md
- docs/latest_version.txt
- 様々なメタファイルに対する変更を、コミットメッセージ
Release :gem: v[CURRENT_VERSION]
でコミットします。 - コミットをアップストリームリモートにプッシュします。
GitHubリリースを公開する
master
ブランチから切り出されたリリースとは異なり、JekyllBotは、*デフォルト以外*のブランチから作成されたタグに対してGitHubリリースを自動的に作成および公開しません。そのため、メンテナンス担当者は、対象のGitHubリリースを**手動で作成および公開**する必要があります。
- 新しくプッシュされたタグを選択します。
- タイトルは、選択したタグの名前と同じです。
- 前に保存したリリーススニペットが本文になります。
- リリース本文からスニペットのタイトル(
## x.y.z / YYYY-MM-DD
)を削除します。 - 公開します。
注:デフォルトブランチを更新する前にGitHubリリースをオプションで*下書き*し、デフォルトブランチへの更新コミットをプッシュした直後に*公開*して、手順を簡素化することができます。