回溯相容性

回報問題 查看原始碼 。 。 。 。 夜間。 。 7.3 。 。 7.2 。 。 7.1 。 。 7.0 。 。 6.5

本頁說明如何處理回溯相容性問題。 包括從一個版本遷移至另一個版本,以及如何 不相容的變更。

Bazel 正不斷進化。發布的子版本 LTS 主要版本完全回溯相容。 主要 LTS 版本的變更可能包含不相容的變更, 也有一些遷移工作如要進一步瞭解 Bazel 的發布頻率 可以,請參閱 宣布 Bazel 長期支援 (LTS) 版本

摘要

  1. 建議您使用 --incompatible_* 旗標進行破壞性變更。
  2. 針對每個 --incompatible_* 標記,有一個 GitHub 問題會說明 變更行為,並致力提供遷移方案。
  3. --experimental_* 旗標保護的 API 和行為隨時可能變更。
  4. 切勿執行具有 --experimental_*--incompatible_* 旗標的實際工作環境版本。

如何遵守這項政策

什麼是穩定功能?

一般來說,系統會將不含 --experimental_... 旗標的 API 或行為納入考量 Bazel 支援的穩定功能

包括:

  • Starlark 語言與 API
  • Bazel 附帶的規則
  • Bazel API,例如 Remote Execution API 或 Build Event 通訊協定
  • 標記及其語意

不相容的變更和遷移方案

Bazel 團隊希望藉由提供 遷移方案:協助您更新程式碼 (BUILD.bzl 檔案以及指令碼中的任何 Bazel 用量), 例如 Bazel API 的使用情形等等

不相容的變更應具備關聯的 --incompatible_* 標記和 以及對應的 GitHub 問題。

傳送不相容的變更

不相容變更資訊的主要來源為 GitHub 問題 帶有「不相容的變更」標籤

每個不相容的變更都會指出以下項目:

  • 控制不相容變更的旗標名稱
  • 功能異動說明
  • 遷移方案

當 Bazel 在 HEAD 元素 (也包含下一個 Bazel 滾動式版本) 可遷移不相容的變更時,則應加上 migration-ready 標籤。如果在 HEAD 上翻轉了不相容的標記,就會關閉不相容的變更問題。