Remove support for managed directories.
Fixes #15463.
The design doc for the deprecation and the removal is available here:
https://docs.google.com/document/d/1u9V5RUc7i6Urh8gGfnSurxpWA7JMRtwCi1Pr5BHeE44/edit
RELNOTES: --noincompatible_disable_managed_directories, and with that, workspace(managed_directories=) is not supported anymore.
PiperOrigin-RevId: 456228902
Change-Id: I5fcbf96b9a508f47cbcabf9715163cd7120020bf
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java b/src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java
index a4aebf2..ca8293f 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ExternalFilesHelper.java
@@ -51,62 +51,40 @@
private boolean tooManyNonOutputExternalFilesSeen = false;
private boolean anyFilesInExternalReposSeen = false;
- // This is a set of external files that are not in managed directories or
- // external repositories.
+ // This is a set of external files that are not in external repositories.
private Set<RootedPath> nonOutputExternalFilesSeen = Sets.newConcurrentHashSet();
- private final ManagedDirectoriesKnowledge managedDirectoriesKnowledge;
private ExternalFilesHelper(
AtomicReference<PathPackageLocator> pkgLocator,
ExternalFileAction externalFileAction,
BlazeDirectories directories,
- int maxNumExternalFilesToLog,
- ManagedDirectoriesKnowledge managedDirectoriesKnowledge) {
+ int maxNumExternalFilesToLog) {
this.pkgLocator = pkgLocator;
this.externalFileAction = externalFileAction;
this.directories = directories;
this.maxNumExternalFilesToLog = maxNumExternalFilesToLog;
- this.managedDirectoriesKnowledge = managedDirectoriesKnowledge;
}
public static ExternalFilesHelper create(
AtomicReference<PathPackageLocator> pkgLocator,
ExternalFileAction externalFileAction,
- BlazeDirectories directories,
- ManagedDirectoriesKnowledge managedDirectoriesKnowledge) {
+ BlazeDirectories directories) {
return TestType.isInTest()
- ? createForTesting(pkgLocator, externalFileAction, directories, managedDirectoriesKnowledge)
+ ? createForTesting(pkgLocator, externalFileAction, directories)
: new ExternalFilesHelper(
- pkgLocator,
- externalFileAction,
- directories,
- /*maxNumExternalFilesToLog=*/ 100,
- managedDirectoriesKnowledge);
+ pkgLocator, externalFileAction, directories, /*maxNumExternalFilesToLog=*/ 100);
}
public static ExternalFilesHelper createForTesting(
AtomicReference<PathPackageLocator> pkgLocator,
ExternalFileAction externalFileAction,
BlazeDirectories directories) {
- return createForTesting(
- pkgLocator,
- externalFileAction,
- directories,
- ManagedDirectoriesKnowledge.NO_MANAGED_DIRECTORIES);
- }
-
- private static ExternalFilesHelper createForTesting(
- AtomicReference<PathPackageLocator> pkgLocator,
- ExternalFileAction externalFileAction,
- BlazeDirectories directories,
- ManagedDirectoriesKnowledge managedDirectoriesKnowledge) {
return new ExternalFilesHelper(
pkgLocator,
externalFileAction,
directories,
// These log lines are mostly spam during unit and integration tests.
- /*maxNumExternalFilesToLog=*/ 0,
- managedDirectoriesKnowledge);
+ /*maxNumExternalFilesToLog=*/ 0);
}
@@ -144,8 +122,8 @@
INTERNAL,
/**
- * A non {@link #EXTERNAL_REPO} or {@link #EXTERNAL_IN_MANAGED_DIRECTORY} path outside the
- * package roots about which we may make no other assumptions.
+ * A non {@link #EXTERNAL_REPO} path outside the package roots about which we may make no other
+ * assumptions.
*/
EXTERNAL,
@@ -175,17 +153,6 @@
* RepositoryDirectoryValue is computed.
*/
EXTERNAL_REPO,
-
- /**
- * A path is under one of the managed directories. Managed directories are user-owned
- * directories, which can be incrementally updated by repository rules, so that the updated
- * files are visible for the actions in the same build.
- *
- * <p>Every such path under the managed directory is generated or updated by the execution of
- * the corresponding repository rule, so these paths should not be cached by Skyframe before the
- * RepositoryDirectoryValue is computed. {@link ManagedDirectoriesKnowledge}
- */
- EXTERNAL_IN_MANAGED_DIRECTORY,
}
/**
@@ -232,11 +199,7 @@
ExternalFilesHelper cloneWithFreshExternalFilesKnowledge() {
return new ExternalFilesHelper(
- pkgLocator,
- externalFileAction,
- directories,
- maxNumExternalFilesToLog,
- managedDirectoriesKnowledge);
+ pkgLocator, externalFileAction, directories, maxNumExternalFilesToLog);
}
public FileType getAndNoteFileType(RootedPath rootedPath) {
@@ -244,12 +207,6 @@
}
private Pair<FileType, RepositoryName> getFileTypeAndRepository(RootedPath rootedPath) {
- RepositoryName repositoryName =
- managedDirectoriesKnowledge.getOwnerRepository(rootedPath.getRootRelativePath());
- if (repositoryName != null) {
- anyFilesInExternalReposSeen = true;
- return Pair.of(FileType.EXTERNAL_IN_MANAGED_DIRECTORY, repositoryName);
- }
FileType fileType = detectFileType(rootedPath);
if (FileType.EXTERNAL == fileType) {
if (nonOutputExternalFilesSeen.size() >= MAX_EXTERNAL_FILES_TO_TRACK) {
@@ -309,12 +266,6 @@
FileType fileType = Preconditions.checkNotNull(pair.getFirst());
switch (fileType) {
- case EXTERNAL_IN_MANAGED_DIRECTORY:
- Preconditions.checkState(
- externalFileAction == ExternalFileAction.DEPEND_ON_EXTERNAL_PKG_FOR_EXTERNAL_REPO_PATHS,
- externalFileAction);
- RepositoryFunction.addManagedDirectoryDependencies(pair.getSecond(), env);
- break;
case BUNDLED:
case INTERNAL:
break;