Flip --enable_bzlmod to true
Bazel tests status:
- Bzlmod disabled:
- AnalysisTestCase: to be migrated
- ConfigurationTestCase: to be migrated
- ConfigCommandTest: to be migrated, probably blocked by a bug
- Bzlmod enabled:
- BuildViewTestCase: migrated at https://github.com/bazelbuild/bazel/commit/d51144c811bc4360aad812deae557e7c7fc32fc2
- Java integration tests migrated at https://github.com/bazelbuild/bazel/commit/8d0471137361405d4903a9c24122b3cf327111b2
- Shell integration tests migrated at https://github.com/bazelbuild/bazel/commit/175a18dc9f58ba40e287336e06a26617a0becd0a (Bzlmod disabled in some tests)
- Python integration tests migrated at https://github.com/bazelbuild/bazel/commit/50c8375982085d9cf80650a62ac7065ba5f46259 (Bzlmod disabled in some tests)
- BuildIntegrationTestCase: migrated in this change
- Other Java unit tests migrated in this change
Issues identified:
- cc_shared_library doesn't work well with Bzlmod: https://github.com/bazelbuild/bazel/issues/19822
- `bazel config` doesn't work well with Bzlmod: https://github.com/bazelbuild/bazel/issues/19823
Fixes https://github.com/bazelbuild/bazel/issues/18958
Tracking migration of remaining test cases in https://github.com/bazelbuild/bazel/issues/19824
RELNOTES[INC]: Bzlmod is enabled by default, please consider migrating your external dependencies from WORKSPACE to MODULE.bazel. Find more details at https://github.com/bazelbuild/bazel/issues/18958
PiperOrigin-RevId: 573827480
Change-Id: I097b4bd7caafc996b034284ee688b8f3d2bca1f7
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
index db18bf9..c9f8fb7 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.bazel;
+import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.google.common.base.Supplier;
@@ -162,11 +163,19 @@
@Nullable private CredentialModule credentialModule;
+ private ImmutableMap<String, NonRegistryOverride> builtinModules = null;
+
public BazelRepositoryModule() {
this.starlarkRepositoryFunction = new StarlarkRepositoryFunction(downloadManager);
this.repositoryHandlers = repositoryRules();
}
+ @VisibleForTesting
+ public BazelRepositoryModule(ImmutableMap<String, NonRegistryOverride> builtinModules) {
+ this();
+ this.builtinModules = builtinModules;
+ }
+
private static DetailedExitCode detailedExitCode(String message, ExternalRepository.Code code) {
return DetailedExitCode.of(
FailureDetail.newBuilder()
@@ -234,37 +243,39 @@
singleExtensionEvalFunction =
new SingleExtensionEvalFunction(directories, clientEnvironmentSupplier, downloadManager);
- ImmutableMap<String, NonRegistryOverride> builtinModules =
- ImmutableMap.of(
- // @bazel_tools is a special repo that we pull from the extracted install dir.
- "bazel_tools",
- LocalPathOverride.create(
- directories.getEmbeddedBinariesRoot().getChild("embedded_tools").getPathString()),
- // @local_config_platform is currently generated by the native repo rule
- // local_config_platform
- // It has to be a special repo for now because:
- // - It's embedded in local_config_platform.WORKSPACE and depended on by many
- // toolchains.
- // - The canonical name "local_config_platform" is hardcoded in Bazel code.
- // See {@link PlatformOptions}
- "local_config_platform",
- new NonRegistryOverride() {
- @Override
- public RepoSpec getRepoSpec(RepositoryName repoName) {
- return RepoSpec.builder()
- .setRuleClassName("local_config_platform")
- .setAttributes(
- AttributeValues.create(ImmutableMap.of("name", repoName.getName())))
- .build();
- }
+ if (builtinModules == null) {
+ builtinModules =
+ ImmutableMap.of(
+ // @bazel_tools is a special repo that we pull from the extracted install dir.
+ "bazel_tools",
+ LocalPathOverride.create(
+ directories.getEmbeddedBinariesRoot().getChild("embedded_tools").getPathString()),
+ // @local_config_platform is currently generated by the native repo rule
+ // local_config_platform
+ // It has to be a special repo for now because:
+ // - It's embedded in local_config_platform.WORKSPACE and depended on by many
+ // toolchains.
+ // - The canonical name "local_config_platform" is hardcoded in Bazel code.
+ // See {@link PlatformOptions}
+ "local_config_platform",
+ new NonRegistryOverride() {
+ @Override
+ public RepoSpec getRepoSpec(RepositoryName repoName) {
+ return RepoSpec.builder()
+ .setRuleClassName("local_config_platform")
+ .setAttributes(
+ AttributeValues.create(ImmutableMap.of("name", repoName.getName())))
+ .build();
+ }
- @Override
- public ResolutionReason getResolutionReason() {
- // NOTE: It is not exactly a LOCAL_PATH_OVERRIDE, but there is no inspection
- // ResolutionReason for builtin modules
- return ResolutionReason.LOCAL_PATH_OVERRIDE;
- }
- });
+ @Override
+ public ResolutionReason getResolutionReason() {
+ // NOTE: It is not exactly a LOCAL_PATH_OVERRIDE, but there is no inspection
+ // ResolutionReason for builtin modules
+ return ResolutionReason.LOCAL_PATH_OVERRIDE;
+ }
+ });
+ }
builder
.addSkyFunction(SkyFunctions.REPOSITORY_DIRECTORY, repositoryDelegatorFunction)
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelDepGraphValue.java b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelDepGraphValue.java
index 271a077..4a7b597 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelDepGraphValue.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelDepGraphValue.java
@@ -15,6 +15,8 @@
package com.google.devtools.build.lib.bazel.bzlmod;
+import static com.google.common.collect.ImmutableMap.toImmutableMap;
+
import com.google.auto.value.AutoValue;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
@@ -49,6 +51,32 @@
extensionUniqueNames);
}
+ public static BazelDepGraphValue createEmptyDepGraph() {
+ Module root =
+ Module.builder()
+ .setName("")
+ .setVersion(Version.EMPTY)
+ .setRepoName("")
+ .setKey(ModuleKey.ROOT)
+ .setExtensionUsages(ImmutableList.of())
+ .setExecutionPlatformsToRegister(ImmutableList.of())
+ .setToolchainsToRegister(ImmutableList.of())
+ .build();
+
+ ImmutableMap<ModuleKey, Module> emptyDepGraph = ImmutableMap.of(ModuleKey.ROOT, root);
+
+ ImmutableMap<RepositoryName, ModuleKey> canonicalRepoNameLookup =
+ emptyDepGraph.keySet().stream()
+ .collect(toImmutableMap(ModuleKey::getCanonicalRepoName, key -> key));
+
+ return BazelDepGraphValue.create(
+ emptyDepGraph,
+ canonicalRepoNameLookup,
+ ImmutableList.of(),
+ ImmutableTable.of(),
+ ImmutableMap.of());
+ }
+
/**
* The post-selection dep graph. Must have BFS iteration order, starting from the root module. For
* any KEY in the returned map, it's guaranteed that {@code depGraph[KEY].getKey() == KEY}.
diff --git a/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java b/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java
index e288f72..8f3d8d7 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java
@@ -197,7 +197,7 @@
@Option(
name = "enable_bzlmod",
oldName = "experimental_enable_bzlmod",
- defaultValue = "false",
+ defaultValue = "true",
documentationCategory = OptionDocumentationCategory.STARLARK_SEMANTICS,
effectTags = OptionEffectTag.LOADING_AND_ANALYSIS,
help =
@@ -821,7 +821,7 @@
public static final String EXPERIMENTAL_ENABLE_ANDROID_MIGRATION_APIS =
"-experimental_enable_android_migration_apis";
public static final String EXPERIMENTAL_ENABLE_SCL_DIALECT = "-experimental_enable_scl_dialect";
- public static final String ENABLE_BZLMOD = "-enable_bzlmod";
+ public static final String ENABLE_BZLMOD = "+enable_bzlmod";
public static final String EXPERIMENTAL_ISOLATED_EXTENSION_USAGES =
"-experimental_isolated_extension_usages";
public static final String INCOMPATIBLE_EXISTING_RULES_IMMUTABLE_VIEW =
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunction.java
index a23e2a7..69323ad 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunction.java
@@ -60,6 +60,10 @@
if (enableBzlmod) {
if (StarlarkBuiltinsValue.isBuiltinsRepo(repositoryName)) {
+ // If tools repo is not set, repo mapping for @_builtins should be always fallback.
+ if (ruleClassProvider.getToolsRepository() == null) {
+ return RepositoryMappingValue.createForWorkspaceRepo(RepositoryMapping.ALWAYS_FALLBACK);
+ }
// Builtins .bzl files should use the repo mapping of @bazel_tools, to get access to repos
// such as @platforms.
RepositoryMappingValue bazelToolsMapping =
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index 5b3beea..12d2edb 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -99,6 +99,7 @@
import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
import com.google.devtools.build.lib.analysis.constraints.RuleContextConstraintSemantics;
import com.google.devtools.build.lib.analysis.producers.ConfiguredTargetAndDataProducer;
+import com.google.devtools.build.lib.bazel.bzlmod.BazelDepGraphValue;
import com.google.devtools.build.lib.bazel.bzlmod.BzlmodRepoRuleValue;
import com.google.devtools.build.lib.bazel.repository.RepositoryOptions;
import com.google.devtools.build.lib.bugreport.BugReporter;
@@ -672,6 +673,16 @@
throw new IllegalStateException("supposed to be unused");
});
map.put(SkyFunctions.EXTERNAL_PACKAGE, new ExternalPackageFunction(externalPackageHelper));
+ // Inject an empty default BAZEL_DEP_GRAPH SkyFunction for Blaze, it'll be overridden by
+ // BazelRepositoryModule in Bazel
+ map.put(
+ SkyFunctions.BAZEL_DEP_GRAPH,
+ new SkyFunction() {
+ @Override
+ public SkyValue compute(SkyKey skyKey, Environment env) {
+ return BazelDepGraphValue.createEmptyDepGraph();
+ }
+ });
map.put(
BzlmodRepoRuleValue.BZLMOD_REPO_RULE,
new BzlmodRepoRuleFunction(ruleClassProvider, directories));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BUILD
index 9ba1d39..eb62abe 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BUILD
@@ -80,6 +80,9 @@
":AbstractPackageLoader",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
"//src/main/java/com/google/devtools/build/lib/bazel:repository_module",
+ "//src/main/java/com/google/devtools/build/lib/bazel/bzlmod:registry",
+ "//src/main/java/com/google/devtools/build/lib/bazel/bzlmod:resolution_impl",
+ "//src/main/java/com/google/devtools/build/lib/bazel/repository:repository_options",
"//src/main/java/com/google/devtools/build/lib/bazel/repository/cache",
"//src/main/java/com/google/devtools/build/lib/bazel/repository/downloader",
"//src/main/java/com/google/devtools/build/lib/bazel/repository/starlark",
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
index 3561a99..81338f6 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
@@ -18,6 +18,14 @@
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.bazel.BazelRepositoryModule;
+import com.google.devtools.build.lib.bazel.bzlmod.BazelDepGraphFunction;
+import com.google.devtools.build.lib.bazel.bzlmod.BazelLockFileFunction;
+import com.google.devtools.build.lib.bazel.bzlmod.BazelModuleResolutionFunction;
+import com.google.devtools.build.lib.bazel.bzlmod.ModuleFileFunction;
+import com.google.devtools.build.lib.bazel.bzlmod.RegistryFactory;
+import com.google.devtools.build.lib.bazel.bzlmod.RegistryFactoryImpl;
+import com.google.devtools.build.lib.bazel.bzlmod.YankedVersionsUtil;
+import com.google.devtools.build.lib.bazel.repository.RepositoryOptions;
import com.google.devtools.build.lib.bazel.repository.cache.RepositoryCache;
import com.google.devtools.build.lib.bazel.repository.downloader.DownloadManager;
import com.google.devtools.build.lib.bazel.repository.downloader.HttpDownloader;
@@ -98,7 +106,23 @@
RepositoryDelegatorFunction.RESOLVED_FILE_INSTEAD_OF_WORKSPACE, Optional.empty()),
PrecomputedValue.injected(
RepositoryDelegatorFunction.DEPENDENCY_FOR_UNCONDITIONAL_FETCHING,
- RepositoryDelegatorFunction.DONT_FETCH_UNCONDITIONALLY));
+ RepositoryDelegatorFunction.DONT_FETCH_UNCONDITIONALLY),
+ PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of()),
+ PrecomputedValue.injected(
+ RepositoryDelegatorFunction.DEPENDENCY_FOR_UNCONDITIONAL_CONFIGURING,
+ RepositoryDelegatorFunction.DONT_FETCH_UNCONDITIONALLY),
+ PrecomputedValue.injected(ModuleFileFunction.REGISTRIES, ImmutableList.of()),
+ PrecomputedValue.injected(ModuleFileFunction.IGNORE_DEV_DEPS, false),
+ PrecomputedValue.injected(
+ BazelModuleResolutionFunction.CHECK_DIRECT_DEPENDENCIES,
+ RepositoryOptions.CheckDirectDepsMode.OFF),
+ PrecomputedValue.injected(
+ BazelModuleResolutionFunction.BAZEL_COMPATIBILITY_MODE,
+ RepositoryOptions.BazelCompatibilityMode.OFF),
+ PrecomputedValue.injected(
+ BazelLockFileFunction.LOCKFILE_MODE, RepositoryOptions.LockfileMode.OFF),
+ PrecomputedValue.injected(
+ YankedVersionsUtil.ALLOWED_YANKED_VERSIONS, ImmutableList.of()));
}
@Override
@@ -107,6 +131,19 @@
RepositoryCache repositoryCache = new RepositoryCache();
HttpDownloader httpDownloader = new HttpDownloader();
DownloadManager downloadManager = new DownloadManager(repositoryCache, httpDownloader);
+ RegistryFactory registryFactory =
+ new RegistryFactoryImpl(
+ directories.getWorkspace(), downloadManager, Suppliers.ofInstance(ImmutableMap.of()));
+
+ // Allow tests to override SkyFunctions.MODULE_FILE to use fake registry
+ if (!this.extraSkyFunctions.containsKey(SkyFunctions.MODULE_FILE)) {
+ addExtraSkyFunctions(
+ ImmutableMap.of(
+ SkyFunctions.MODULE_FILE,
+ new ModuleFileFunction(
+ registryFactory, directories.getWorkspace(), ImmutableMap.of())));
+ }
+
addExtraSkyFunctions(
ImmutableMap.<SkyFunctionName, SkyFunction>builder()
.put(
@@ -129,7 +166,9 @@
ImmutableMap::of,
directories,
EXTERNAL_PACKAGE_HELPER))
- .build());
+ .put(SkyFunctions.BAZEL_DEP_GRAPH, new BazelDepGraphFunction())
+ .put(SkyFunctions.BAZEL_MODULE_RESOLUTION, new BazelModuleResolutionFunction())
+ .buildOrThrow());
return new BazelPackageLoader(this);
}
diff --git a/src/main/starlark/tests/builtins_bzl/cc_builtin_tests.sh b/src/main/starlark/tests/builtins_bzl/cc_builtin_tests.sh
index 3cd8d1d..9d3c5ee 100755
--- a/src/main/starlark/tests/builtins_bzl/cc_builtin_tests.sh
+++ b/src/main/starlark/tests/builtins_bzl/cc_builtin_tests.sh
@@ -52,6 +52,7 @@
esac
# TODO: cc_shared_library doesn't work well with Bzlmod.
+# https://github.com/bazelbuild/bazel/issues/19822
disable_bzlmod
function test_starlark_cc() {
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java
index fec50b1..d6d2d28 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java
@@ -139,6 +139,7 @@
config.create("protobuf_workspace/WORKSPACE");
config.create("protobuf_workspace/MODULE.bazel", "module(name='com_google_protobuf')");
config.overwrite("WORKSPACE", workspaceContents.toArray(new String[0]));
+ config.overwrite("MODULE.bazel");
/* The rest of platforms is initialized in {@link MockPlatformSupport}. */
config.create("platforms_workspace/WORKSPACE", "workspace(name = 'platforms')");
config.create("platforms_workspace/MODULE.bazel", "module(name = 'platforms')");
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java
index fdcfa58..1a832dd 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java
@@ -27,6 +27,10 @@
import com.google.devtools.build.lib.bazel.bzlmod.RepoSpecFunction;
import com.google.devtools.build.lib.bazel.bzlmod.SingleExtensionEvalFunction;
import com.google.devtools.build.lib.bazel.bzlmod.SingleExtensionUsagesFunction;
+import com.google.devtools.build.lib.bazel.bzlmod.YankedVersionsUtil;
+import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.BazelCompatibilityMode;
+import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.CheckDirectDepsMode;
+import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.LockfileMode;
import com.google.devtools.build.lib.bazel.repository.downloader.DownloadManager;
import com.google.devtools.build.lib.bazel.repository.starlark.StarlarkRepositoryFunction;
import com.google.devtools.build.lib.bazel.rules.android.AndroidNdkRepositoryFunction;
@@ -43,6 +47,7 @@
import com.google.devtools.build.lib.rules.repository.RepositoryFunction;
import com.google.devtools.build.lib.skyframe.BazelSkyframeExecutorConstants;
import com.google.devtools.build.lib.skyframe.ClientEnvironmentFunction;
+import com.google.devtools.build.lib.skyframe.PrecomputedValue;
import com.google.devtools.build.lib.skyframe.SkyFunctions;
import com.google.devtools.build.lib.skyframe.packages.PackageFactoryBuilderWithSkyframeForTesting;
import com.google.devtools.build.lib.testutil.TestConstants;
@@ -52,6 +57,7 @@
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.List;
+import java.util.Optional;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import org.mockito.Mockito;
@@ -69,6 +75,16 @@
}
}
+ public static AnalysisMock getAnalysisMockWithoutBuiltinModules() {
+ return new AnalysisMock.Delegate(AnalysisMock.get()) {
+ @Override
+ public ImmutableMap<String, NonRegistryOverride> getBuiltinModules(
+ BlazeDirectories directories) {
+ return ImmutableMap.of();
+ }
+ };
+ }
+
@Override
public String getProductName() {
return TestConstants.PRODUCT_NAME;
@@ -82,7 +98,8 @@
public PackageFactoryBuilderWithSkyframeForTesting getPackageFactoryBuilderForTesting(
BlazeDirectories directories) {
return super.getPackageFactoryBuilderForTesting(directories)
- .setExtraSkyFunctions(getSkyFunctions(directories));
+ .setExtraSkyFunctions(getSkyFunctions(directories))
+ .setExtraPrecomputeValues(getPrecomputedValues());
}
/**
@@ -90,7 +107,7 @@
* configuration.
*/
public void setupMockClient(MockToolsConfig mockToolsConfig) throws IOException {
- List<String> workspaceContents = getWorkspaceContents(mockToolsConfig);
+ ImmutableList<String> workspaceContents = getWorkspaceContents(mockToolsConfig);
setupMockClient(mockToolsConfig, workspaceContents);
}
@@ -165,6 +182,29 @@
.buildOrThrow();
}
+ public ImmutableList<PrecomputedValue.Injected> getPrecomputedValues() {
+ // PrecomputedValues required by SkyFunctions in getSkyFunctions()
+ return ImmutableList.of(
+ PrecomputedValue.injected(PrecomputedValue.REPO_ENV, ImmutableMap.of()),
+ PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of()),
+ PrecomputedValue.injected(
+ RepositoryDelegatorFunction.REPOSITORY_OVERRIDES, ImmutableMap.of()),
+ PrecomputedValue.injected(
+ RepositoryDelegatorFunction.RESOLVED_FILE_INSTEAD_OF_WORKSPACE, Optional.empty()),
+ PrecomputedValue.injected(
+ RepositoryDelegatorFunction.DEPENDENCY_FOR_UNCONDITIONAL_FETCHING,
+ RepositoryDelegatorFunction.DONT_FETCH_UNCONDITIONALLY),
+ PrecomputedValue.injected(ModuleFileFunction.REGISTRIES, ImmutableList.of()),
+ PrecomputedValue.injected(ModuleFileFunction.IGNORE_DEV_DEPS, false),
+ PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of()),
+ PrecomputedValue.injected(YankedVersionsUtil.ALLOWED_YANKED_VERSIONS, ImmutableList.of()),
+ PrecomputedValue.injected(
+ BazelModuleResolutionFunction.CHECK_DIRECT_DEPENDENCIES, CheckDirectDepsMode.WARNING),
+ PrecomputedValue.injected(
+ BazelModuleResolutionFunction.BAZEL_COMPATIBILITY_MODE, BazelCompatibilityMode.ERROR),
+ PrecomputedValue.injected(BazelLockFileFunction.LOCKFILE_MODE, LockfileMode.UPDATE));
+ }
+
// Allow subclasses to add extra repository functions.
public abstract void addExtraRepositoryFunctions(
ImmutableMap.Builder<String, RepositoryFunction> repositoryHandlers);
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
index b5d6f3c..d09d687 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java
@@ -351,6 +351,8 @@
}
if (defaultFlags().contains(Flag.ENABLE_BZLMOD)) {
optionsParser.parse("--enable_bzlmod");
+ } else {
+ optionsParser.parse("--noenable_bzlmod");
}
optionsParser.parse(args);
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
index f123d75..f3d92c2 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
@@ -106,14 +106,8 @@
import com.google.devtools.build.lib.analysis.starlark.StarlarkTransition.TransitionException;
import com.google.devtools.build.lib.analysis.test.BaselineCoverageAction;
import com.google.devtools.build.lib.analysis.test.InstrumentedFilesInfo;
-import com.google.devtools.build.lib.bazel.bzlmod.BazelLockFileFunction;
-import com.google.devtools.build.lib.bazel.bzlmod.BazelModuleResolutionFunction;
import com.google.devtools.build.lib.bazel.bzlmod.FakeRegistry;
import com.google.devtools.build.lib.bazel.bzlmod.ModuleFileFunction;
-import com.google.devtools.build.lib.bazel.bzlmod.YankedVersionsUtil;
-import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.BazelCompatibilityMode;
-import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.CheckDirectDepsMode;
-import com.google.devtools.build.lib.bazel.repository.RepositoryOptions.LockfileMode;
import com.google.devtools.build.lib.buildtool.BuildRequestOptions;
import com.google.devtools.build.lib.clock.BlazeClock;
import com.google.devtools.build.lib.cmdline.Label;
@@ -299,19 +293,7 @@
getOutputPath().createDirectoryAndParents();
ImmutableList<PrecomputedValue.Injected> extraPrecomputedValues =
ImmutableList.<PrecomputedValue.Injected>builder()
- .add(PrecomputedValue.injected(PrecomputedValue.REPO_ENV, ImmutableMap.of()))
- .add(PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of()))
- .add(
- PrecomputedValue.injected(
- RepositoryDelegatorFunction.REPOSITORY_OVERRIDES, ImmutableMap.of()))
- .add(
- PrecomputedValue.injected(
- RepositoryDelegatorFunction.RESOLVED_FILE_INSTEAD_OF_WORKSPACE,
- Optional.empty()))
- .add(
- PrecomputedValue.injected(
- RepositoryDelegatorFunction.DEPENDENCY_FOR_UNCONDITIONAL_FETCHING,
- RepositoryDelegatorFunction.DONT_FETCH_UNCONDITIONALLY))
+ .addAll(analysisMock.getPrecomputedValues())
.add(
PrecomputedValue.injected(
BuildInfoCollectionFunction.BUILD_INFO_FACTORIES,
@@ -319,21 +301,6 @@
.add(
PrecomputedValue.injected(
ModuleFileFunction.REGISTRIES, ImmutableList.of(registry.getUrl())))
- .add(PrecomputedValue.injected(ModuleFileFunction.IGNORE_DEV_DEPS, false))
- .add(PrecomputedValue.injected(ModuleFileFunction.MODULE_OVERRIDES, ImmutableMap.of()))
- .add(
- PrecomputedValue.injected(
- YankedVersionsUtil.ALLOWED_YANKED_VERSIONS, ImmutableList.of()))
- .add(
- PrecomputedValue.injected(
- BazelModuleResolutionFunction.CHECK_DIRECT_DEPENDENCIES,
- CheckDirectDepsMode.WARNING))
- .add(
- PrecomputedValue.injected(
- BazelModuleResolutionFunction.BAZEL_COMPATIBILITY_MODE,
- BazelCompatibilityMode.ERROR))
- .add(
- PrecomputedValue.injected(BazelLockFileFunction.LOCKFILE_MODE, LockfileMode.UPDATE))
.addAll(extraPrecomputedValues())
.build();
PackageFactory.BuilderForTesting pkgFactoryBuilder =
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java
index 93e519c..1b024e3 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java
@@ -146,10 +146,14 @@
PackageOptions packageOptions = Options.getDefaults(PackageOptions.class);
packageOptions.showLoadingProgress = true;
packageOptions.globbingThreads = 7;
+ BuildLanguageOptions options = Options.getDefaults(BuildLanguageOptions.class);
+ // TODO: enable Bzlmod for this test case
+ // https://github.com/bazelbuild/bazel/issues/19824
+ options.enableBzlmod = false;
skyframeExecutor.preparePackageLoading(
pkgLocator,
packageOptions,
- Options.getDefaults(BuildLanguageOptions.class),
+ options,
UUID.randomUUID(),
ImmutableMap.of(),
QuiescingExecutorsImpl.forTesting(),
diff --git a/src/test/java/com/google/devtools/build/lib/buildtool/KeepGoingTest.java b/src/test/java/com/google/devtools/build/lib/buildtool/KeepGoingTest.java
index 41ef1e8..1e3daca 100644
--- a/src/test/java/com/google/devtools/build/lib/buildtool/KeepGoingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/buildtool/KeepGoingTest.java
@@ -259,7 +259,7 @@
assertBuildFailedExceptionFromBuilding(
"command succeeded, but not all targets were analyzed", "//a", "//b");
events.assertContainsError(
- "in srcs attribute of cc_library rule @//a:a: source file '@//a:missing.foo' is misplaced"
+ "in srcs attribute of cc_library rule @@//a:a: source file '@@//a:missing.foo' is misplaced"
+ " here");
events.assertContainsInfo("Analysis succeeded for only 1 of 2 top-level targets");
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 eb8a5b0..cc091df 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
@@ -604,7 +604,6 @@
.addBlazeModule(new OutputFilteringModule())
.addBlazeModule(connectivityModule)
.addBlazeModule(new SkymeldModule())
- .addBlazeModule(getMockBazelRepositoryModule())
.addBlazeModule(new CredentialModule());
getSpawnModules().forEach(builder::addBlazeModule);
builder
@@ -617,7 +616,10 @@
builder
.addBlazeModule(new NoSpawnCacheModule())
.addBlazeModule(new WorkerModule())
- .addBlazeModule(new BazelRepositoryModule());
+ .addBlazeModule(
+ new BazelRepositoryModule(AnalysisMock.get().getBuiltinModules(directories)));
+ } else {
+ builder.addBlazeModule(getMockBazelRepositoryModule());
}
return builder;
}
diff --git a/src/test/java/com/google/devtools/build/lib/cmdline/LabelTest.java b/src/test/java/com/google/devtools/build/lib/cmdline/LabelTest.java
index 5e0a4cb..0650132 100644
--- a/src/test/java/com/google/devtools/build/lib/cmdline/LabelTest.java
+++ b/src/test/java/com/google/devtools/build/lib/cmdline/LabelTest.java
@@ -484,11 +484,11 @@
@Test
public void starlarkStrAndRepr() throws Exception {
Label label = Label.parseCanonical("//x");
- assertThat(Starlark.str(label, StarlarkSemantics.DEFAULT)).isEqualTo("@//x:x");
+ assertThat(Starlark.str(label, StarlarkSemantics.DEFAULT)).isEqualTo("@@//x:x");
assertThat(Starlark.repr(label)).isEqualTo("Label(\"//x:x\")");
label = Label.parseCanonical("@hello//x");
- assertThat(Starlark.str(label, StarlarkSemantics.DEFAULT)).isEqualTo("@hello//x:x");
+ assertThat(Starlark.str(label, StarlarkSemantics.DEFAULT)).isEqualTo("@@hello//x:x");
assertThat(Starlark.repr(label)).isEqualTo("Label(\"@hello//x:x\")");
}
@@ -497,6 +497,7 @@
StarlarkSemantics semantics =
StarlarkSemantics.builder()
.setBool(BuildLanguageOptions.INCOMPATIBLE_UNAMBIGUOUS_LABEL_STRINGIFICATION, false)
+ .setBool(BuildLanguageOptions.ENABLE_BZLMOD, false)
.build();
assertThat(Starlark.str(Label.parseCanonical("//x"), semantics)).isEqualTo("//x:x");
assertThat(Starlark.str(Label.parseCanonical("@x//y"), semantics)).isEqualTo("@x//y:y");
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/BuildFileModificationTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/BuildFileModificationTest.java
index 529d960..2dbebbb 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/BuildFileModificationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/BuildFileModificationTest.java
@@ -15,7 +15,6 @@
import static com.google.common.truth.Truth.assertThat;
-import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.ActionKeyContext;
@@ -28,10 +27,8 @@
import com.google.devtools.build.lib.packages.Package;
import com.google.devtools.build.lib.packages.PackageFactory;
import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions;
-import com.google.devtools.build.lib.rules.repository.RepositoryDelegatorFunction;
import com.google.devtools.build.lib.runtime.QuiescingExecutorsImpl;
import com.google.devtools.build.lib.skyframe.BazelSkyframeExecutorConstants;
-import com.google.devtools.build.lib.skyframe.PrecomputedValue;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.testutil.FoundationTestCase;
import com.google.devtools.build.lib.testutil.ManualClock;
@@ -48,7 +45,6 @@
import com.google.devtools.build.lib.vfs.inmemoryfs.InMemoryFileSystem;
import com.google.devtools.common.options.OptionsParser;
import java.nio.charset.StandardCharsets;
-import java.util.Optional;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -74,7 +70,7 @@
@Before
public final void initializeSkyframeExecutor() {
- AnalysisMock analysisMock = AnalysisMock.get();
+ AnalysisMock analysisMock = AnalysisMock.getAnalysisMockWithoutBuiltinModules();
ConfiguredRuleClassProvider ruleClassProvider = analysisMock.createRuleClassProvider();
BlazeDirectories directories =
new BlazeDirectories(
@@ -95,10 +91,7 @@
.setExtraSkyFunctions(analysisMock.getSkyFunctions(directories))
.setSyscallCache(SyscallCache.NO_CACHE)
.build();
- skyframeExecutor.injectExtraPrecomputedValues(
- ImmutableList.of(
- PrecomputedValue.injected(
- RepositoryDelegatorFunction.RESOLVED_FILE_INSTEAD_OF_WORKSPACE, Optional.empty())));
+ skyframeExecutor.injectExtraPrecomputedValues(analysisMock.getPrecomputedValues());
SkyframeExecutorTestHelper.process(skyframeExecutor);
OptionsParser parser =
OptionsParser.builder()
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java
index 403bf50..c659e3e 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/LoadingPhaseRunnerTest.java
@@ -47,12 +47,10 @@
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions;
import com.google.devtools.build.lib.packages.util.MockToolsConfig;
-import com.google.devtools.build.lib.rules.repository.RepositoryDelegatorFunction;
import com.google.devtools.build.lib.runtime.QuiescingExecutorsImpl;
import com.google.devtools.build.lib.server.FailureDetails.PackageLoading;
import com.google.devtools.build.lib.skyframe.BazelSkyframeExecutorConstants;
import com.google.devtools.build.lib.skyframe.PatternExpandingError;
-import com.google.devtools.build.lib.skyframe.PrecomputedValue;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.skyframe.TargetPatternPhaseValue;
import com.google.devtools.build.lib.testutil.ManualClock;
@@ -80,7 +78,6 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -1342,7 +1339,7 @@
this.workspace = fs.getPath("/workspace");
workspace.createDirectory();
mockToolsConfig = new MockToolsConfig(workspace);
- AnalysisMock analysisMock = AnalysisMock.get();
+ AnalysisMock analysisMock = AnalysisMock.getAnalysisMockWithoutBuiltinModules();
analysisMock.setupMockClient(mockToolsConfig);
BlazeDirectories directories =
new BlazeDirectories(
@@ -1380,11 +1377,7 @@
packageOptions.defaultVisibility = RuleVisibility.PRIVATE;
packageOptions.showLoadingProgress = true;
packageOptions.globbingThreads = 7;
- skyframeExecutor.injectExtraPrecomputedValues(
- ImmutableList.of(
- PrecomputedValue.injected(
- RepositoryDelegatorFunction.RESOLVED_FILE_INSTEAD_OF_WORKSPACE,
- Optional.empty())));
+ skyframeExecutor.injectExtraPrecomputedValues(analysisMock.getPrecomputedValues());
skyframeExecutor.preparePackageLoading(
pkgLocator,
packageOptions,
diff --git a/src/test/java/com/google/devtools/build/lib/pkgcache/PackageLoadingTest.java b/src/test/java/com/google/devtools/build/lib/pkgcache/PackageLoadingTest.java
index 34fd1a2..3c0c67e 100644
--- a/src/test/java/com/google/devtools/build/lib/pkgcache/PackageLoadingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/pkgcache/PackageLoadingTest.java
@@ -38,11 +38,9 @@
import com.google.devtools.build.lib.packages.PackageFactory;
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions;
-import com.google.devtools.build.lib.rules.repository.RepositoryDelegatorFunction;
import com.google.devtools.build.lib.runtime.QuiescingExecutorsImpl;
import com.google.devtools.build.lib.server.FailureDetails.PackageLoading;
import com.google.devtools.build.lib.skyframe.BazelSkyframeExecutorConstants;
-import com.google.devtools.build.lib.skyframe.PrecomputedValue;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.testutil.FoundationTestCase;
import com.google.devtools.build.lib.testutil.MoreAsserts;
@@ -55,7 +53,6 @@
import com.google.devtools.build.lib.vfs.SyscallCache;
import com.google.devtools.common.options.OptionsParser;
import java.io.IOException;
-import java.util.Optional;
import java.util.UUID;
import net.starlark.java.syntax.StarlarkFile;
import org.junit.Before;
@@ -80,7 +77,7 @@
* this test performs, and the results compared to SkyFrame's result.
*/
private void initializeSkyframeExecutor(boolean doPackageLoadingChecks) throws Exception {
- AnalysisMock analysisMock = AnalysisMock.get();
+ AnalysisMock analysisMock = AnalysisMock.getAnalysisMockWithoutBuiltinModules();
ConfiguredRuleClassProvider ruleClassProvider = analysisMock.createRuleClassProvider();
BlazeDirectories directories =
new BlazeDirectories(
@@ -118,10 +115,7 @@
BazelSkyframeExecutorConstants.BUILD_FILES_BY_PRIORITY);
packageOptions.showLoadingProgress = true;
packageOptions.globbingThreads = 7;
- skyframeExecutor.injectExtraPrecomputedValues(
- ImmutableList.of(
- PrecomputedValue.injected(
- RepositoryDelegatorFunction.RESOLVED_FILE_INSTEAD_OF_WORKSPACE, Optional.empty())));
+ skyframeExecutor.injectExtraPrecomputedValues(AnalysisMock.get().getPrecomputedValues());
skyframeExecutor.preparePackageLoading(
pkgLocator,
packageOptions,
diff --git a/src/test/java/com/google/devtools/build/lib/repository/ExternalPackageHelperTest.java b/src/test/java/com/google/devtools/build/lib/repository/ExternalPackageHelperTest.java
index 8857916..3e6388a 100644
--- a/src/test/java/com/google/devtools/build/lib/repository/ExternalPackageHelperTest.java
+++ b/src/test/java/com/google/devtools/build/lib/repository/ExternalPackageHelperTest.java
@@ -83,7 +83,6 @@
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import javax.annotation.Nullable;
-import net.starlark.java.eval.StarlarkSemantics;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -110,7 +109,8 @@
private MemoizingEvaluator evaluator;
@Before
- public void createEnvironment() {
+ public void createEnvironment() throws Exception {
+ setBuildLanguageOptions("--noenable_bzlmod");
AnalysisMock analysisMock = AnalysisMock.get();
AtomicReference<PathPackageLocator> pkgLocator =
new AtomicReference<>(
@@ -187,7 +187,7 @@
RecordingDifferencer differencer = new SequencedRecordingDifferencer();
evaluator = new InMemoryMemoizingEvaluator(skyFunctions, differencer);
PrecomputedValue.PATH_PACKAGE_LOCATOR.set(differencer, pkgLocator.get());
- PrecomputedValue.STARLARK_SEMANTICS.set(differencer, StarlarkSemantics.DEFAULT);
+ PrecomputedValue.STARLARK_SEMANTICS.set(differencer, getStarlarkSemantics());
RepositoryDelegatorFunction.RESOLVED_FILE_INSTEAD_OF_WORKSPACE.set(
differencer, Optional.empty());
}
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/commands/ConfigCommandTest.java b/src/test/java/com/google/devtools/build/lib/runtime/commands/ConfigCommandTest.java
index 568e3cb..ffa19c5 100644
--- a/src/test/java/com/google/devtools/build/lib/runtime/commands/ConfigCommandTest.java
+++ b/src/test/java/com/google/devtools/build/lib/runtime/commands/ConfigCommandTest.java
@@ -112,6 +112,9 @@
params.addAll(TestConstants.PRODUCT_SPECIFIC_FLAGS);
params.add("//test:buildme");
params.add("--nobuild"); // Execution phase isn't necessary to collect configurations.
+ // TODO: Enable Bzlmod for this test
+ // https://github.com/bazelbuild/bazel/issues/19823
+ params.add("--noenable_bzlmod");
Collections.addAll(params, args);
dispatcher.exec(params, "my client", outErr);
}
@@ -128,6 +131,9 @@
params.addAll(TestConstants.PRODUCT_SPECIFIC_FLAGS);
params.add("//test:buildme_with_transition");
params.add("--nobuild"); // Execution phase isn't necessary to collect configurations.
+ // TODO: Enable Bzlmod for this test
+ // https://github.com/bazelbuild/bazel/issues/19823
+ params.add("--noenable_bzlmod");
Collections.addAll(params, args);
dispatcher.exec(params, "my client", outErr);
}
@@ -140,6 +146,9 @@
private RecordingOutErr callConfigCommand(String... args) throws Exception {
List<String> params = Lists.newArrayList("config");
params.add("--output=json");
+ // TODO: Enable Bzlmod for this test
+ // https://github.com/bazelbuild/bazel/issues/19823
+ params.add("--noenable_bzlmod");
Collections.addAll(params, args);
RecordingOutErr recordingOutErr = new RecordingOutErr();
dispatcher.exec(params, "my client", recordingOutErr);
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/BUILD b/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
index 481f0d1..f7b3148 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
@@ -158,6 +158,7 @@
"//src/main/java/com/google/devtools/build/lib/analysis/producers",
"//src/main/java/com/google/devtools/build/lib/bazel:main",
"//src/main/java/com/google/devtools/build/lib/bazel/bzlmod:common",
+ "//src/main/java/com/google/devtools/build/lib/bazel/bzlmod:repo_rule_value",
"//src/main/java/com/google/devtools/build/lib/bazel/bzlmod:resolution",
"//src/main/java/com/google/devtools/build/lib/bazel/bzlmod:resolution_impl",
"//src/main/java/com/google/devtools/build/lib/bazel/repository",
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java
index 8d31467..42c9650 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java
@@ -25,6 +25,7 @@
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
+import com.google.devtools.build.lib.bazel.bzlmod.BzlmodRepoRuleValue;
import com.google.devtools.build.lib.clock.BlazeClock;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.cmdline.RepositoryName;
@@ -57,6 +58,7 @@
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunctionName;
import com.google.devtools.build.skyframe.SkyKey;
+import com.google.devtools.build.skyframe.SkyValue;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
@@ -167,6 +169,22 @@
ImmutableMap::of,
directories,
BazelSkyframeExecutorConstants.EXTERNAL_PACKAGE_HELPER));
+ skyFunctions.put(
+ SkyFunctions.REPOSITORY_MAPPING,
+ new SkyFunction() {
+ @Override
+ public SkyValue compute(SkyKey skyKey, Environment env) {
+ return RepositoryMappingValue.VALUE_FOR_ROOT_MODULE_WITHOUT_REPOS;
+ }
+ });
+ skyFunctions.put(
+ BzlmodRepoRuleValue.BZLMOD_REPO_RULE,
+ new SkyFunction() {
+ @Override
+ public SkyValue compute(SkyKey skyKey, Environment env) {
+ return BzlmodRepoRuleValue.REPO_RULE_NOT_FOUND_VALUE;
+ }
+ });
RecordingDifferencer differencer = new SequencedRecordingDifferencer();
evaluator = new InMemoryMemoizingEvaluator(skyFunctions, differencer);
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java
index 7b6818f..863fe21 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java
@@ -41,6 +41,7 @@
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ServerDirectories;
+import com.google.devtools.build.lib.bazel.bzlmod.BzlmodRepoRuleValue;
import com.google.devtools.build.lib.clock.BlazeClock;
import com.google.devtools.build.lib.cmdline.LabelConstants;
import com.google.devtools.build.lib.events.NullEventHandler;
@@ -232,6 +233,22 @@
ImmutableMap::of,
directories,
BazelSkyframeExecutorConstants.EXTERNAL_PACKAGE_HELPER))
+ .put(
+ SkyFunctions.REPOSITORY_MAPPING,
+ new SkyFunction() {
+ @Override
+ public SkyValue compute(SkyKey skyKey, Environment env) {
+ return RepositoryMappingValue.VALUE_FOR_ROOT_MODULE_WITHOUT_REPOS;
+ }
+ })
+ .put(
+ BzlmodRepoRuleValue.BZLMOD_REPO_RULE,
+ new SkyFunction() {
+ @Override
+ public SkyValue compute(SkyKey skyKey, Environment env) {
+ return BzlmodRepoRuleValue.REPO_RULE_NOT_FOUND_VALUE;
+ }
+ })
.build(),
differencer);
PrecomputedValue.BUILD_ID.set(differencer, UUID.randomUUID());
@@ -448,6 +465,7 @@
.containsExactly(
rootedPath("WORKSPACE"),
rootedPath("WORKSPACE.bazel"),
+ rootedPath("WORKSPACE.bzlmod"),
rootedPath("a"),
rootedPath(""),
rootedPath("/output_base"),
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java
index cba2db7..320b8e8 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java
@@ -30,6 +30,7 @@
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
+import com.google.devtools.build.lib.bazel.bzlmod.BzlmodRepoRuleValue;
import com.google.devtools.build.lib.clock.BlazeClock;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.events.NullEventHandler;
@@ -186,6 +187,22 @@
skyFunctions.put(
SkyFunctions.LOCAL_REPOSITORY_LOOKUP,
new LocalRepositoryLookupFunction(BazelSkyframeExecutorConstants.EXTERNAL_PACKAGE_HELPER));
+ skyFunctions.put(
+ SkyFunctions.REPOSITORY_MAPPING,
+ new SkyFunction() {
+ @Override
+ public SkyValue compute(SkyKey skyKey, Environment env) {
+ return RepositoryMappingValue.VALUE_FOR_ROOT_MODULE_WITHOUT_REPOS;
+ }
+ });
+ skyFunctions.put(
+ BzlmodRepoRuleValue.BZLMOD_REPO_RULE,
+ new SkyFunction() {
+ @Override
+ public SkyValue compute(SkyKey skyKey, Environment env) {
+ return BzlmodRepoRuleValue.REPO_RULE_NOT_FOUND_VALUE;
+ }
+ });
return skyFunctions;
}
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunctionTest.java
index 5775395..33aefce 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunctionTest.java
@@ -22,6 +22,7 @@
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
+import com.google.devtools.build.lib.bazel.bzlmod.BzlmodRepoRuleValue;
import com.google.devtools.build.lib.clock.BlazeClock;
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.events.NullEventHandler;
@@ -49,6 +50,7 @@
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunctionName;
import com.google.devtools.build.skyframe.SkyKey;
+import com.google.devtools.build.skyframe.SkyValue;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
@@ -123,6 +125,22 @@
new LocalRepositoryLookupFunction(BazelSkyframeExecutorConstants.EXTERNAL_PACKAGE_HELPER));
skyFunctions.put(
FileSymlinkCycleUniquenessFunction.NAME, new FileSymlinkCycleUniquenessFunction());
+ skyFunctions.put(
+ SkyFunctions.REPOSITORY_MAPPING,
+ new SkyFunction() {
+ @Override
+ public SkyValue compute(SkyKey skyKey, Environment env) {
+ return RepositoryMappingValue.VALUE_FOR_ROOT_MODULE_WITHOUT_REPOS;
+ }
+ });
+ skyFunctions.put(
+ BzlmodRepoRuleValue.BZLMOD_REPO_RULE,
+ new SkyFunction() {
+ @Override
+ public SkyValue compute(SkyKey skyKey, Environment env) {
+ return BzlmodRepoRuleValue.REPO_RULE_NOT_FOUND_VALUE;
+ }
+ });
RecordingDifferencer differencer = new SequencedRecordingDifferencer();
evaluator = new InMemoryMemoizingEvaluator(skyFunctions, differencer);
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java
index 988a994..92eb814 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PackageFunctionTest.java
@@ -497,6 +497,7 @@
ImmutableMap.of(),
QuiescingExecutorsImpl.forTesting(),
tsgm);
+ getSkyframeExecutor().injectExtraPrecomputedValues(analysisMock.getPrecomputedValues());
getSkyframeExecutor().setActionEnv(ImmutableMap.of());
assertSrcs(validPackageWithoutErrors(skyKey), "foo", "//foo:a.config", "//foo:b.txt");
}
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java
index e5ddd59..a1bd711 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java
@@ -28,6 +28,7 @@
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
+import com.google.devtools.build.lib.bazel.bzlmod.BzlmodRepoRuleValue;
import com.google.devtools.build.lib.clock.BlazeClock;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.cmdline.RepositoryName;
@@ -64,6 +65,7 @@
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunctionName;
import com.google.devtools.build.skyframe.SkyKey;
+import com.google.devtools.build.skyframe.SkyValue;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -179,6 +181,22 @@
ImmutableMap::of,
directories,
BazelSkyframeExecutorConstants.EXTERNAL_PACKAGE_HELPER));
+ skyFunctions.put(
+ SkyFunctions.REPOSITORY_MAPPING,
+ new SkyFunction() {
+ @Override
+ public SkyValue compute(SkyKey skyKey, Environment env) {
+ return RepositoryMappingValue.VALUE_FOR_ROOT_MODULE_WITHOUT_REPOS;
+ }
+ });
+ skyFunctions.put(
+ BzlmodRepoRuleValue.BZLMOD_REPO_RULE,
+ new SkyFunction() {
+ @Override
+ public SkyValue compute(SkyKey skyKey, Environment env) {
+ return BzlmodRepoRuleValue.REPO_RULE_NOT_FOUND_VALUE;
+ }
+ });
differencer = new SequencedRecordingDifferencer();
evaluator = new InMemoryMemoizingEvaluator(skyFunctions, differencer);
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java
index 37a256f..d576600 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunctionSmartNegationTest.java
@@ -15,6 +15,7 @@
import static com.google.common.truth.Truth.assertThat;
import static com.google.devtools.build.skyframe.WalkableGraphUtils.exists;
+import static org.junit.Assert.fail;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
@@ -32,7 +33,6 @@
import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions;
import com.google.devtools.build.lib.pkgcache.PackageOptions;
import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
-import com.google.devtools.build.lib.rules.repository.RepositoryDelegatorFunction;
import com.google.devtools.build.lib.runtime.QuiescingExecutorsImpl;
import com.google.devtools.build.lib.testutil.FoundationTestCase;
import com.google.devtools.build.lib.testutil.SkyframeExecutorTestHelper;
@@ -47,7 +47,6 @@
import com.google.devtools.build.skyframe.WalkableGraph;
import com.google.devtools.common.options.Options;
import java.io.IOException;
-import java.util.Optional;
import java.util.UUID;
import org.junit.Before;
import org.junit.Test;
@@ -70,6 +69,7 @@
@Before
public void setUp() throws Exception {
+ AnalysisMock analysisMock = AnalysisMock.getAnalysisMockWithoutBuiltinModules();
BlazeDirectories directories =
new BlazeDirectories(
new ServerDirectories(
@@ -78,11 +78,11 @@
getScratch().dir("/user_root")),
rootDirectory,
/* defaultSystemJavabase= */ null,
- AnalysisMock.get().getProductName());
- ConfiguredRuleClassProvider ruleClassProvider = AnalysisMock.get().createRuleClassProvider();
+ analysisMock.getProductName());
+ ConfiguredRuleClassProvider ruleClassProvider = analysisMock.createRuleClassProvider();
PackageFactory pkgFactory =
- AnalysisMock.get()
+ analysisMock
.getPackageFactoryBuilderForTesting(directories)
.build(ruleClassProvider, fileSystem);
skyframeExecutor =
@@ -91,7 +91,7 @@
.setFileSystem(fileSystem)
.setDirectories(directories)
.setActionKeyContext(new ActionKeyContext())
- .setExtraSkyFunctions(AnalysisMock.get().getSkyFunctions(directories))
+ .setExtraSkyFunctions(analysisMock.getSkyFunctions(directories))
.setSyscallCache(SyscallCache.NO_CACHE)
.setIgnoredPackagePrefixesFunction(
new IgnoredPackagePrefixesFunction(
@@ -110,15 +110,7 @@
QuiescingExecutorsImpl.forTesting(),
new TimestampGranularityMonitor(null));
skyframeExecutor.setActionEnv(ImmutableMap.of());
- skyframeExecutor.injectExtraPrecomputedValues(
- ImmutableList.of(
- PrecomputedValue.injected(
- RepositoryDelegatorFunction.RESOLVED_FILE_INSTEAD_OF_WORKSPACE, Optional.empty()),
- PrecomputedValue.injected(
- RepositoryDelegatorFunction.REPOSITORY_OVERRIDES, ImmutableMap.of()),
- PrecomputedValue.injected(
- RepositoryDelegatorFunction.DEPENDENCY_FOR_UNCONDITIONAL_FETCHING,
- RepositoryDelegatorFunction.DONT_FETCH_UNCONDITIONALLY)));
+ skyframeExecutor.injectExtraPrecomputedValues(analysisMock.getPrecomputedValues());
scratch.file(ADDITIONAL_IGNORED_PACKAGE_PREFIXES_FILE_PATH_STRING);
}
@@ -217,7 +209,9 @@
EvaluationResult<SkyValue> evaluationResult =
skyframeExecutor.getEvaluator().evaluate(singletonTargetPattern, evaluationContext);
// The evaluation has no errors if success was expected.
- assertThat(evaluationResult.hasError()).isFalse();
+ if (evaluationResult.hasError()) {
+ fail(evaluationResult.getError().toString());
+ }
return Preconditions.checkNotNull(evaluationResult.getWalkableGraph());
}
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunctionTest.java
index 3906f22..de83190 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/RepositoryMappingFunctionTest.java
@@ -21,10 +21,8 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.testing.EqualsTester;
-import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
-import com.google.devtools.build.lib.bazel.bzlmod.NonRegistryOverride;
import com.google.devtools.build.lib.bazel.bzlmod.Version;
import com.google.devtools.build.lib.cmdline.RepositoryMapping;
import com.google.devtools.build.lib.cmdline.RepositoryName;
@@ -62,13 +60,7 @@
@Override
protected AnalysisMock getAnalysisMock() {
// Make sure we don't have built-in modules affecting the dependency graph.
- return new AnalysisMock.Delegate(super.getAnalysisMock()) {
- @Override
- public ImmutableMap<String, NonRegistryOverride> getBuiltinModules(
- BlazeDirectories directories) {
- return ImmutableMap.of();
- }
- };
+ return AnalysisMock.getAnalysisMockWithoutBuiltinModules();
}
private static RepositoryMappingValue valueForWorkspace(
@@ -151,7 +143,7 @@
RepositoryName.MAIN,
"aaa",
RepositoryName.MAIN,
- TestConstants.WORKSPACE_NAME,
+ TestConstants.LEGACY_WORKSPACE_NAME,
RepositoryName.MAIN,
"com_foo_bar_b",
RepositoryName.create("bbb~1.0")),
@@ -180,7 +172,7 @@
RepositoryName.MAIN,
"haha",
RepositoryName.MAIN,
- TestConstants.WORKSPACE_NAME,
+ TestConstants.LEGACY_WORKSPACE_NAME,
RepositoryName.MAIN,
"com_foo_bar_b",
RepositoryName.create("bbb~1.0")),
@@ -271,7 +263,7 @@
RepositoryName.MAIN,
"aaa",
RepositoryName.MAIN,
- TestConstants.WORKSPACE_NAME,
+ TestConstants.LEGACY_WORKSPACE_NAME,
RepositoryName.MAIN,
"bbb1",
RepositoryName.create("bbb~1.0"),
diff --git a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkRuleClassFunctionsTest.java
index da216ef..724fa73 100644
--- a/src/test/java/com/google/devtools/build/lib/starlark/StarlarkRuleClassFunctionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/starlark/StarlarkRuleClassFunctionsTest.java
@@ -3919,7 +3919,7 @@
.isEqualTo("external/dep~4.5");
assertThat(eval(module, "Label('@@//foo:bar').workspace_root")).isEqualTo("");
- assertThat(eval(module, "str(Label('@//foo:bar'))")).isEqualTo("@//foo:bar");
+ assertThat(eval(module, "str(Label('@@//foo:bar'))")).isEqualTo("@@//foo:bar");
assertThat(
assertThrows(
EvalException.class, () -> eval(module, "Label('@//foo:bar').workspace_name")))
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java b/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java
index fb71902..118086d 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java
@@ -55,7 +55,12 @@
/**
* Default workspace name.
*/
- public static final String WORKSPACE_NAME = "__main__";
+ public static final String WORKSPACE_NAME = "_main";
+
+ /**
+ * Legacy default workspace name.
+ */
+ public static final String LEGACY_WORKSPACE_NAME = "__main__";
/**
* Name of a class with an INSTANCE field of type AnalysisMock to be used for analysis tests.
diff --git a/src/test/shell/integration/configured_query_test.sh b/src/test/shell/integration/configured_query_test.sh
index a29a3ce..8417dc1 100755
--- a/src/test/shell/integration/configured_query_test.sh
+++ b/src/test/shell/integration/configured_query_test.sh
@@ -60,6 +60,8 @@
add_to_bazelrc "build --package_path=%workspace%"
+# TODO: enable Bzlmod for this Test
+# https://github.com/bazelbuild/bazel/issues/19823
disable_bzlmod
#### TESTS #############################################################