本頁說明如何處理回溯相容性問題。 包括從一個版本遷移至另一個版本,以及如何 不相容的變更。
Bazel 正不斷進化。做為 LTS 主要主版本的一部分發布的子版本 版本完全回溯相容。新的主要 LTS 版本可能含有不相容的變更,因此需要經過一些遷移工作。 如要進一步瞭解 Bazel 的發布模型,請參閱版本資訊 模型頁面。
摘要
- 建議您使用
--incompatible_*
旗標進行破壞性變更。 - 針對每個
--incompatible_*
旗標,GitHub 問題都會說明 並提供遷移方案 - 使用不相容的標記時,建議向後移植至最新的 LTS 而不預設啟用該標記
--experimental_*
旗標保護的 API 和行為隨時可能變更 讓應用程式從可以最快做出回應的位置 回應使用者要求- 一律不得使用
--experimental_*
或--incompatible_*
執行正式環境版本 旗標
如何遵守這項政策
什麼是穩定功能?
一般來說,系統會將不含 --experimental_...
旗標的 API 或行為納入考量
Bazel 支援的穩定功能
包括:
- Starlark 語言與 API
- Bazel 附帶的規則
- Bazel API,例如 Remote Execution API 或 Build Event 通訊協定
- 標記及其語意
不相容的變更和遷移方案
Bazel 團隊希望藉由提供
遷移方案:可協助您更新程式碼 (BUILD
和 .bzl
檔案,
以及指令碼中的任何 Bazel 使用情形、Bazel API 使用情形等等。
不相容的變更應具備關聯的 --incompatible_*
標記和
以及對應的 GitHub 問題。
建議使用不相容的標記和相關變更,建議向後移植到 最新 LTS 版本,且不啟用此標記。這樣一來 以便在下一個 LTS 版本發布前,因應不相容的變更。 廣告。
傳送不相容的變更
不相容變更資訊的主要來源為 GitHub 問題 帶有「不相容的變更」 標籤。
每個不相容的變更都會指出以下項目:
- 控制不相容變更的旗標名稱
- 功能異動說明
- 遷移方案
當在 HEAD 要使用 Bazel 遷移不相容的變更時
(因此也適用於下一個 Bazel 滾動式版本),則應以
migration-ready
標籤。不相容的變更問題會在
不相容的標記已於 HEAD 翻轉。