Bazel Build API 2021 發展藍圖

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

聯絡窗口: comius

討論: 建構 API 發展藍圖:討論

範圍

建構 API 團隊負責原生規則實作,以及向 Starlark 公開的原生 API。

目標

以 Starlark 實作所有規則,並交給專門負責特定語言的團隊。從 Bazel 的核心移除語言專屬邏輯。

Java 規則

Java 規則會先改寫為 Starlark,並在大型程式碼庫中進行內部測試。之後就會發布至 Bazel。

2021 年第 1 季

  • 改良 Java 夾層,讓您能夠改寫現有的 Java 規則。完成

2021 年第 2 季

  • 改善 Java 中原生程式庫的 Starlark 支援。處理中
  • 改善外掛程式和 IDE 的支援 - 提案 Java 通用重構java_common處理中
  • java_library 規則已 Starlark 化。IN PROGRESS

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 重新編寫之前,您無法從 .bzl 檔案存取 C++ 規則的 API。

2021 年第 1 季

  • Clang 模組支援,已捨棄*
  • 掃描支援,預期可從 DROPPED*
  • *我們需要更多資料,才能評估模組是否真的有助於提升成效。

2021 年第 2 季

  • 內部 Go 規則已 Starlark 化 IN PROGRESS
  • 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 模組的 Starlark 化

其他

2021 年中