Bazel Build API 2021 發展藍圖

回報問題 查看原始碼 Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

上次驗證時間:2021 年 4 月 9 日 (更新記錄)

聯絡窗口: comius

討論: Build API 路線圖:討論

範圍

Build API 團隊負責處理原生規則實作項目,以及公開給 Starlark 的原生 API。

目標

將所有規則實作至 Starlark,並交由專精於特定語言的團隊處理。從 Bazel 核心中移除語言專屬邏輯。

Java 規則

系統會先將 Java 規則改寫為 Starlark,然後在大型程式碼集合上進行內部測試。之後會發布至 Bazel。

2021 年第 1 季

  • 改善 Java 三明治,讓您可以重新撰寫現有的 Java 規則。完成

2021 年第 2 季

  • 改善 Starlark 對 Java 中原生程式庫的支援。進行中
  • 改善 java_common 對外掛程式和 IDE 的支援 - Java 常見重構提案。進行中
  • java_library 規則已轉換為 Starlark 格式。進行中

2021 年中

  • java_binary 和 java_test 規則已轉換為 Starlark 規則。
  • java_import 和 java_plugin 規則已轉換為 Starlark 規則。

2021 年秋季

  • java_*_proto_library 轉換為 Starlark
  • 其餘的 Java 規則已轉換為 Starlark 規則:java_package_configuration、java_runtime、java_toolchain

2022

  • java_common 模組轉換為 Starlark。

C++ 規則

在 Starlark 中重寫 C++ 規則之前,需要先進行一些內部清理作業。接著,系統會使用內建功能,將 C++ 規則逐一重寫為 Starlark。除非 cc_module 也以 Starlark 重寫,否則 C++ 規則的 API 無法從 .bzl 檔案存取。

2021 年第 1 季

  • Clang 模組支援功能,已停用*
  • 和「Include scanning」支援功能,預期可透過這兩項功能提升效能 已刪除*
  • *我們需要更多資料,才能評估是否真的需要使用模組來改善效能。

2021 年第 2 季

  • 內部 Go 規則已轉換為 Starlark 規則 進行中
  • Objective-C 規則 objc_library 和 objc_import 以及相關的原生程式碼已轉換為 Starlark 程式碼 進行中

2021 年秋季和 2022 年初

  • cc_binary、cc_test 和 cc_library 已轉換為 Starlark 格式

2022

  • 將其他 C++ 規則轉換為 Starlark (fdo_profile、cc_import、cc_toolchain、cc_toolchain_suite、fdo_prefetch_hints、cc_toolchain_alias、cc_libc_top_alias、cc_host_toolchain_alias +2)
  • cc_common 模組的 Starlarkification

其他

2021 年中