From cc415fe7d9f5becbfeb970f440581d452d541ff0 Mon Sep 17 00:00:00 2001 From: Yannic Bonenberger Date: Mon, 31 Oct 2022 00:17:11 +0100 Subject: [PATCH 1/9] Add critical path to BEP --- .../build/lib/buildeventstream/proto/BUILD | 2 + .../proto/build_event_stream.proto | 11 +++++ src/main/protobuf/BUILD | 24 ++++++++++ src/main/protobuf/critical_path.proto | 45 +++++++++++++++++++ src/main/protobuf/spawn.proto | 15 +++++++ 5 files changed, 97 insertions(+) create mode 100644 src/main/protobuf/critical_path.proto diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/BUILD b/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/BUILD index 313dccb6e1af12..d9b66a25dd9743 100644 --- a/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/BUILD +++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/BUILD @@ -27,8 +27,10 @@ proto_library( srcs = ["build_event_stream.proto"], deps = [ "//src/main/protobuf:command_line_proto", + "//src/main/protobuf:critical_path_proto", "//src/main/protobuf:failure_details_proto", "//src/main/protobuf:invocation_policy_proto", + "//src/main/protobuf:spawn_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:timestamp_proto", ], diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto b/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto index 613a02a5ef91d8..d54bada8f119e7 100644 --- a/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto +++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto @@ -19,8 +19,10 @@ package build_event_stream; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "src/main/protobuf/command_line.proto"; +import "src/main/protobuf/critical_path.proto"; import "src/main/protobuf/failure_details.proto"; import "src/main/protobuf/invocation_policy.proto"; +import "src/main/protobuf/spawn.proto"; option java_package = "com.google.devtools.build.lib.buildeventstream"; option java_outer_classname = "BuildEventStreamProtos"; @@ -222,6 +224,7 @@ message BuildEventId { // Identifier of an event providing convenience symlinks information. message ConvenienceSymlinksIdentifiedId {} + // Next id: 30. oneof id { UnknownBuildEventId unknown = 1; ProgressId progress = 2; @@ -249,6 +252,9 @@ message BuildEventId { WorkspaceConfigId workspace = 23; BuildMetadataId build_metadata = 24; ConvenienceSymlinksIdentifiedId convenience_symlinks_identified = 25; + build.bazel.bep.CriticalPath.BepId critical_path = 27; + tools.protos.SpawnMetrics.BepId spawn_metrics = 28; + build.bazel.bep.CriticalPathComponent.BepId critical_path_component = 29; } } @@ -1148,6 +1154,8 @@ message ConvenienceSymlink { // events as children. More details, which are specific to the kind of event // that is observed, is provided in the payload. More options for the payload // might be added in the future. +// +// Next id: 32. message BuildEvent { reserved 11, 19; BuildEventId id = 1; @@ -1177,5 +1185,8 @@ message BuildEvent { WorkspaceConfig workspace_info = 25; BuildMetadata build_metadata = 26; ConvenienceSymlinksIdentified convenience_symlinks_identified = 27; + build.bazel.bep.CriticalPath critical_path = 29; + tools.protos.SpawnMetrics spawn_metrics = 30; + build.bazel.bep.CriticalPath critical_path_component = 31; } } diff --git a/src/main/protobuf/BUILD b/src/main/protobuf/BUILD index 809860f5474424..1227b2c57dc7d0 100644 --- a/src/main/protobuf/BUILD +++ b/src/main/protobuf/BUILD @@ -92,6 +92,30 @@ java_library_srcs( deps = [":command_server_java_proto"], ) +proto_library( + name = "critical_path_proto", + srcs = [ + "critical_path.proto", + ], + deps = [ + "@com_google_protobuf//:duration_proto", + ], +) + +java_proto_library( + name = "critical_path_java_proto", + deps = [ + ":critical_path_proto", + ], +) + +java_library_srcs( + name = "critical_path_java_proto_srcs", + deps = [ + ":critical_path_java_proto", + ], +) + proto_library( name = "failure_details_proto", srcs = ["failure_details.proto"], diff --git a/src/main/protobuf/critical_path.proto b/src/main/protobuf/critical_path.proto new file mode 100644 index 00000000000000..ef9689c3c71d7c --- /dev/null +++ b/src/main/protobuf/critical_path.proto @@ -0,0 +1,45 @@ +// Copyright 2022 The Bazel Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package build.bazel.bep; + +import "google/protobuf/duration.proto"; + +option java_package = "build.bazel.bep"; +option java_outer_classname = "CriticalPathProtos"; +// option java_api_version = 2; + +// Represents the critical path of a build. +// +// This is an event in the Build Event Stream (BES) with the following +// children: +// - `tools.protos.SpawnMetrics` +// - `build.bazel.bep.CriticalPathComponent` +message CriticalPath { + // Identifier of a BES event of this type. + message BepId {} + + // The total time of the critical path. + google.protobuf.Duration total_time = 1; +} + +// Represents a single component in the critical path. +message CriticalPathComponent { + // Identifier of a BES event of this type. + message BepId { + string action_key = 1; + } +} diff --git a/src/main/protobuf/spawn.proto b/src/main/protobuf/spawn.proto index f11de34f13d177..82f3f9abc24604 100644 --- a/src/main/protobuf/spawn.proto +++ b/src/main/protobuf/spawn.proto @@ -60,7 +60,22 @@ message Platform { } // Timing, size, and memory statistics for a SpawnExec. +// +// Next id: 21 message SpawnMetrics { + // Identifier of a BES event of this type. + message BepId { + SpawnExecKind exec_kind = 1; + } + + enum SpawnExecKind { + OTHER = 0; + REMOTE = 1; + LOCAL = 2; + WORKER = 3; + } + SpawnExecKind exec_kind = 20; + // Total wall time spent running a spawn, measured locally. google.protobuf.Duration total_time = 1; // Time taken to convert the spawn into a network request. From bbe71660e382b986fb0867d4b56175a064f2dc2b Mon Sep 17 00:00:00 2001 From: Yannic Bonenberger Date: Tue, 1 Nov 2022 01:29:07 +0100 Subject: [PATCH 2/9] fix bootstrap --- src/main/protobuf/BUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/protobuf/BUILD b/src/main/protobuf/BUILD index 1227b2c57dc7d0..05c63bed7ce660 100644 --- a/src/main/protobuf/BUILD +++ b/src/main/protobuf/BUILD @@ -300,6 +300,7 @@ filegroup( ":command_line_java_proto_srcs", ":command_server_java_grpc_srcs", ":command_server_java_proto_srcs", + ":critical_path_java_proto_srcs", ":failure_details_java_proto_srcs", ":option_filters_java_proto_srcs", ":profile_java_proto_srcs", From 8618bf80c0e0a6ef82d028b8c436ab5792a72244 Mon Sep 17 00:00:00 2001 From: Yannic Bonenberger Date: Thu, 6 Apr 2023 22:11:22 +0200 Subject: [PATCH 3/9] implement total time --- .../proto/build_event_stream.proto | 9 +--- .../build/lib/buildtool/BuildTool.java | 5 +- .../buildevent/BuildCompleteEvent.java | 2 + .../criticalpath/AggregatedCriticalPath.java | 9 ++++ .../build/lib/metrics/criticalpath/BUILD | 5 ++ .../criticalpath/CriticalPathEvent.java | 47 +++++++++++++++++++ .../lib/runtime/BuildSummaryStatsModule.java | 2 + src/main/protobuf/critical_path.proto | 10 +--- src/main/protobuf/spawn.proto | 5 -- 9 files changed, 72 insertions(+), 22 deletions(-) create mode 100644 src/main/java/com/google/devtools/build/lib/metrics/criticalpath/CriticalPathEvent.java diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto b/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto index fb9663f35620a5..09fa00f75e0123 100644 --- a/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto +++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/build_event_stream.proto @@ -22,7 +22,6 @@ import "src/main/protobuf/command_line.proto"; import "src/main/protobuf/critical_path.proto"; import "src/main/protobuf/failure_details.proto"; import "src/main/protobuf/invocation_policy.proto"; -import "src/main/protobuf/spawn.proto"; option java_package = "com.google.devtools.build.lib.buildeventstream"; option java_outer_classname = "BuildEventStreamProtos"; @@ -224,7 +223,7 @@ message BuildEventId { // Identifier of an event providing convenience symlinks information. message ConvenienceSymlinksIdentifiedId {} - // Next id: 30. + // Next id: 28. oneof id { UnknownBuildEventId unknown = 1; ProgressId progress = 2; @@ -253,8 +252,6 @@ message BuildEventId { BuildMetadataId build_metadata = 24; ConvenienceSymlinksIdentifiedId convenience_symlinks_identified = 25; build.bazel.bep.CriticalPath.BepId critical_path = 27; - tools.protos.SpawnMetrics.BepId spawn_metrics = 28; - build.bazel.bep.CriticalPathComponent.BepId critical_path_component = 29; } } @@ -1158,7 +1155,7 @@ message ConvenienceSymlink { // that is observed, is provided in the payload. More options for the payload // might be added in the future. // -// Next id: 32. +// Next id: 30. message BuildEvent { reserved 11, 19; BuildEventId id = 1; @@ -1189,7 +1186,5 @@ message BuildEvent { BuildMetadata build_metadata = 26; ConvenienceSymlinksIdentified convenience_symlinks_identified = 27; build.bazel.bep.CriticalPath critical_path = 29; - tools.protos.SpawnMetrics spawn_metrics = 30; - build.bazel.bep.CriticalPath critical_path_component = 31; } } diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java index 3069056ab3a0a7..4dfa5d323d5412 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java @@ -45,6 +45,7 @@ import com.google.devtools.build.lib.events.OutputFilter; import com.google.devtools.build.lib.events.Reporter; import com.google.devtools.build.lib.exec.ExecutionOptions; +import com.google.devtools.build.lib.metrics.criticalpath.CriticalPathEvent; import com.google.devtools.build.lib.pkgcache.LoadingFailedException; import com.google.devtools.build.lib.profiler.ProfilePhase; import com.google.devtools.build.lib.profiler.Profiler; @@ -694,7 +695,9 @@ public void stopRequest( new BuildCompleteEvent( result, ImmutableList.of( - BuildEventIdUtil.buildToolLogs(), BuildEventIdUtil.buildMetrics()))); + BuildEventIdUtil.buildToolLogs(), + BuildEventIdUtil.buildMetrics(), + CriticalPathEvent.BEP_ID))); } // Post the build tool logs event; the corresponding local files may be contributed from // modules, and this has to happen after posting the BuildCompleteEvent because that's when diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/BuildCompleteEvent.java b/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/BuildCompleteEvent.java index 2b77fa5b0d9b4d..545792b549e08a 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/BuildCompleteEvent.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/BuildCompleteEvent.java @@ -16,6 +16,7 @@ import static com.google.common.base.Preconditions.checkNotNull; +import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.buildeventstream.BuildCompletingEvent; import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId; @@ -36,6 +37,7 @@ public BuildCompleteEvent(BuildResult result, Collection children) this.result = checkNotNull(result); } + @VisibleForTesting public BuildCompleteEvent(BuildResult result) { this(result, ImmutableList.of()); } diff --git a/src/main/java/com/google/devtools/build/lib/metrics/criticalpath/AggregatedCriticalPath.java b/src/main/java/com/google/devtools/build/lib/metrics/criticalpath/AggregatedCriticalPath.java index a976ce4cc46ed4..66b073f3fed813 100644 --- a/src/main/java/com/google/devtools/build/lib/metrics/criticalpath/AggregatedCriticalPath.java +++ b/src/main/java/com/google/devtools/build/lib/metrics/criticalpath/AggregatedCriticalPath.java @@ -15,7 +15,9 @@ package com.google.devtools.build.lib.metrics.criticalpath; import com.google.common.base.Joiner; +import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; +import com.google.common.eventbus.EventBus; import com.google.devtools.build.lib.actions.AggregatedSpawnMetrics; import com.google.devtools.build.lib.actions.SpawnMetrics; import java.time.Duration; @@ -103,4 +105,11 @@ public String toStringSummary() { public String toStringSummaryNoRemote() { return toString(true, false); } + + /**Posts the {@code BEP} event for the critical path on the provided {@link EventBus}. */ + public void postEvent(EventBus eventBus) { + Preconditions.checkNotNull(eventBus); + + eventBus.post(new CriticalPathEvent(Duration.ofMillis(totalTimeInMs))); + } } diff --git a/src/main/java/com/google/devtools/build/lib/metrics/criticalpath/BUILD b/src/main/java/com/google/devtools/build/lib/metrics/criticalpath/BUILD index 70fc413931cf15..72dc94bd78e0ef 100644 --- a/src/main/java/com/google/devtools/build/lib/metrics/criticalpath/BUILD +++ b/src/main/java/com/google/devtools/build/lib/metrics/criticalpath/BUILD @@ -17,12 +17,17 @@ java_library( deps = [ "//src/main/java/com/google/devtools/build/lib/actions", "//src/main/java/com/google/devtools/build/lib/actions:artifacts", + "//src/main/java/com/google/devtools/build/lib/buildeventstream", + "//src/main/java/com/google/devtools/build/lib/buildeventstream/proto:build_event_stream_java_proto", "//src/main/java/com/google/devtools/build/lib/clock", "//src/main/java/com/google/devtools/build/lib/cmdline", "//src/main/java/com/google/devtools/build/lib/concurrent", + "//src/main/java/com/google/devtools/build/lib/events", "//src/main/java/com/google/devtools/build/lib/skyframe/rewinding:action_rewound_event", + "//src/main/protobuf:critical_path_java_proto", "//third_party:flogger", "//third_party:guava", "//third_party:jsr305", + "@com_google_protobuf//:protobuf_java", ], ) diff --git a/src/main/java/com/google/devtools/build/lib/metrics/criticalpath/CriticalPathEvent.java b/src/main/java/com/google/devtools/build/lib/metrics/criticalpath/CriticalPathEvent.java new file mode 100644 index 00000000000000..5dfaae49478a8b --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/metrics/criticalpath/CriticalPathEvent.java @@ -0,0 +1,47 @@ +package com.google.devtools.build.lib.metrics.criticalpath; + +import build.bazel.bep.CriticalPath; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; +import com.google.devtools.build.lib.buildeventstream.BuildEventContext; +import com.google.devtools.build.lib.buildeventstream.BuildEventIdUtil; +import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos; +import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId; +import com.google.devtools.build.lib.buildeventstream.BuildEventWithOrderConstraint; +import com.google.devtools.build.lib.buildeventstream.GenericBuildEvent; +import java.time.Duration; +import java.util.Collection; + +/** {@code Build event protocol} event for the {@code critical path} of a build. */ +public final class CriticalPathEvent extends GenericBuildEvent + implements BuildEventWithOrderConstraint { + public static final BuildEventId BEP_ID = + BuildEventId.newBuilder().setCriticalPath(CriticalPath.BepId.getDefaultInstance()).build(); + + private final Duration totalTime; + + CriticalPathEvent(Duration totalTime) { + super(BEP_ID, ImmutableList.of()); + + this.totalTime = Preconditions.checkNotNull(totalTime); + } + + @Override + public Collection postedAfter() { + return ImmutableList.of(BuildEventIdUtil.buildFinished()); + } + + @Override + public BuildEventStreamProtos.BuildEvent asStreamProto(BuildEventContext converters) { + return GenericBuildEvent.protoChaining(this) + .setCriticalPath( + CriticalPath.newBuilder() + .setTotalTime( + com.google.protobuf.Duration.newBuilder() + .setSeconds(totalTime.getSeconds()) + .setNanos(totalTime.getNano()) + .build()) + .build()) + .build(); + } +} diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BuildSummaryStatsModule.java b/src/main/java/com/google/devtools/build/lib/runtime/BuildSummaryStatsModule.java index 9a1fc76f8f8fed..359a589a3dc149 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/BuildSummaryStatsModule.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/BuildSummaryStatsModule.java @@ -225,6 +225,8 @@ public void buildComplete(BuildCompleteEvent event) { .getResult() .getBuildToolLogCollection() .addDirectValue("process stats", spawnSummaryString.getBytes(StandardCharsets.UTF_8)); + + criticalPath.postEvent(eventBus); } finally { if (criticalPathComputer != null) { eventBus.unregister(criticalPathComputer); diff --git a/src/main/protobuf/critical_path.proto b/src/main/protobuf/critical_path.proto index ef9689c3c71d7c..d549d8662a4647 100644 --- a/src/main/protobuf/critical_path.proto +++ b/src/main/protobuf/critical_path.proto @@ -21,12 +21,12 @@ import "google/protobuf/duration.proto"; option java_package = "build.bazel.bep"; option java_outer_classname = "CriticalPathProtos"; // option java_api_version = 2; +option java_multiple_files = true; // Represents the critical path of a build. // // This is an event in the Build Event Stream (BES) with the following // children: -// - `tools.protos.SpawnMetrics` // - `build.bazel.bep.CriticalPathComponent` message CriticalPath { // Identifier of a BES event of this type. @@ -35,11 +35,3 @@ message CriticalPath { // The total time of the critical path. google.protobuf.Duration total_time = 1; } - -// Represents a single component in the critical path. -message CriticalPathComponent { - // Identifier of a BES event of this type. - message BepId { - string action_key = 1; - } -} diff --git a/src/main/protobuf/spawn.proto b/src/main/protobuf/spawn.proto index b6ac5c9f24d432..dfb024d44031c6 100644 --- a/src/main/protobuf/spawn.proto +++ b/src/main/protobuf/spawn.proto @@ -63,11 +63,6 @@ message Platform { // // Next id: 21 message SpawnMetrics { - // Identifier of a BES event of this type. - message BepId { - SpawnExecKind exec_kind = 1; - } - enum SpawnExecKind { OTHER = 0; REMOTE = 1; From 7e3be06e3fccb3f6dfc501102f68ca6c88b2d863 Mon Sep 17 00:00:00 2001 From: Yannic Bonenberger Date: Thu, 6 Apr 2023 22:12:41 +0200 Subject: [PATCH 4/9] undo --- src/main/protobuf/spawn.proto | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/main/protobuf/spawn.proto b/src/main/protobuf/spawn.proto index dfb024d44031c6..1adb847e500077 100644 --- a/src/main/protobuf/spawn.proto +++ b/src/main/protobuf/spawn.proto @@ -63,14 +63,6 @@ message Platform { // // Next id: 21 message SpawnMetrics { - enum SpawnExecKind { - OTHER = 0; - REMOTE = 1; - LOCAL = 2; - WORKER = 3; - } - SpawnExecKind exec_kind = 20; - // Total wall time spent running a spawn, measured locally. google.protobuf.Duration total_time = 1; // Time taken to convert the spawn into a network request. From d4523bcb421bd460f9061a2494f9978086a9b3c4 Mon Sep 17 00:00:00 2001 From: Yannic Bonenberger Date: Thu, 6 Apr 2023 22:13:09 +0200 Subject: [PATCH 5/9] more --- src/main/protobuf/spawn.proto | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/protobuf/spawn.proto b/src/main/protobuf/spawn.proto index 1adb847e500077..350ff407008a8c 100644 --- a/src/main/protobuf/spawn.proto +++ b/src/main/protobuf/spawn.proto @@ -60,8 +60,6 @@ message Platform { } // Timing, size, and memory statistics for a SpawnExec. -// -// Next id: 21 message SpawnMetrics { // Total wall time spent running a spawn, measured locally. google.protobuf.Duration total_time = 1; From a9ddafb282cb86d272bcd3e50e9c9dd6836cc832 Mon Sep 17 00:00:00 2001 From: Yannic Bonenberger Date: Thu, 6 Apr 2023 22:13:50 +0200 Subject: [PATCH 6/9] some cleanup --- src/main/protobuf/critical_path.proto | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/protobuf/critical_path.proto b/src/main/protobuf/critical_path.proto index d549d8662a4647..034d7a06917d41 100644 --- a/src/main/protobuf/critical_path.proto +++ b/src/main/protobuf/critical_path.proto @@ -24,10 +24,6 @@ option java_outer_classname = "CriticalPathProtos"; option java_multiple_files = true; // Represents the critical path of a build. -// -// This is an event in the Build Event Stream (BES) with the following -// children: -// - `build.bazel.bep.CriticalPathComponent` message CriticalPath { // Identifier of a BES event of this type. message BepId {} From 5bc29ea6c48b1e1cdf351131f60c026e464a9193 Mon Sep 17 00:00:00 2001 From: Yannic Bonenberger Date: Thu, 6 Apr 2023 22:37:32 +0200 Subject: [PATCH 7/9] register --- .../build/lib/buildtool/util/BuildIntegrationTestCase.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/google/devtools/build/lib/buildtool/util/BuildIntegrationTestCase.java b/src/test/java/com/google/devtools/build/lib/buildtool/util/BuildIntegrationTestCase.java index 33b09f475ec228..3d0f3a1f63a835 100644 --- a/src/test/java/com/google/devtools/build/lib/buildtool/util/BuildIntegrationTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/buildtool/util/BuildIntegrationTestCase.java @@ -84,6 +84,7 @@ import com.google.devtools.build.lib.runtime.BlazeRuntime; import com.google.devtools.build.lib.runtime.BlazeServerStartupOptions; import com.google.devtools.build.lib.runtime.BlazeWorkspace; +import com.google.devtools.build.lib.runtime.BuildSummaryStatsModule; import com.google.devtools.build.lib.runtime.CommandEnvironment; import com.google.devtools.build.lib.runtime.NoSpawnCacheModule; import com.google.devtools.build.lib.runtime.ServerBuilder; @@ -563,7 +564,8 @@ protected BlazeRuntime.Builder getRuntimeBuilder() throws Exception { .addBlazeModule(new OutputFilteringModule()) .addBlazeModule(connectivityModule) .addBlazeModule(new SkymeldModule()) - .addBlazeModule(getMockBazelRepositoryModule()); + .addBlazeModule(getMockBazelRepositoryModule()) + .addBlazeModule(new BuildSummaryStatsModule()); getSpawnModules().forEach(builder::addBlazeModule); builder .addBlazeModule(getBuildInfoModule()) From b755142f845a4fe38d7ce83bde64ae9cef8a8155 Mon Sep 17 00:00:00 2001 From: Yannic Date: Thu, 6 Apr 2023 23:15:33 +0200 Subject: [PATCH 8/9] Update BUILD --- .../com/google/devtools/build/lib/buildeventstream/proto/BUILD | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/BUILD b/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/BUILD index d9b66a25dd9743..f0d6b1d732a196 100644 --- a/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/BUILD +++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/proto/BUILD @@ -30,7 +30,6 @@ proto_library( "//src/main/protobuf:critical_path_proto", "//src/main/protobuf:failure_details_proto", "//src/main/protobuf:invocation_policy_proto", - "//src/main/protobuf:spawn_proto", "@com_google_protobuf//:duration_proto", "@com_google_protobuf//:timestamp_proto", ], From bc17e9a102ddd48833d622cae97fe442535fd177 Mon Sep 17 00:00:00 2001 From: Yannic Date: Thu, 6 Apr 2023 23:15:58 +0200 Subject: [PATCH 9/9] Update BuildCompleteEvent.java --- .../build/lib/buildtool/buildevent/BuildCompleteEvent.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/BuildCompleteEvent.java b/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/BuildCompleteEvent.java index 545792b549e08a..2b77fa5b0d9b4d 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/BuildCompleteEvent.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/buildevent/BuildCompleteEvent.java @@ -16,7 +16,6 @@ import static com.google.common.base.Preconditions.checkNotNull; -import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.buildeventstream.BuildCompletingEvent; import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.BuildEventId; @@ -37,7 +36,6 @@ public BuildCompleteEvent(BuildResult result, Collection children) this.result = checkNotNull(result); } - @VisibleForTesting public BuildCompleteEvent(BuildResult result) { this(result, ImmutableList.of()); }