Bazel 4.0 以上版本支援兩種測試群組:長期支援 (LTS) 版本和滾動版。本頁面說明 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 版本是主要版本 (例如 4.0),在發布後 3 年內提供支援。主要版本大約每 9 個月會發布一次。
持續開發發布分支版本會導致子版本產生。
您可以選擇將專案固定為主要版本,並及時更新至較新版本。讓您有時間預覽即將推出的變更並事先進行調整。
推出版本
系統會定期從 Bazel 的主要分支版本中剪下發布版本。此發布速度涉及持續推送下一個主要 Bazel 版本的預先發布版,此版本會與 Google 內部的 Blaze 版本同步。
請注意,新的發布版本可能包含與先前版本不相容的破壞性變更。
在 Bazel CI 的測試套件和 Google 的內部測試套件上,系統會測試滾動版本。不相容的標記可用於緩解遷移至新功能的負擔,但預設行為可能會隨任何滾動式版本變更。(您也可以使用滾動版來預覽下一個 LTS 版本。舉例來說,5.0.0-pre.20210604.6
是以 2021 年 6 月 4 日的候選版本為基礎,代表邁入 5.0 LTS 版的里程碑)。
您可以從 GitHub 下載最新的發布版本。或者,您也可以設定 Bazelisk v1.9.0 (或之後版本) 來使用特定版本名稱或「滾動」ID,而此 ID 會使用最新的滾動版本。詳情請參閱 Bazelisk 說明文件。