2021 年 Bazel 可配置性路线图

上次验证时间:2021-01-25更新历史记录

联系人gregestren

_讨论:_ Configurability roadmap: discussion

之前的路线图

目标

$ 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 速度
  • 分配不足,因此进度缓慢