commit | ecb61eebbb93111b87a878ce920cd4914f7d47fb | [log] [tgz] |
---|---|---|
author | gregce <gregce@google.com> | Tue May 19 10:56:29 2020 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Tue May 19 10:57:28 2020 -0700 |
tree | 223affb27214e480602f869a178fa02d925ffa95 | |
parent | 696e302b1765b2c7cfa9e24f4b9903ce39e27b60 [diff] |
Introduce configuration transition fragment declarations. See https://github.com/bazelbuild/bazel/issues/11258 for context. This essentially converts ConfigurationTransition.apply(BuildOptions...) to ConfigurationTransition.apply(RestrictedBuildOptions...). The new BuildOptionsView wraps BuildOptions while only allowing access to options fragments the transitions declare. Because there are a *lot* of uses of PatchTransition and SplitTransition, this change only adds a parallel interface to PatchTransition.patch and SplitTransition.split. Implementers continue to work as-is with the BuildOptions variant, while we can incrementally switch them over to the RestrictedBuildOptions variant at whatever pace we desire. This helps decouple risk of failing CI if/when we accidentally forget to migrate a few implementers or get their set of declared fragments wrong. This implements step 1 of https://github.com/bazelbuild/bazel/issues/11258. PiperOrigin-RevId: 312311815
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md