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

問題を報告 ソースを表示

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 リリースの両方と、それぞれの予想されるサポートが示されています。

ロードマップ

図 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-06-04 にカットされた候補に基づいており、5.0 LTS リリースに向けたマイルストーンを表します)。

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

バージョンの更新

  • Bazel バージョンの更新について詳しくは、Bazel の更新をご覧ください。
  • 新しい Bazel リリースのアップデートに貢献する方法については、Bazel への貢献をご覧ください。