From a517b46adb95b89589ab7f3ded524c4447927ed8 Mon Sep 17 00:00:00 2001 From: Fabian Meumertzheim Date: Mon, 12 Feb 2024 21:07:53 +0100 Subject: [PATCH] Mark `use_repo_rule` extension as reproducible Also fix two typos. --- .../build/lib/bazel/bzlmod/BazelLockFileModule.java | 4 ++-- .../build/lib/bazel/bzlmod/LockFileModuleExtension.java | 2 +- .../build/lib/bazel/bzlmod/ModuleExtensionMetadata.java | 8 ++++++++ .../lib/bazel/bzlmod/SingleExtensionEvalFunction.java | 4 ++-- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileModule.java b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileModule.java index 567a01bbea2c17..2d588414dd86dd 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileModule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileModule.java @@ -122,7 +122,7 @@ public void afterCommand() throws AbruptExitException { // Add the new resolved extensions for (var event : extensionResolutionEventsMap.values()) { LockFileModuleExtension extension = event.getModuleExtension(); - if (!extension.shouldLockExtesnsion()) { + if (!extension.shouldLockExtension()) { continue; } @@ -169,7 +169,7 @@ private boolean shouldKeepExtension( // If there is a new event for this extension, compare it with the existing ones ModuleExtensionResolutionEvent extEvent = extensionResolutionEventsMap.get(extensionId); if (extEvent != null) { - boolean doNotLockExtension = !extEvent.getModuleExtension().shouldLockExtesnsion(); + boolean doNotLockExtension = !extEvent.getModuleExtension().shouldLockExtension(); boolean dependencyOnOsChanged = lockedExtensionKey.getOs().isEmpty() != extEvent.getExtensionFactors().getOs().isEmpty(); boolean dependencyOnArchChanged = diff --git a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/LockFileModuleExtension.java b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/LockFileModuleExtension.java index 88cdd5c2e7888d..1443189e389a42 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/LockFileModuleExtension.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/LockFileModuleExtension.java @@ -54,7 +54,7 @@ public static Builder builder() { public abstract Builder toBuilder(); - public boolean shouldLockExtesnsion() { + public boolean shouldLockExtension() { return getModuleExtensionMetadata().isEmpty() || !getModuleExtensionMetadata().get().getReproducible(); } diff --git a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionMetadata.java b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionMetadata.java index 539d7db8b26eaf..2f18222a89686a 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionMetadata.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionMetadata.java @@ -55,6 +55,14 @@ @AutoValue @GenerateTypeAdapter public abstract class ModuleExtensionMetadata implements StarlarkValue { + + static final ModuleExtensionMetadata REPRODUCIBLE = + create( + /* explicitRootModuleDirectDeps= */ null, + /* explicitRootModuleDirectDevDeps= */ null, + UseAllRepos.NO, + /* reproducible= */ true); + @Nullable abstract ImmutableSet getExplicitRootModuleDirectDeps(); diff --git a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/SingleExtensionEvalFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/SingleExtensionEvalFunction.java index f709892010c453..38ca1ba625b32d 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/SingleExtensionEvalFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/SingleExtensionEvalFunction.java @@ -713,7 +713,7 @@ public RunModuleExtensionResult run( ModuleExtensionId extensionId) throws InterruptedException, SingleExtensionEvalFunctionException { var generatedRepoSpecs = ImmutableMap.builderWithExpectedSize(repos.size()); - // Instiantiate the repos one by one. + // Instantiate the repos one by one. for (InnateExtensionRepo repo : repos) { Object exported = repo.loadedBzl().getModule().getGlobal(repo.ruleName()); if (exported == null) { @@ -790,7 +790,7 @@ public RunModuleExtensionResult run( return RunModuleExtensionResult.create( ImmutableMap.of(), generatedRepoSpecs.buildOrThrow(), - Optional.empty(), + Optional.of(ModuleExtensionMetadata.REPRODUCIBLE), ImmutableTable.of()); } }