リリースのバージョニング

Bazel 4.0 以降では、長期サポート (LTS)リリースとローリング リリースの 2 つのリリース トラックがサポートされています。このページでは、Bazel のバージョン管理、リリースの種類、Bazel ユーザーとコントリビュータにとってのこれらのリリースのメリットについて説明します。

Bazel のバージョン管理について

Bazel では、major.minor.patch のセマンティック バージョニング スキームを使用します。

  • A メジャー リリース には、 以前のリリースとの下位互換性がない機能が含まれています。
  • マイナー リリース には、下位互換性のある新しい機能が含まれています。
  • パッチリリース には、軽微な変更とバグ修正が含まれています。

バージョン 3.5.1 を例にすると、各タイプの新しいリリースでは 次のバージョン番号になります。

  • メジャー: 4.0
  • マイナー: 3.6
  • パッチ: 3.5.2

Bazel のリリース サイクル

Bazel はローリング リリースを継続的に公開しています。すべてのメジャー バージョンは LTS リリースです。どちらのリリース ケイデンスに従うかを選択できます。1 つの LTS リリースから次の LTS リリースに更新するか、マイナー バージョン リリースごとに更新します。

この画像は、ローリング リリースと LTS リリース、およびそれぞれのサポート予定を示しています。

ロードマップ

図 1.ローリング リリースと LTS リリース。

リリース ブランチ

各メジャー バージョンは、リリース時に個別の開発ブランチになります。ヘッドの Bazel リリースに更新しなくても、そのブランチで重大なバグの修正を 受け取ることができます。メジャー バージョン ブランチの追加機能は マイナー リリースになり、ブランチの最新バージョンがサポート対象バージョンになります。

各 Bazel リリースは、連携して動作する推奨ルール バージョンのリストとペアになっており、各ブランチ内では厳密な下位互換性があります。

LTS リリース

LTS リリースは、リリース後 3 年間 サポートされるメジャー バージョン(4.0 など)です。 メジャー バージョンは、約 9 か月ごとにリリースされます。

リリース ブランチでの継続的な開発により、マイナー バージョンが作成されます。

プロジェクトをメジャー バージョンに固定し、都合のよいときに新しいバージョンに更新できます。これにより、今後の変更をプレビューして 事前に対応できます。

ローリング リリース

ローリング リリースは、Bazel のメインブランチから定期的にカットされます。 このリリース ケイデンスでは、次のメジャー Bazel バージョンのプレビュー リリースが継続的に提供されます。これは、Google の内部 Blaze リリースと同期しています。

新しいローリング リリースには、以前のリリースと 互換性のない破壊的な変更が含まれる場合があります。

ローリング リリースは、Bazel CI の Bazel テストスイートと Google の内部テストスイートでテストされます。互換性のないフラグを使用して、新しい機能への移行の負担を軽減できますが、デフォルトの動作はローリングリリースごとに変更される可能性があります。(ローリング リリースを使用して、次の LTS バージョンを プレビューすることもできます。たとえば、5.0.0-pre.20210604.6 は 2021-06-04 にカットされた 候補に基づいており、5.0 LTS リリースに向けたマイルストーンを表しています)。

最新のローリング リリースは GitHubからダウンロードできます。 または、 Bazelisk v1.9.0 (以降)を設定して、特定のバージョン名または 「rolling」識別子を使用することもできます。この識別子は、最新のローリングリリースを使用します。詳細については、Bazelisk のドキュメントをご覧ください。

バージョンの更新

  • Bazel バージョンの更新について詳しくは、 Bazel の更新をご覧ください。
  • 新しい Bazel リリースへの更新の提供について詳しくは、 Bazel への投稿をご覧ください。