上次验证时间:2021-04-09 (更新历史记录)
联系人: 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。在 Starlark 中重写 cc_module 之前,无法从 .bzl 文件访问 C++ 规则的 API。
2021 年第 1 季度
- Clang 模块 支持,已废弃*
- 和包含扫描 支持,预计这两项功能都将带来性能提升,已废弃* 已废弃*
- *我们需要更多数据来评估模块是否确实是提升性能所需的。
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 模块 的 Starlark 化
其他
2021 年年中
- 方面可以传播其他方面 - 提案 方面传播其他方面。 正在进行中
- 改进 Starlark 测试框架