2021 年 Bazel 可配置性路线图

报告问题 查看源代码 每夜 build · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

上次验证时间:2021 年 1 月 25 日更新记录

联系人:Greg Estren

讨论可配置性路线图:讨论

之前的路线图

目标

$ bazel build //:all 适用于任何项目和任何平台,只需一键即可

  • build 不需要命令行标志。
  • 每个目标都会自动使用正确的设置(例如 android_binary 会使用正确的 NDK)。
  • 您可以轻松针对多个平台构建应用。
  • build 可很好地扩缩,尤其是在图大小和操作缓存方面。

我们还支持 cqueryStarlark configurationselect()

路线图

这些日期是根据我们对问题复杂性和开发者空闲时间的最佳了解估算得出的,仅供参考。2021 年,我们打算一次只专注于少数几个项目。为确保您能获得准确的预期,我们只会为正在优先处理的工作设置预计完成时间。

平台

2021 年第 3 季度Android 规则使用新的 platforms API 正在处理 (#11749)

  • 这是我们 2021 年初的主要工作重点。

2021 年第 3 季度build 支持多个执行平台 正在进行 (#11748)

暂停C++ 规则使用新的 platformsfall API 进行中 (#6516)

  • 在 Android 平台上,此操作会被阻止。我们可以通过简单的标志翻转来启用此功能。

暂停多平台目标 未开始

  • 让目标声明应针对多个平台进行构建
  • 因用户要求而列在此处

暂停废弃并移除 --cpu 和相关标志 未开始

  • 这是将所有规则迁移到平台后的一个理想目标。

效率

2021实验性 Bazel 模式缓存跨平台 Java 编译 正在进行 (#6526)

  • 提高了多平台 build 速度
  • 分配不足,因此进度缓慢