/proposals

Index of all Bazel proposals and design documents

Apache License 2.0Apache-2.0

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

State diagram of the design process

Index

Implemented

Last updated Title Author(s) alias Category
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-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

Approved

Last updated Title Author(s) alias Category
2020-11-09 Toolchain resolution using configuration flags @comius Configurability
2020-10-08 Configured Query Starlark Output @c-parsons Configurability, Starlark
2020-05-28 Injecting Starlark Values Into Builtins @brandjon Starlark
2020-05-13 Execution Platforms vs. Strategies @katre and @aragos Configurability
2020-01-14 Remote Downloads @EricBurnett, @jmillikin, @sstriker External Repositories
2019-12-17 cquery somepath: easy mode @gregestren Configurability
2019-10-31 Automatically migrating maven_jar to rules_jvm_external @jin External Repositories
2019-06-22 Target-level execution properties @agoulti Configurability
2019-07-11 Load Bazel Protobuf rules from @rules_proto @Yannic Protobuf
2019-05-08 Android Native to Starlark Migration @timpeut Android
2019-04-12 Propagate tags from the targets to actions @ishikhman Bazel, Starlark
2019-01-15 Bazel Starlark API: add ctx.resolve_tools @laszlocsomor Starlark
2019-01-11 Selecting Between Python 2 and 3 @brandjon Python
2018-11-14 Auto-configured Host Platform @katre Configurability
2018-11-05 Multiplex persistent worker @borkaehw Bazel
2018-10-15 Managing Breaking Changes in Bazel @dslomov Community
2018-09-04 Starlark Build Configuration @juliexxia, @gregestren Configurability
2018-08-20 Crosstool in Skylark @scentini, @mhlopko C++
2018-08-14 Decoupling android_ndk_repository from Bazel @jin Android
2018-04-19 Separating Build API from Bazel @c-parsons Starlark
2018-04-06 Bazel External Dependencies Roadmap @dslomov External Repositories
2018-03-29 Semantics of the expansion of Labels @aehlig External Repositories
2017-07-13 Improved Command Line Reporting @cvcal Bazel
2016-08-04 Extensibility For Native Rules @dslomov Starlark
2016-06-06 Declared Providers @dslomov, @laurentlb Starlark
2018-07-31 Splitting large BEP events @buchgr Build Event Protocol

Under review

Last updated Title Author(s) alias Category
2020-10-19 Bazel External Dependencies Overhaul @meteorcloudy, @philwo, @Wyverald External Repositories
2020-10-12 Aspects Propagating Other Aspects @lberki Build API
2020-07-17 Starlark Shorthand Flag Mapping @WarkahScott Configurability
2020-05-18 Starlark Directory Expansion in Args MapEach @haileiyu Starlark
2020-05-11 External directory reshuffling @lberki External Repositories
2020-02-28 Measuring Configuration Overhead @gregestren Configurability
2020-02-20 Action Groups (Multi-Toolchain Resolution) @juliexxia Configurability
2020-02-10 Mandatory load() statements in BUILD files @lberki Starlark
2020-01-13 Rules for software license compliance @aiuto License Rules, Bazel
2019-12-20 Incompatible Target Skipping @AustinSchuh, @gregestren Configurability
2019-10-15 Visibility for implicit attributes @aehlig Build API
2019-10-15 Structured Compiler Diagnostics @illicitonion Build Event Protocol, Build API
2019-08-21 s/skydoc/stardoc/g: a plan @jin Documentation
2019-08-22 Replacing native <lang>_proto_library rules with Starlark @Yannic Protobuf
2019-07-23 Always dirty repository rules @ichern External Repositories
2019-05-02 HTTP downloads with Authorization using .netrc @genrym External Repositories
2019-04-16 Common Bazel Constraints @gregestren Configurability
2019-04-09 Experimental Content-Based Output Paths @gregestren Configurability
2018-11-07 Starlark Build Configurations - Parameterized-Transitions API @juliexxia Configurability
2019-02-12 Design for a Python Toolchain @brandjon Python
2019-01-24 Bazel Federation @dslomov, @laurentlb Community
2018-12-03 On custom shell toolchain for Bazel Starlark rules @ichern Toolchains, Starlark
2018-11-07 Recursive Workspaces @aehlig External Repositoires
2018-11-07 Starlark Build Configurations - Parameterized-Transitions API @juliexxia Configurability
2018-10-24 Resource auto-tuning via flags @jmmv Performance
2018-10-23 Partial C++ Starlark API @oquenchil C++
2018-08-07 Repository Remapping Revisited @dkelmer External Repositories
2018-05-23 Crosstool in Skylark @mhlopko C++
2018-04-20 Bazel Rules Curation @laurentlb Community
2018-04-12 Extending the design of WORKSPACE files @aehlig, @dslomov External Repositories
2017-12-01 Namespaces when using multiple bazel repositories @aehlig, @dslomov External Repositories

Draft

Last updated Title Author(s) alias Category
2020-10-09 Adding http mirror to accelerate repos downloading @yancl External Repositories
2020-08-14 Proposal: new format ‘flag_per_line’ for Args @vmaverick Starlark
2020-04-17 Dependency Discovery Proposal @stevebillings External Repositories
2020-01-27 Package Validation Proposal @kkress Bazel, Starlark
2019-04-18 Remote Repository Cache jmillikin External Repositories
2019-04-05 Propagate tags from the targets to the actions @ishikhman Bazel, Starlark
2019-01-14 Delaying of load statements @aehlig External Repositories
2018-11-27 Repository rules with multiple return values @aehlig External Repositories
2018-11-09 Customizing the Python Stub Template @brandjon Python
2018-07-24 Test execution on Windows without Bash @laszlocsomor Windows
2018-06-28 Shrinking the Bazel binary @buchgr, @meistert Bazel
2018-06-28 External C/C++ libraries rules @ichern Bazel
2018-06-20 C++ rules skylark migration plan @mhlopko C++
2018-06-18 Name resolution @laurentlb Starlark
2018-06-15 Skylark API to the C++ toolchain @mhlopko C++, Starlark
2018-04-26 Garbage Collection for the Repository Cache @aehlig External Repositories
2018-04-06 Bazel Runfiles Libraries @laszlocsomor Bazel
2018-03-23 Moving Skylark out of Bazel @brandjon Starlark
2018-03-07 Diamond Splitting for External Repositories @dslomov External Repositories
2018-03-05 Output Map Madness @brandjon Starlark
2017-12-07 External Repositories: The Future @aehlig, @dslomov External Repositories
2017-10-06 A Brave New World for the Bazel WORKSPACE File @mattmoor, @dslomov, @davidstanke, @damienmg External Repositories
2016-07-25 Saner Skylark Sets @dslomov Starlark

Dropped

Last updated Title Author(s) alias Category
2020-10-19 Adding a constraint to default target platform @comius Configurability
2020-09-30 Bazel Constraint Equality @aragos Configurability
2020-09-30 Versioned Runtime APIs under Platforms & Toolchains @aragos Configurability
2020-01-16 Starlark project files @robbertvanginkel Bazel, Starlark
2019-08-22 Non-Hermetic Tool Paths in Platforms @aragos Configurability
2019-08-01 Platforms and Strategies @katre Configurability, Execution Strategy
2018-06-14 Platforms and Configurations @katre C++, Starlark
2016-09-19 Recursive WORKSPACE file parsing @kchodorow External Repositories
2015-03-06 bazel init a.k.a ./configure for Bazel @damienmg Bazel