上次驗證時間: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 年中
- 可傳播其他面向的面向 - 提案「Aspects Propagating Other Aspects」。進行中
- 改善 Starlark 測試架構