proposals
proposals copied to clipboard
Index of all Bazel proposals and design documents
trafficstars
Bazel Proposals and Design Documents
This is an index of all proposals and design documents for Bazel.
Workflow
New proposals follow the design process and are sent for review on the bazel-dev mailing list.
State diagram of the design process

Index
Under review
| Last updated | Title | Author(s) alias | Category |
|---|---|---|---|
| 2022-08-03 | Platforms on Targets | @katre | Configuration |
| 2022-07-07 | Enabling Global exec_groups | @susinmotion | Configurability |
| 2022-05-13 | OSS Licenses and Bazel Dependency Management | @aiuto | External Repositories |
| 2022-05-12 | Bzlmod External Dependencies Inspection Tool | @andyrinne12 | External Repositories |
| 2022-03-18 | proto_common module | @comius | Proto Rules |
| 2022-02-18 | Coding guidelines for Starlark rules | @comius | Starlark Rules |
| 2021-11-09 | Guidance for Rules Authors how to deal with Bazel versions / upgrades | @philwo | Bazel |
| 2021-08-02 | Bazel Central Registry Policies and Procedures | @meteorcloudy | External Repositories |
| 2021-06-17 | Starlark fail(errorcode="") | @aiuto | Documentation / Event Stream |
| 2021-03-06 | OSS License Declarations | @aiuto | Product |
| 2021-03-06 | Remote Persistent Workers | @ulfjack | Remote Execution |
| 2021-02-18 | Toolchainifying proto rules | @Yannic | Protobuf |
| 2021-02-10 | Remote Output Service: place bazel-out/ on a FUSE file system | @EdSchouten | Remote Execution |
| 2020-10-19 | Bazel External Dependencies Overhaul | @meteorcloudy, @philwo, @Wyverald | External Repositories |
Draft
| Last updated | Title | Author(s) alias | Category |
|---|---|---|---|
| 2022-05-31 | Bazel Proto Rules | @comius | Proto Rules |
| 2020-10-09 | Adding http mirror to accelerate repos downloading | @yancl | External Repositories |
| 2021-06-25 | Better Starlark analysis unit tests | @hvadehra | Starlark |
| 2022-04-25 | Extend expand_template() API to reduce retained memory | @hvadehra | Starlark |
| 2022-04-29 | @since(version) annotations in documentation. | @aiuto | Documentation |
Approved
| Last updated | Title | Author(s) alias | Category |
|---|---|---|---|
| 2022-08-17 | Locating runfiles with Bzlmod | @fmeum | External Repositories, Bazel |
| 2022-06-30 | Credential Helpers for Bazel | @Yannic | External Repositories |
| 2022-05-25 | Canonical label literals | @Wyverald | External Repositories |
| 2022-05-11 | Deprecating managed_directories | @lberki | External Repositories |
| 2022-02-04 | Optional Toolchains | @katre | Configurability |
| 2021-06-23 | Improving native.existing_rules | @tetromino, @brandjon | Build Language |
| 2021-06-09 | Aspects Propagating other Aspects | @messa | Starlark |
| 2021-04-22 | Custom constructors for providers | @brandjon | Build Language |
| 2021-03-24 | Java common refactoring | @comius | Java rules |
| 2021-02-15 | External directory reshuffling | @lberki | External Repositories |
| 2021-02-15 | Rules for software license compliance | @aiuto | License Rules, Bazel |
| 2021-02-15 | C++ rules skylark migration plan | @mhlopko | C++ |
| 2020-12-22 | Injecting Starlark Values Into Builtins | @brandjon | Starlark |
| 2020-05-13 | Execution Platforms vs. Strategies | @katre and @aragos | Configurability |
| 2019-07-11 | Load Bazel Protobuf rules from @rules_proto | @Yannic | Protobuf |
| 2019-05-08 | Android Native to Starlark Migration | @timpeut | Android |
| 2018-08-14 | Decoupling android_ndk_repository from Bazel |
@jin | Android |
| 2018-07-31 | Splitting large BEP events | @buchgr | Build Event Protocol |
Implemented
| Last updated | Title | Author(s) alias | Category |
|---|---|---|---|
| 2022-03-07 | Representing repeatable Starlark flags as config.string_list | @fmeum | Configurability, Build Language |
| 2022-01-14 | Proposal for subpackages built-in helper function | @kkress | Bazel |
| 2021-03-06 | Rules authors SIG | @alexeagle | Community |
| 2021-02-18 | Require ProtoInfo for proto_lang_toolchain#blacklisted_protos | @Yannic | Protobuf |
| 2021-02-16 | Selecting Between Python 2 and 3 | @brandjon | Python |
| 2021-02-16 | Remote Downloads | @EricBurnett, @jmillikin, @sstriker | External Repositories |
| 2021-02-16 | Starlark Directory Expansion in Args MapEach | @haileiyu | Starlark |
| 2021-02-16 | Test execution on Windows without Bash | @laszlocsomor | Windows |
| 2021-02-15 | Toolchain resolution using configuration flags | @comius | Configurability |
| 2021-02-15 | Configured Query Starlark Output | @c-parsons | Configurability, Starlark |
| 2021-02-15 | Proposal: new format ‘flag_per_line’ for Args | @vmaverick | Starlark |
| 2021-02-15 | cquery somepath: easy mode | @gregestren | Configurability |
| 2021-02-15 | Automatically migrating maven_jar to rules_jvm_external |
@jin | External Repositories |
| 2021-02-15 | Target-level execution properties | @agoulti | Configurability |
| 2021-02-15 | Bazel Starlark API: add ctx.resolve_tools | @laszlocsomor | Starlark |
| 2021-02-15 | Auto-configured Host Platform | @katre | Configurability |
| 2021-02-15 | Multiplex persistent worker | @borkaehw | Bazel |
| 2021-02-15 | Starlark Build Configuration | @juliexxia, @gregestren | Configurability |
| 2021-02-15 | Crosstool in Skylark | @scentini, @mhlopko | C++ |
| 2021-02-15 | Extensibility For Native Rules | @dslomov | Starlark |
| 2021-02-15 | Declared Providers | @dslomov, @laurentlb | Starlark |
| 2021-02-15 | Java Platformization | @comius | Configurability |
| 2021-02-15 | Starlark Shorthand Flag Mapping | @WarkahScott | Configurability |
| 2021-02-15 | Measuring Configuration Overhead | @gregestren | Configurability |
| 2021-02-15 | Action Groups (Multi-Toolchain Resolution) | @juliexxia | Configurability |
| 2021-02-15 | Common Bazel Constraints | @gregestren | Configurability |
| 2021-02-15 | Starlark Build Configurations - Parameterized-Transitions API | @juliexxia | Configurability |
| 2021-02-15 | Partial C++ Starlark API | @oquenchil | C++ |
| 2021-02-15 | Crosstool in Skylark | @mhlopko | C++ |
| 2021-02-15 | Shrinking the Bazel binary | @buchgr, @meistert | Bazel |
| 2021-02-15 | External C/C++ libraries rules | @ichern | Bazel |
| 2021-02-15 | Bazel Runfiles Libraries | @laszlocsomor | Bazel |
| 2021-02-15 | Name resolution | @laurentlb | Starlark |
| 2020-10-28 | Keepalived remote execution | @coeuvre | Remote Execution |
| 2020-09-30 | Toolchain Transition Migration | @katre | Configurability |
| 2020-09-30 | Toolchain Transitions | @katre | Configurability |
| 2020-09-30 | Passing Toolchain Context across Dependencies | @katre | Configurability |
| 2020-05-13 | Execution Transitions | @katre | Configurability |
| 2020-05-13 | Old Flags to Platform Migration | @aragos | Configurability |
| 2019-12-20 | Incompatible Target Skipping | @AustinSchuh, @gregestren | Configurability |
| 2019-12-17 | cquery somepath: easy mode | @gregestren | Configurability |
| 2019-12-17 | Exposing Target Platform Constraints | @katre | Configurability |
| 2019-10-24 | Visibility for source files | @aehlig | Build API |
| 2019-04-22 | Move //tools/build_defs/pkg to rules_pkg | @aiuto | Bazel |
| 2019-05-10 | Bazel with NPM package manager | @ichern | External Repositories |
| 2019-05-27 | Authentication for ctx.download |
@aehlig | External Repositories |
| 2019-04-29 | Forcing non-cache-hits in the repository cache | @aehlig | External Repositories |
| 2019-04-05 | Handling download failures | @aehlig | External Repositories |
| 2018-12-14 | Versioned Documentation | @jin | Documentation |
| 2018-11-26 | Update Download Functions in repository_ctx | @dkelmer | External Repositories |
| 2018-11-14 | Platform Inheritance | @katre | Configurability |
| 2018-11-09 | Config Setting Chaining | @gregestren | Configurability |
| 2018-10-29 | Progress reporting for external repositories | @aehlig | External Repositories |
| 2018-11-10 | Symlinks in Remote Execution | @buchgr | Remote Execution |
| 2018-08-27 | Args Directory Support | @tomlu | Starlark |
| 2018-08-20 | Skylark API to the C++ toolchain | @mhlopko | C++ |
| 2018-08-03 | Skyframe threading model | @tomlu | Skyframe |
| 2018-07-13 | Bazel hashing of external directory output | @aehlig | External Repositories |
| 2018-05-24 | Unified Configuration Transitions | @gregestren | Configurability |
| 2018-04-26 | Per-Rule Execution Platform Constraints | @katre | Configurability |
| 2017-10-06 | Dynamic Bazel Configurations | @gregestren | Configurability |
| 2017-03-03 | Label-keyed String Dictionary Type for Build Attributes | @serynth | Configurability |
| 2017-01-20 | Aspect required providers | @tomlu, @dslomov | Starlark |
| 2017-01-20 | Aspects-on-aspects | @dslomov | Starlark |
| 2016-10-18 | Invalidation of remote repositories | @damienmg | External Repositories |
| 2016-10-11 | Distribution Artifact for Bazel | @aehlig | Release |
| 2016-09-30 | Central cache for external repositories | @jin | External Repositories |
| 2016-09-05 | Building Python on Windows | @meteorcloudy | Python, Windows |
| 2016-06-21 | Specifying environment variables | @aehlig | Bazel |
| 2016-06-02 | Sandboxing | @philwo | Bazel |
| 2016-05-26 | Implementing Beautiful Error Messages (Loading Phase) | @laurentlb | Bazel |
| 2016-05-23 | Beautiful error messages | @laurentlb | Bazel |
| 2016-04-18 | Parameterized Skylark Aspects | @dslomov, lindleyf | Starlark |
| 2016-02-16 | Generating C++ crosstool with a Skylark Remote Repository | @damienmg | Toolchains |
| 2015-07-02 | Skylark Remote Repositories | @damienmg | External repositories |