Bazel 採用長期支援 (LTS) 發布模式,每九個月發布一個主要版本,每月發布次要版本。本頁面說明 Bazel 版本發布政策,包括候選版本、時間表、公告和測試。
您可以在 GitHub 找到 Bazel 版本。
候選版本
通常每個月初,系統會建立新版 Bazel 的候選版本。這項工作會透過 GitHub 上的版本錯誤追蹤,指出目標發布日期,並指派給目前的發布管理員。候選版本應通過所有 Bazel 單元測試,且在 Buildkite 測試的專案中,不會出現任何不必要的迴歸。
候選版本會在 bazel-discuss 上公布。在接下來幾天,Bazel 團隊會監控社群錯誤報告,找出候選版本中的任何迴歸。
發布
如果沒有發現任何回歸問題,候選版本就會在一週後正式發布。不過,迴歸可能會延遲候選版本的發布。如果發現回歸,Bazel 團隊會將相應的 Cherry-pick 套用至候選版本,以修正這些回歸。如果從第一個候選版本發布後的一週起,連續兩個工作天都未發現其他回歸問題,該候選版本就會發布。
發布候選版本建立後,不會再加入新功能。 此外,如果新功能有錯誤,可能會從候選版本復原。發布候選版本推出後,只會修正可能嚴重影響或破壞發布版本的錯誤。
只有在隔天為工作日時,才會發布版本。
如果最新版本有重大問題,Bazel 團隊會將修正檔套用至該版本,建立修補程式版本。由於這個修補程式是更新現有版本,而不是建立新版本,因此修補程式候選版本可在兩個工作天後發布。
測試
系統會使用在開頭建構的 Bazel 二進位檔和發布二進位檔,執行 ci.bazel.build 上所有專案的每夜建構作業。如果專案會受到重大變更影響,系統會發出通知。
發布候選版本時,其他 Google 專案 (例如 TensorFlow) 會使用發布候選版本二進位檔,在完整的測試套件中進行測試。如果您有使用 Bazel 的重要專案,建議您建立自動化測試程序,追蹤目前的候選版本,並回報任何回歸。