commit | 81c4bbf5fa799a3ec6291e78330f5539296b83dd | [log] [tgz] |
---|---|---|
author | brandjon <brandjon@google.com> | Mon Mar 25 13:36:47 2019 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Mon Mar 25 13:38:39 2019 -0700 |
tree | 9fa008b38ac6f314851c74e7b07c18d3f09dd434 | |
parent | 169da6d109a55da5c2fcf2c7ad7c71fa4b40e88d [diff] |
Ensure Python transitions do not create action conflicts This is an extension of https://github.com/bazelbuild/bazel/commit/09c6b7a7a659941e6920902f726660af14f9b176, which turned out to be insufficient for preventing action conflicts (between unshareable actions, e.g. C++ compilation actions). That CL avoided creating a transition where it was not needed; however in cases where it is needed, we still get conflicts due to configurations that differ trivially from the top-level configuration. This CL avoids the problem by preprocessing the top-level configuration, to avoid creating configured targets with spurious config differences. Specifically, even though --force_python and --python_version admit a "null" state meaning "not set by the user, please use the default", we immediately replace this with the actual default at the time the BuildOptions is created, so no configured target sees a null value for those options. This mechanism may also be useful for other fragments in the future that need smart default values. Fixes #7808 to unblock #7307. RELNOTES: None PiperOrigin-RevId: 240207632
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel only rebuilds 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
Bazel is released in ‘Beta’. See the product roadmap to learn about the path toward a stable 1.0 release.