本頁說明如何處理回溯相容性,包括從一個版本遷移至另一個版本,以及如何傳達不相容的變更。
Bazel 持續發展。做為 LTS 主要版本一部分發布的次要版本完全回溯相容。主要 LTS 版本之間的變更可能包含不相容的變更,需要進行一些遷移作業。如要進一步瞭解 Bazel 的發布頻率,請參閱「Announcing Bazel Long Term Support (LTS) releases」。
摘要
- 建議使用
--incompatible_*
標記重大變更。 - 每個
--incompatible_*
旗標都會有 GitHub 問題說明行為變更,並提供遷移方式。 - 受
--experimental_*
標記保護的 API 和行為隨時可能變更。 - 請勿使用
--experimental_*
或--incompatible_*
旗標執行正式版建構作業。
如何遵守本政策
什麼是穩定功能?
一般而言,沒有 --experimental_...
標記的 API 或行為,在 Bazel 中都視為穩定且支援的功能。
包括:
- Starlark 語言和 API
- Bazel 隨附的規則
- Bazel API,例如 Remote Execution API 或 Build Event Protocol
- 旗標和語意
不相容的變更和遷移配方
對於新版本中的每個不相容變更,Bazel 團隊都會提供遷移配方,協助您更新程式碼 (BUILD
和 .bzl
檔案,以及指令碼中的任何 Bazel 用法、Bazel API 用法等)。
不相容的變更應有相關聯的 --incompatible_*
標記和對應的 GitHub 問題。
傳達不相容的變更
如要瞭解不相容的變更,主要資訊來源是標示 「incompatible-change」標籤的 GitHub 問題。
對於每項不相容的變更,問題會指定下列項目:
- 控制不相容變更的旗標名稱
- 變更功能說明
- 遷移食譜
當不相容的變更準備好透過 Bazel at HEAD 進行遷移時 (因此也適用於下一個 Bazel 滾動發布版本),應標示 migration-ready
標籤。當 HEAD 翻轉不相容的標記時,不相容的變更問題就會關閉。