Automated rollback of commit 4607ad439fe8869c8e8951d953e2d3adb613e6d6.
*** Reason for rollback ***
[]
*** Original change description ***
Automated rollback of commit 76b42af100b0a1079a25a7ba24bffcd6bc53f6e0.
*** Reason for rollback ***
The internal tests were fixed.
*** Original change description ***
Automated rollback of commit 750f0a1c05f56403e3b4a3d08b6d7de6ce3ed7f7.
*** Reason for rollback ***
This CL breaks internal tests.
*** Original change description ***
Fix `_validation` output group merging
While https://github.com/bazelbuild/bazel/commit/cd725834eba3edb53b7a7dd9867363ef1fe00e57 made it so that a rul...
***
PiperOrigin-RevId: 678831804
Change-Id: I7725ff31af4c184c79162249283018d808b6b41e
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD
index 9b62db0..017fc9a 100644
--- a/src/main/java/com/google/devtools/build/lib/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/BUILD
@@ -334,7 +334,6 @@
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_options",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_phase_complete_event",
- "//src/main/java/com/google/devtools/build/lib/analysis:aspect_collection",
"//src/main/java/com/google/devtools/build/lib/analysis:blaze_directories",
"//src/main/java/com/google/devtools/build/lib/analysis:blaze_version_info",
"//src/main/java/com/google/devtools/build/lib/analysis:build_info_event",
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AspectCollection.java b/src/main/java/com/google/devtools/build/lib/analysis/AspectCollection.java
index 2c122c3..1c2f21f 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/AspectCollection.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/AspectCollection.java
@@ -148,9 +148,6 @@
*/
@Immutable
public final class AspectCollection {
- /** The name of the native aspect that collects validation outputs. */
- public static final String VALIDATION_ASPECT_NAME = "ValidateTarget";
-
/** aspects that should be visible to a dependency */
private final ImmutableSet<AspectDeps> usedAspects;
@@ -286,14 +283,11 @@
ImmutableList.copyOf(aspectMap.entrySet()).reverse()) {
for (AspectDescriptor depAspectDescriptor : deps.keySet()) {
Aspect depAspect = aspectMap.get(depAspectDescriptor);
- // As any aspect can add validation outputs, the special validation aspect that collects
- // their outputs has to depend on all aspects.
if (depAspect
.getDefinition()
.getRequiredProvidersForAspects()
.isSatisfiedBy(aspect.getValue().getDefinition().getAdvertisedProviders())
- || depAspect.getDefinition().requires(aspect.getValue())
- || depAspect.getAspectClass().getName().equals(VALIDATION_ASPECT_NAME)) {
+ || depAspect.getDefinition().requires(aspect.getValue())) {
deps.get(depAspectDescriptor).add(aspect.getKey());
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java b/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java
index 9bae6a5..85de020 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/OutputGroupInfo.java
@@ -209,9 +209,6 @@
"Output group " + VALIDATION + " provided twice with incompatible depset orders");
}
}
- if (!validationOutputs.isEmpty()) {
- outputGroups.put(VALIDATION, validationOutputs.build());
- }
return createInternal(ImmutableMap.copyOf(outputGroups));
}
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java
index 3496572..2a8b293 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java
@@ -22,7 +22,6 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.AnalysisOptions;
-import com.google.devtools.build.lib.analysis.AspectCollection;
import com.google.devtools.build.lib.analysis.OutputGroupInfo;
import com.google.devtools.build.lib.analysis.TopLevelArtifactContext;
import com.google.devtools.build.lib.analysis.ViewCreationFailedException;
@@ -58,6 +57,7 @@
* as --keep_going, --jobs, etc.
*/
public class BuildRequest implements OptionsProvider {
+ public static final String VALIDATION_ASPECT_NAME = "ValidateTarget";
private static final ImmutableList<Class<? extends OptionsBase>> MANDATORY_OPTIONS =
ImmutableList.of(
@@ -429,8 +429,8 @@
public ImmutableList<String> getAspects() {
List<String> aspects = getBuildOptions().aspects;
ImmutableList.Builder<String> result = ImmutableList.<String>builder().addAll(aspects);
- if (!aspects.contains(AspectCollection.VALIDATION_ASPECT_NAME) && useValidationAspect()) {
- result.add(AspectCollection.VALIDATION_ASPECT_NAME);
+ if (!aspects.contains(VALIDATION_ASPECT_NAME) && useValidationAspect()) {
+ result.add(VALIDATION_ASPECT_NAME);
}
return result.build();
}
@@ -453,7 +453,7 @@
}
}
- /** Whether {@value AspectCollection#VALIDATION_ASPECT_NAME} is in use. */
+ /** Whether {@value #VALIDATION_ASPECT_NAME} is in use. */
public boolean useValidationAspect() {
return validationMode() == OutputGroupInfo.ValidationMode.ASPECT;
}
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildResultPrinter.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildResultPrinter.java
index 596b423..9ec081f 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildResultPrinter.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildResultPrinter.java
@@ -19,7 +19,6 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.analysis.AspectCollection;
import com.google.devtools.build.lib.analysis.ConfiguredAspect;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.FileProvider;
@@ -390,7 +389,7 @@
var aspectsToPrintBuilder = ImmutableSet.<AspectKey>builder();
var validationAspectsBuilder = ImmutableList.<AspectKey>builder();
for (AspectKey key : keys) {
- if (Objects.equals(key.getAspectClass().getName(), AspectCollection.VALIDATION_ASPECT_NAME)) {
+ if (Objects.equals(key.getAspectClass().getName(), BuildRequest.VALIDATION_ASPECT_NAME)) {
validationAspectsBuilder.add(key);
} else {
aspectsToPrintBuilder.add(key);
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/BUILD b/src/main/java/com/google/devtools/build/lib/runtime/commands/BUILD
index 8ed4ede..4c7bd40 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/BUILD
@@ -36,7 +36,6 @@
"//src/main/java/com/google/devtools/build/lib/actions:commandline_item",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_options",
- "//src/main/java/com/google/devtools/build/lib/analysis:aspect_collection",
"//src/main/java/com/google/devtools/build/lib/analysis:blaze_version_info",
"//src/main/java/com/google/devtools/build/lib/analysis:config/build_configuration",
"//src/main/java/com/google/devtools/build/lib/analysis:config/build_options",
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/TestCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/TestCommand.java
index f02d132..17816ad 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/TestCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/TestCommand.java
@@ -19,7 +19,6 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.analysis.AspectCollection;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.config.CoreOptions;
import com.google.devtools.build.lib.buildtool.BuildRequest;
@@ -244,7 +243,7 @@
if (buildRequest.useValidationAspect()) {
validatedTargets =
buildResult.getSuccessfulAspects().stream()
- .filter(key -> AspectCollection.VALIDATION_ASPECT_NAME.equals(key.getAspectName()))
+ .filter(key -> BuildRequest.VALIDATION_ASPECT_NAME.equals(key.getAspectName()))
.map(AspectKey::getBaseConfiguredTargetKey)
.collect(ImmutableSet.toImmutableSet());
} else {
diff --git a/src/test/shell/integration/validation_actions_test.sh b/src/test/shell/integration/validation_actions_test.sh
index a7cd089..1f68bba 100755
--- a/src/test/shell/integration/validation_actions_test.sh
+++ b/src/test/shell/integration/validation_actions_test.sh
@@ -514,7 +514,9 @@
expect_log "Target //validation_actions:foo0 up-to-date:"
}
-function setup_validation_tool_aspect() {
+function test_validation_actions_in_rule_and_aspect() {
+ setup_test_project
+
mkdir -p aspect
cat > aspect/BUILD <<'EOF'
exports_files(["aspect_validation_tool"])
@@ -546,20 +548,10 @@
echo "aspect validation output" > $1
EOF
chmod +x aspect/aspect_validation_tool
-}
-
-function test_validation_actions_in_rule_and_aspect_no_use_validation_aspect() {
- setup_test_project
- setup_validation_tool_aspect
setup_passing_validation_action
bazel build --run_validations --aspects=//aspect:def.bzl%validation_aspect \
- --noexperimental_use_validation_aspect \
//validation_actions:foo0 >& "$TEST_log" || fail "Expected build to succeed"
- expect_log "Target //validation_actions:foo0 up-to-date:"
- expect_log "validation_actions/foo0.main"
- assert_exists bazel-bin/validation_actions/foo0.validation
- assert_exists bazel-bin/validation_actions/foo0.aspect_validation
cat > aspect/aspect_validation_tool <<'EOF'
#!/bin/bash
@@ -568,32 +560,6 @@
EOF
bazel build --run_validations --aspects=//aspect:def.bzl%validation_aspect \
- --noexperimental_use_validation_aspect \
- //validation_actions:foo0 >& "$TEST_log" && fail "Expected build to fail"
- expect_log "aspect validation failed!"
-}
-
-function test_validation_actions_in_rule_and_aspect_use_validation_aspect() {
- setup_test_project
- setup_validation_tool_aspect
- setup_passing_validation_action
-
- bazel build --run_validations --aspects=//aspect:def.bzl%validation_aspect \
- --experimental_use_validation_aspect \
- //validation_actions:foo0 >& "$TEST_log" || fail "Expected build to succeed"
- expect_log "Target //validation_actions:foo0 up-to-date:"
- expect_log "validation_actions/foo0.main"
- assert_exists bazel-bin/validation_actions/foo0.validation
- assert_exists bazel-bin/validation_actions/foo0.aspect_validation
-
- cat > aspect/aspect_validation_tool <<'EOF'
-#!/bin/bash
-echo "aspect validation failed!"
-exit 1
-EOF
-
- bazel build --run_validations --aspects=//aspect:def.bzl%validation_aspect \
- --experimental_use_validation_aspect \
//validation_actions:foo0 >& "$TEST_log" && fail "Expected build to fail"
expect_log "aspect validation failed!"
}