Bazel Configurability 2021 Roadmap
Last verified: 2021-01-25 (update history)
Point of contact: gregestren
Discuss: Configurability roadmap: discussion
Previous Roadmaps
Goal
$ bazel build //:all
just works, for any project and any platforms.
- Builds don’t require command-line flags.
- Each target automatically uses correct settings (e.g.
android_binary
uses the right NDK). - It’s easy to build for multiple platforms.
- Builds scale well, particularly w.r.t graph size and action caching.
We also support
cquery
, Starlark
configuration
,
and
select()
.
Roadmap
Dates are approximate based on our best understanding of problem complexity and developer availability. In 2021 we intend to focus more effort on fewer projects at once. We’ll only set ETAs for actively prioritized work in the interest of accurate expectations.
Platforms
Q3 2021Android rules use the new platforms API IN PROGRESS (#11749)
- This is our main priority for the beginning of 2021.
Q3 2021Builds support multiple execution platforms IN PROGRESS (#11748)
pausedC++ rules use the new platformsfall API IN PROGRESS (#6516)
- This is blocked on Android platforms. We can turn this on with a simple flag flip.
pausedMulti-platform targets NOT STARTED
- Let targets declare that they should build for multiple platforms
- Listed here because of user request
pausedDeprecate and remove --cpu
and related flags
NOT STARTED
- This is an aspirational goal that falls out of migrating all rules to platforms.
Efficiency
2021An experimental Bazel mode caches cross-platform Java compilation IN PROGRESS (#6526)
- Improves multi-platform build speed
- Underallocated, so progress is slow