古い安定ブランチからのリリース

デフォルトの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に**公開待ち**です。
  • 安定したインターネット接続。

リリースワークフローのトリガー

  1. 対象の*-stableブランチをチェックアウトし、GitHubのjekyll/jekyllにある対応するブランチと最新の状態であることを確認してください。
  2. lib/jekyll/version.rbVERSION文字列を更新します。
  3. こちらに記載されているように、**履歴ドキュメント**を更新します。
    (**重要:安定ブランチでrake site:generateを実行しないでください**)
  4. 現在のリリースに関する履歴セクション全体をコピーし、テキストエディタの新しいタブ/ウィンドウに貼り付けます。この一時的なスニペットは、後の段階で使用します。
  5. バージョンファイルと履歴ドキュメントに対する変更を、コミットメッセージRelease :gem: v[CURRENT_VERSION]でコミットします。
  6. コミットをGitHubのアップストリームリモートjekyll/jekyllにプッシュします。

リリース投稿を公開する

  1. Release Gemワークフローが正常に完了したことを確認します。
  2. リリース投稿のプルリクエストをmasterにマージします。

安定ブランチからのリリースを反映するようにデフォルトブランチを更新する

  1. ローカルでmasterをチェックアウトし、GitHubのjekyll/jekyllにあるリモートの対応物と最新の状態であることを確認します。
  2. 前に作成した一時的なタブ/ウィンドウにあるスニペットを使用して、履歴ドキュメントを更新します。履歴ドキュメント内の様々なセクションは、主に逆時系列順に、次にsemverメジャーバージョン別にスコープされています。例えば、v3.9.2のリリースセクションはv3.9.1のセクションの上、v4.xのリリースセクションの下にリストされます。前に保存したスニペットは、手動で正しい位置に挿入する必要があります。
  3. オプションで、lib/jekyll/version.rbVERSION文字列を更新します。(既存のバージョンが最新バージョンより小さい場合)
  4. ここで、**rake site:generateを実行して**様々なメタファイルを更新します。
    • docs/_config.yml
    • docs/_docs/history.md
    • docs/latest_version.txt
  5. 様々なメタファイルに対する変更を、コミットメッセージRelease :gem: v[CURRENT_VERSION]でコミットします。
  6. コミットをアップストリームリモートにプッシュします。

GitHubリリースを公開する

masterブランチから切り出されたリリースとは異なり、JekyllBotは、*デフォルト以外*のブランチから作成されたタグに対してGitHubリリースを自動的に作成および公開しません。そのため、メンテナンス担当者は、対象のGitHubリリースを**手動で作成および公開**する必要があります。

  1. 新しくプッシュされたタグを選択します。
  2. タイトルは、選択したタグの名前と同じです。
  3. 前に保存したリリーススニペットが本文になります。
  4. リリース本文からスニペットのタイトル(## x.y.z / YYYY-MM-DD)を削除します。
  5. 公開します。

注:デフォルトブランチを更新する前にGitHubリリースをオプションで*下書き*し、デフォルトブランチへの更新コミットをプッシュした直後に*公開*して、手順を簡素化することができます。