Require explicit ExecKind in SpawnMetrics.Builder and remove SpawnMetrics.EMPTY Previously we used `REMOTE` as the default but now we'll require setting `ExecKind` explicitly. To make it less error prone, I've introduced a few factory methods that set it. Also, as previously discussed, I've introduced a new `ExecKind.OTHER` (IMHO sounds a bit better than the initial proposal of `INTERNAL`, but I don't feel strongly, so let me know if you prefer the latter). We also discussed not setting `ExecKind` in `SpawnMetrics.EMPTY` (and using something like `null`), but I found it a bit tricky to really define what that would actually mean, now that we have `ExecKind` (e.g., should we allow aggregating such "empty" values? if yes, should it be commutative? etc.) But I've noticed that after the introduction of `AggregatedSpawnMetrics`, we only use `EMPTY` in one place and it's possible to simply remove it, which avoids the problem. RELNOTES: None. PiperOrigin-RevId: 314687611
{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