上次驗證時間: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 年中
- Aspect 可以傳播其他 Aspect - proposal 傳播其他 Aspect 的 Aspect。 處理中
- 改善 Starlark 測試架構