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

問題を報告 ソースを表示 Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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

Bazel のバージョニングについて

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

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

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

  • 重大: 4.0
  • 軽微: 3.6
  • パッチ: 3.5.2

Bazel のリリース サイクル

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

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

ロードマップ

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

リリース ブランチ

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

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

LTS リリース

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

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

プロジェクトをメジャー リリースに固定し、新しいバージョンへの更新を自分のタイミングで行うことができます。これにより、今後の変更を事前に確認して対応する時間を確保できます。

ローリング リリース

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

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

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

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

バージョンの更新

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