元のブログでお知らせしたとおり 投稿、Bazel 4.0 以降では次の 2 つのリリース トラックがサポートされています。ローリング トラック LTS リリースの両方に対応していますこのページでは、Google Cloud 向けの Bazel のリリースモデルに関する情報を確認できます。
リリースのバージョニング
Bazel は major.minor.patch セマンティック バージョニング スキームを使用します。
- メジャー リリースには、以前のリリースとの下位互換性のない機能が含まれています。Bazel の各メジャー バージョンは LTS リリースです。
- マイナー リリースには、下位互換性のあるバグ修正と、メインブランチからバックポートされた機能が含まれています。
- パッチリリースには、重大なバグの修正が含まれています。
プレリリース版は、先頭にハイフンと date サフィックスを次のメジャー バージョン番号に付加します。
たとえば、各タイプの新しいリリースのバージョン番号は次のようになります。
- メジャー: 6.0.0
- マイナー: 6.1.0
- パッチ: 6.1.2
- プレリリース: 7.0.0-pre.20230502.1
サポート ステージ
Bazel のメジャー バージョンごとに、4 つのサポート ステージがあります。
- ローリング: このメジャー バージョンはまだプレリリース版です。Bazel チームは HEAD からローリング リリースを公開します。
- Active: このメジャー バージョンは、現在アクティブな LTS リリースです。Bazel チームは重要な機能とバグの修正をマイナー リリースにバックポートします。
- メンテナンス: このメジャー バージョンは、メンテナンス中の古い LTS リリースです。 モードです。Bazel チームは、セキュリティ問題と OS 互換性の問題に関する重大なバグ修正のみをこの LTS リリースにバックポートすることを約束します。
- 非推奨: Bazel チームはこのメジャー バージョンのサポートを終了しました。すべてのユーザーは、新しい Bazel LTS リリースに移行する必要があります。
リリースの頻度
Bazel は、2 つのリリース トラックのリリースを定期的に公開しています。
ローリング リリース
- ローリング リリースは Google Blaze リリースに合わせて調整され、リリースされる 2 週間ごとに HEAD から生成されます。次の Bazel LTS のプレビューである なります。
- ローリング リリースにより、互換性のない変更が提供される場合があります。互換性のないフラグは、重大な互換性のない変更に推奨されます。互換性のない変更をロールアウトする場合は、下位互換性に関するポリシーに従う必要があります。
LTS リリース
- メジャー リリース: 新しい LTS リリースは、HEAD からおおむねカットされます。 ごと 12 か月。新しい LTS リリースがリリースされると、すぐにアクティブ ステージに移行し、以前の LTS リリースはメンテナンス ステージに移行します。
- マイナー リリース: Active LTS トラックの新しいマイナー バージョンのリリースが予定されています。 2 か月に 1 回リリースされます。
- パッチリリース: Active での LTS リリースと 重大なバグに対しては、メンテナンス ステージがオンデマンドでリリースされる予定です。 あります。
- Bazel LTS リリースは、 2 年間のメンテナンス ステージ。
予定されているリリースについては、GitHub のリリースに関する問題を確認してください。
サポート マトリックス
LTS リリース | サポート ステージ | 最新バージョン | サポートの終了 |
---|---|---|---|
Bazel 7 | ローリング | GitHub のリリースページを確認する | なし |
Bazel 6 | 有効 | 6.4.0 | 2025 年 12 月 |
Bazel 5 | メンテナンス | 5.4.1 | 2025 年 1 月 |
Bazel 4 | メンテナンス | 4.2.4 | 2024 年 1 月 |
すべての Bazel リリースは、リリース のページをご覧ください。
リリース手順とポリシー
ローリング リリースのプロセスは簡単です。Google 内部の Blaze リリースと同じベースラインに合わせて、約 2 週間ごとに新しいリリースが作成されます。リリース スケジュールは迅速であるため、変更をバックポートすることはできません。 ロールアウトされます。
LTS リリースの場合、次の手順とポリシーが適用されます。
- リリースのベースライン commit を決定します。
- 新しいメジャー LTS リリースの場合、ベースライン コミットはメイン ブランチの HEAD です。
- マイナー リリースまたはパッチ リリースの場合、ベースラインの commit は 同じ LTS リリースの最新バージョンをアップデートする必要があります。
- ベースライン コミットから
release-<version>
という名前のリリース ブランチを作成します。 - PR 経由で変更をリリース ブランチにバックポートします。
- コミュニティが返信することで、特定の commit をバックポートすることを提案できます。
「
@bazel-io flag
」GitHub に関連する問題や PR に登録して、潜在的な問題としてマークを付ける Bazel チームはブロッカーをトリアージして、リリース ブロッカーの commit をバックポートします。 - バックポートできるのは、メインブランチの下位互換性のある commit のみです。マージ競合を解決するための追加のマイナー変更は許可されます。
- コミュニティが返信することで、特定の commit をバックポートすることを提案できます。
「
- リリースのブロック要因を特定し、リリース ブランチで見つかった問題を修正します。
- リリース ブランチは、同じテストスイートを使用して postsubmit と ダウンストリーム テスト パイプライン 実行しています。Bazel チームがリリースのテスト結果をモニタリング 見つかったリグレッションを修正します
- 既知のリリース ブロッカーがすべて解決されたら、リリース ブランチから新しいリリース候補を作成します。
- リリース候補版は bazel-discuss で発表されます。Bazel チームは、候補版に関するコミュニティのバグレポートをモニタリングします。
- 新たなリリース ブロッカーを特定した場合は、最後のステップに戻って すべての問題を解決した後に新しいリリース候補を作成する。
- リリース後のリリース ブランチに新機能を追加することは 最初のリリース候補版が作成されます
- これ以上リリースされない場合は、リリース候補版を公式リリースとしてプッシュします。
阻害要因が見つかる
- パッチリリースの場合は、少なくとも 2 営業日後にリリースをプッシュします。 明らかになりました
- メジャー リリースとマイナー リリースの場合は、2 営業日後にリリースをプッシュします。 最終リリース候補版が発表されたが、その後 1 週間以内 最初のリリース候補版が出ました
- リリースは、翌日が営業日である日にのみプッシュされます。
- リリースの発表日は bazel-discuss、 Bazel チームは、新しい API に関するコミュニティのバグレポートをモニタリングし、対処しています。 なります。
回帰を報告する
新しい Bazel リリース、リリース候補版、さらにはリリース候補版で回帰が見つかった場合 Bazel を HEAD で、バグを報告してください。 GitHub。次を使用: Bazelisk が犯人 commit を二分割し、この情報をバグに含める レポート
たとえば、Bazel 6.1.0 ではビルドが成功するが、6.2.0 の 2 番目のリリース候補では失敗する場合は、次のコマンドを使用してバイセクションを行うことができます。
bazelisk --bisect=6.1.0..release-6.2.0rc2 build //foo:bar
問題を再現するために必要な場合は、BAZELISK_SHUTDOWN
または BAZELISK_CLEAN
環境変数を設定して、対応する bazel コマンドを実行し、ビルド状態をリセットできます。詳しくは、Bazelisk に関するドキュメントをご覧ください。
bisect 特徴量。
bisect 機能を使用するには、Bazelisk を最新バージョンにアップグレードしてください。
ルールの互換性
ルール作成者が、さまざまなルールとの互換性を維持したい場合は、 Bazel バージョンについては、Rules Dashboard のルール 互換性のページをご覧ください。