2021 年 Bazel 可配置性路线图

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

联系人gregestren

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

之前的路线图

目标

$ bazel build //:all 适合所有项目和任何平台

  • 构建不需要命令行标志。
  • 每个目标都会自动使用正确的设置(例如 android_binary 使用正确的 NDK)。
  • 您可以轻松构建适用于多个平台的应用。
  • 构建可扩缩性,特别是对于图表大小和操作缓存。

我们还支持 cqueryStarlark configurationselect()

路线图

这些日期是根据我们对问题复杂程度和开发者空闲情况的充分了解估算而来的。2021 年,我们打算集中更多精力同时处理更少的项目。我们只会为主动确定的优先工作设置 ETA,以确保准确预期。

平台

2021 年第 3 季度Android 规则使用新的平台 API 正在开发中 (#11749)

  • 这是我们在 2021 年初的首要任务。

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

已暂停C++ 规则使用新的 platformsfall API 正在开发中 (#6516)

  • Android 平台禁止使用这项功能。我们只需简单地翻转旗帜,就能看到这一切。

paused多平台目标 未开始

  • 让目标声明它们应针对多个平台进行构建
  • 根据用户请求列于此处

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

  • 这是一项宏伟的目标,不在将所有规则都迁移到平台的情况下实现。

提升效率

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

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