Bazel 設定藍圖 2021 年發展藍圖

上次驗證日期:2021 年 1 月 25 日 (更新記錄)

聯絡窗口: gregestren

討論: 可設定性藍圖:討論

上一張路線圖

目標

$ bazel build //:all 適用於任何專案和平台。

  • 建構作業不需要指令列旗標,
  • 每個目標都會自動使用正確的設定 (例如 android_binary 使用正確的 NDK)。
  • 你可以輕鬆針對多個平台進行建構。
  • 建構作業的擴充性相當良好,尤其是圖表大小和動作快取。

我們也支援 cqueryStarlark configurationselect()

發展藍圖

系統是根據我們對問題複雜度和開發人員可用性的深入瞭解,計算出概略日期。2021 年,我們的目標是一次將更多心力投注在減少專案上。我們只會針對對正確期望的主動優先工作,設定預計到達時間。

平台

2021 年第 3 季Android 規則使用新的平台 API 目前進度 (#11749)

  • 這是 2021 年初的優先考量。

2021 年第 3 季版本支援處理階段中的多個執行平台 (#11748)

已暫停的C++ 規則使用新的 platformsfall API,且處於「處理中」階段 (#6516)

  • 你無法在 Android 平台上使用這項功能。只要翻動旗幟,我們可以啟用這項功能。

已暫停多平台目標 尚未開始

  • 讓目標宣告應針對多個平台建構應用程式
  • 根據使用者要求而在這裡列出

已暫停淘汰並移除 --cpu 和相關標記 尚未開始

  • 這是很理想的目標,並不是將所有規則都遷移到平台。

效益

2021實驗性 Bazel 模式會在處理階段中快取跨平台 Java 編譯作業 (#6526)

  • 改善多平台建構速度
  • 分配比例不足,因此進度緩慢