commit | c37398d0bec8b9932c1a810afd1b4e368e2fc44b | [log] [tgz] |
---|---|---|
author | mschaller <mschaller@google.com> | Fri Nov 15 10:54:06 2019 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Fri Nov 15 10:55:10 2019 -0800 |
tree | 3864b9792640a12dbecde34d743ed6e5a7578c3a | |
parent | 9f9f5ec10fed81362c35c50eeb4515bbe5bf8bce [diff] |
Refactor lost input ownership calculation, do it unconditionally Previously, lost input ownership information from an action's inputDeps was only calculated if any lost inputs came from runfiles. By calculating ownership information unconditionally, lost input owners can be determined for each kind of aggregating artifact, except for filesets, at the ActionExecutionFunction level. By not treating runfiles ownership specially, ActionRewindStrategy's lost-input-owning direct deps calculation can be simpler. Also, the runfiles-specific tracking in LostInputsExecException.InputOwners is no longer necessary, so it can be eliminated in favor of the now-equivalent ActionInputDepOwners. This CL also makes LostInputs{ExecException,ActionExecutionException} independent. That allows other parts of action execution, besides those which throw ExecExceptions, to be able to communicate lost input failures. Now that the ActionExecutionFunction level calculates lost input ownership unconditionally, the requirements for those parts is looser. Before, they would have been responsible for determining all ownership relations except for those from runfiles. Now, they're responsible only for determining ownership relations from filesets. RELNOTES: None. PiperOrigin-RevId: 280692324
{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