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. 滾動式和長期支援版本。
發布分支
每個主要版本在發布時都會成為獨立的開發分支。您可以接收該分支版本的重大錯誤修正,而無須更新至最新的 Bazel 版本。主要版本分支中的其他功能會成為次要版本,而分支中的最高版本則是支援的版本。
每個 Bazel 版本都會搭配一組建議的規則版本,這些規則版本可一起運作,且各分支都具有嚴格的向後相容性。
LTS 版本
LTS 版本是指發布後提供 3 年支援的主要版本 (例如 4.0)。大約每九個月就會發布一個主要版本。
在發布分支上持續進行開發作業,會導致子版本產生。
您可以選擇將專案釘選至主要版本,並在自己的時間內更新至較新的版本。這樣一來,您就能預先查看即將推出的變更內容,並提前進行調整。
滾動式版本
滾動式發布版本會定期從 Bazel 的主要分支中切出。這個發布週期包含持續提供下一個主要 Bazel 版本的預先發布版,並與 Google 內部 Blaze 發布版本保持同步。
請注意,新的滾動式發布版本可能包含與先前版本不相容的破壞性變更。
滾動式發布版本會在 Bazel CI 上的 Bazel 測試套件和 Google 內部測試套件中進行測試。您可以使用不相容的標記,減輕遷移至新功能的負擔,但預設行為可能會隨著任何滾動式版本而變更。(您也可以使用滾動式發布功能,預覽下一個 LTS 版本。舉例來說,5.0.0-pre.20210604.6
是以 2021-06-04 的候選版本為基礎,代表的是 5.0 LTS 版本的里程碑)。
您可以從 GitHub 下載最新的滾動式版本。或者,您也可以設定 Bazelisk 1.9.0 (或更新版本) 使用特定版本名稱或「滾動」ID,以便使用最新的滾動式版本。詳情請參閱 Bazelisk 說明文件。
更新版本
- 如要進一步瞭解如何更新 Bazel 版本,請參閱「更新 Bazel」。
- 如要進一步瞭解如何為新版 Bazel 提供更新,請參閱「為 Bazel 提供貢獻」。