diff --git a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java index 4d5d2ebfa57c8d..31488ce1f47a1c 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java @@ -1277,7 +1277,10 @@ public Label label(Object input, StarlarkThread thread) throws EvalException { // environment across .bzl files. Hence, we opt for stack inspection. BazelModuleContext moduleContext = BazelModuleContext.ofInnermostBzlOrFail(thread, "Label()"); try { - return Label.parseWithPackageContext((String) input, moduleContext.packageContext()); + return Label.parseWithPackageContext( + (String) input, + moduleContext.packageContext(), + thread.getThreadLocal(Label.RepoMappingRecorder.class)); } catch (LabelSyntaxException e) { throw Starlark.errorf("invalid label in Label(): %s", e.getMessage()); } diff --git a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BUILD b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BUILD index d97a0305b5ce2c..0083f8057b24ad 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BUILD +++ b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BUILD @@ -220,6 +220,7 @@ java_library( "//src/main/java/com/google/devtools/build/lib/skyframe:client_environment_function", "//src/main/java/com/google/devtools/build/lib/skyframe:client_environment_value", "//src/main/java/com/google/devtools/build/lib/skyframe:precomputed_value", + "//src/main/java/com/google/devtools/build/lib/skyframe:repository_mapping_value", "//src/main/java/com/google/devtools/build/lib/skyframe:skyframe_cluster", "//src/main/java/com/google/devtools/build/lib/util", "//src/main/java/com/google/devtools/build/lib/util:os", diff --git a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileValue.java b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileValue.java index 21b02c479b76e7..8ac7fb38e77d64 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileValue.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileValue.java @@ -25,7 +25,6 @@ import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; import com.ryanharter.auto.value.gson.GenerateTypeAdapter; -import java.util.Arrays; import java.util.Map; /** @@ -118,36 +117,4 @@ public ImmutableList getModuleAndFlagsDiff( } return moduleDiff.build(); } - - /** Returns the differences between an extension and its locked data */ - public ImmutableList getModuleExtensionDiff( - ModuleExtensionId extensionId, - LockFileModuleExtension lockedExtension, - byte[] transitiveDigest, - boolean filesChanged, - ImmutableMap envVariables, - ImmutableList> extensionUsages, - ImmutableList> lockedExtensionUsages) { - - ImmutableList.Builder extDiff = new ImmutableList.Builder<>(); - if (!Arrays.equals(transitiveDigest, lockedExtension.getBzlTransitiveDigest())) { - extDiff.add( - "The implementation of the extension '" - + extensionId - + "' or one of its transitive .bzl files has changed"); - } - if (filesChanged) { - extDiff.add("One or more files the extension '" + extensionId + "' is using have changed"); - } - if (!extensionUsages.equals(lockedExtensionUsages)) { - extDiff.add("The usages of the extension '" + extensionId + "' have changed"); - } - if (!envVariables.equals(lockedExtension.getEnvVariables())) { - extDiff.add( - "The environment variables the extension '" - + extensionId - + "' depends on (or their values) have changed"); - } - return extDiff.build(); - } } diff --git a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/GsonTypeAdapterUtil.java b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/GsonTypeAdapterUtil.java index ce91c25a8b0d6b..808d83821d6291 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/GsonTypeAdapterUtil.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/GsonTypeAdapterUtil.java @@ -23,9 +23,12 @@ import com.google.auto.value.AutoValue; import com.google.common.base.Preconditions; import com.google.common.base.Splitter; +import com.google.common.collect.ImmutableTable; +import com.google.common.collect.Table; import com.google.devtools.build.lib.bazel.bzlmod.Version.ParseException; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.LabelSyntaxException; +import com.google.devtools.build.lib.cmdline.RepositoryName; import com.google.devtools.build.lib.vfs.Path; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -92,7 +95,7 @@ public ModuleKey read(JsonReader jsonReader) throws IOException { }; public static final TypeAdapter