Splitting buildSrc sources into multiple directories
the first step towards multiple projects, multiple plugins, and multiple classpaths containing classes in buildSrc.
This will eventually mean that changes in buildSrc/impl won't need to invalidate the execution of tasks coming from externally applied plugins
Bug: 140265324
Test: Treehugger runs busytown/androidx.sh
Change-Id: I81af10d448c3d7a4055992e55b461b6ba986a258
diff --git a/buildSrc/README.md b/buildSrc/README.md
index 32e6c3d..4d251a3 100644
--- a/buildSrc/README.md
+++ b/buildSrc/README.md
@@ -9,3 +9,7 @@
* https://medium.com/androiddevelopers/configuration-caching-deep-dive-bcb304698070
* https://docs.gradle.org/current/userguide/configuration_cache.html#config_cache:requirements:use_project_during_execution
* https://github.com/gradle/gradle/issues/17813
+
+The buildSrc directory is split into multiple projects based on what needs to be available on the classpath when parsing build.gradle files outside of buildSrc. Any classes that Gradle puts on the classpath for parsing build.gradle files can theoretically overwrite the implementation of tasks in those projects. So, if a class is on that classpath and it changes then Gradle is not confident that the task is necessarily up-to-date and Gradle will rerun it. So, we move as many classes as possible off of this classpath by applying them from within a separate .gradle script instead.
+
+See also b/140265324 for more information.
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index ec78e6b..707fd6e 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -88,6 +88,12 @@
apply plugin: "java-gradle-plugin"
sourceSets {
+ ["public", "private", "plugins"].each { subdir ->
+ main.java.srcDirs += "${subdir}/src/main/kotlin"
+ main.resources.srcDirs += "${subdir}/src/main/resources"
+ }
+
+
main.java.srcDirs += "${supportRootFolder}/benchmark/gradle-plugin/src/main/kotlin"
main.resources.srcDirs += "${supportRootFolder}/benchmark/gradle-plugin/src/main/resources"
diff --git a/buildSrc/plugins/README.md b/buildSrc/plugins/README.md
new file mode 100644
index 0000000..68b1cc4
--- /dev/null
+++ b/buildSrc/plugins/README.md
@@ -0,0 +1,3 @@
+This is the :buildSrc:plugins project
+
+It contains plugins to be applied by various other projects in this repository
diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXComposePlugin.kt b/buildSrc/plugins/src/main/kotlin/androidx/build/AndroidXComposePlugin.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/AndroidXComposePlugin.kt
rename to buildSrc/plugins/src/main/kotlin/androidx/build/AndroidXComposePlugin.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXPlaygroundRootPlugin.kt b/buildSrc/plugins/src/main/kotlin/androidx/build/AndroidXPlaygroundRootPlugin.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/AndroidXPlaygroundRootPlugin.kt
rename to buildSrc/plugins/src/main/kotlin/androidx/build/AndroidXPlaygroundRootPlugin.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt b/buildSrc/plugins/src/main/kotlin/androidx/build/AndroidXPlugin.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt
rename to buildSrc/plugins/src/main/kotlin/androidx/build/AndroidXPlugin.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXRootPlugin.kt b/buildSrc/plugins/src/main/kotlin/androidx/build/AndroidXRootPlugin.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/AndroidXRootPlugin.kt
rename to buildSrc/plugins/src/main/kotlin/androidx/build/AndroidXRootPlugin.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/docs/AndroidXDocsPlugin.kt b/buildSrc/plugins/src/main/kotlin/androidx/build/docs/AndroidXDocsPlugin.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/docs/AndroidXDocsPlugin.kt
rename to buildSrc/plugins/src/main/kotlin/androidx/build/docs/AndroidXDocsPlugin.kt
diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/AndroidXComposePlugin.properties b/buildSrc/plugins/src/main/resources/META-INF/gradle-plugins/AndroidXComposePlugin.properties
similarity index 100%
rename from buildSrc/src/main/resources/META-INF/gradle-plugins/AndroidXComposePlugin.properties
rename to buildSrc/plugins/src/main/resources/META-INF/gradle-plugins/AndroidXComposePlugin.properties
diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/AndroidXDocsPlugin.properties b/buildSrc/plugins/src/main/resources/META-INF/gradle-plugins/AndroidXDocsPlugin.properties
similarity index 100%
rename from buildSrc/src/main/resources/META-INF/gradle-plugins/AndroidXDocsPlugin.properties
rename to buildSrc/plugins/src/main/resources/META-INF/gradle-plugins/AndroidXDocsPlugin.properties
diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/AndroidXPlugin.properties b/buildSrc/plugins/src/main/resources/META-INF/gradle-plugins/AndroidXPlugin.properties
similarity index 100%
rename from buildSrc/src/main/resources/META-INF/gradle-plugins/AndroidXPlugin.properties
rename to buildSrc/plugins/src/main/resources/META-INF/gradle-plugins/AndroidXPlugin.properties
diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/AndroidXRootPlugin.properties b/buildSrc/plugins/src/main/resources/META-INF/gradle-plugins/AndroidXRootPlugin.properties
similarity index 100%
rename from buildSrc/src/main/resources/META-INF/gradle-plugins/AndroidXRootPlugin.properties
rename to buildSrc/plugins/src/main/resources/META-INF/gradle-plugins/AndroidXRootPlugin.properties
diff --git a/buildSrc/private/README.md b/buildSrc/private/README.md
new file mode 100644
index 0000000..97ac616
--- /dev/null
+++ b/buildSrc/private/README.md
@@ -0,0 +1,7 @@
+This is the :buildSrc:impl project
+
+It contains code that is used to configure other projects in this repository but that does not need to be added to the classpaths of the build scripts of those projects.
+
+This means that if code in this project is changed, it should not necessarily modify the classpath of those projects and should not automatically invalidate the up-to-datedness of tasks applied in those projects.
+
+See b/140265324 for more information
diff --git a/buildSrc/src/main/kotlin/androidx/build/AgpExtensions.kt b/buildSrc/private/src/main/kotlin/androidx/build/AgpExtensions.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/AgpExtensions.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/AgpExtensions.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXExtension.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/AndroidXExtension.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/AndroidXExtension.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXGradleProperties.kt b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXGradleProperties.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/AndroidXGradleProperties.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/AndroidXGradleProperties.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/CreateAggregateLibraryBuildInfoFileTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/CreateAggregateLibraryBuildInfoFileTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/CreateAggregateLibraryBuildInfoFileTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/CreateAggregateLibraryBuildInfoFileTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/CreateLibraryBuildInfoFileTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/CreateLibraryBuildInfoFileTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/CreateLibraryBuildInfoFileTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/CreateLibraryBuildInfoFileTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/ErrorProneConfiguration.kt b/buildSrc/private/src/main/kotlin/androidx/build/ErrorProneConfiguration.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/ErrorProneConfiguration.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/ErrorProneConfiguration.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/InspectionRelease.kt b/buildSrc/private/src/main/kotlin/androidx/build/InspectionRelease.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/InspectionRelease.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/InspectionRelease.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/Jetify.kt b/buildSrc/private/src/main/kotlin/androidx/build/Jetify.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/Jetify.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/Jetify.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/Ktlint.kt b/buildSrc/private/src/main/kotlin/androidx/build/Ktlint.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/Ktlint.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/Ktlint.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/LintConfiguration.kt b/buildSrc/private/src/main/kotlin/androidx/build/LintConfiguration.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/LintConfiguration.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/LintConfiguration.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/ListAndroidXPropertiesTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/ListAndroidXPropertiesTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/ListAndroidXPropertiesTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/ListAndroidXPropertiesTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/ListTaskOutputsTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/ListTaskOutputsTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/ListTaskOutputsTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/ListTaskOutputsTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/MavenUploadHelper.kt b/buildSrc/private/src/main/kotlin/androidx/build/MavenUploadHelper.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/MavenUploadHelper.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/MavenUploadHelper.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/ProjectExt.kt b/buildSrc/private/src/main/kotlin/androidx/build/ProjectExt.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/ProjectExt.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/ProjectExt.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/Release.kt b/buildSrc/private/src/main/kotlin/androidx/build/Release.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/Release.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/Release.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/ReportLibraryMetricsTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/ReportLibraryMetricsTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/ReportLibraryMetricsTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/ReportLibraryMetricsTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/SaveSystemStatsTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/SaveSystemStatsTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/SaveSystemStatsTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/SaveSystemStatsTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/SingleFileCopy.kt b/buildSrc/private/src/main/kotlin/androidx/build/SingleFileCopy.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/SingleFileCopy.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/SingleFileCopy.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/SourceJarTaskHelper.kt b/buildSrc/private/src/main/kotlin/androidx/build/SourceJarTaskHelper.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/SourceJarTaskHelper.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/SourceJarTaskHelper.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/ValidateProjectStructureTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/ValidateProjectStructureTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/ValidateProjectStructureTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/ValidateProjectStructureTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/ValidatePropertiesTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/ValidatePropertiesTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/ValidatePropertiesTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/ValidatePropertiesTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/VerifyDependencyVersionsTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/VerifyDependencyVersionsTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/VerifyDependencyVersionsTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/VerifyDependencyVersionsTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/VersionFileWriterTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/VersionFileWriterTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/VersionFileWriterTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/VersionFileWriterTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/checkapi/ApiLocation.kt b/buildSrc/private/src/main/kotlin/androidx/build/checkapi/ApiLocation.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/checkapi/ApiLocation.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/checkapi/ApiLocation.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/checkapi/ApiTasks.kt b/buildSrc/private/src/main/kotlin/androidx/build/checkapi/ApiTasks.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/checkapi/ApiTasks.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/checkapi/ApiTasks.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/checkapi/CheckApi.kt b/buildSrc/private/src/main/kotlin/androidx/build/checkapi/CheckApi.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/checkapi/CheckApi.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/checkapi/CheckApi.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/dackka/DackkaTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/dackka/DackkaTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/dackka/DackkaTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/dackka/DackkaTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/dackka/OWNERS b/buildSrc/private/src/main/kotlin/androidx/build/dackka/OWNERS
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/dackka/OWNERS
rename to buildSrc/private/src/main/kotlin/androidx/build/dackka/OWNERS
diff --git a/buildSrc/src/main/kotlin/androidx/build/dependencyTracker/AffectedModuleDetector.kt b/buildSrc/private/src/main/kotlin/androidx/build/dependencyTracker/AffectedModuleDetector.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/dependencyTracker/AffectedModuleDetector.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/dependencyTracker/AffectedModuleDetector.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/dependencyTracker/BuildPropParser.kt b/buildSrc/private/src/main/kotlin/androidx/build/dependencyTracker/BuildPropParser.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/dependencyTracker/BuildPropParser.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/dependencyTracker/BuildPropParser.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/dependencyTracker/DependencyTracker.kt b/buildSrc/private/src/main/kotlin/androidx/build/dependencyTracker/DependencyTracker.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/dependencyTracker/DependencyTracker.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/dependencyTracker/DependencyTracker.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/dependencyTracker/FileLogger.kt b/buildSrc/private/src/main/kotlin/androidx/build/dependencyTracker/FileLogger.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/dependencyTracker/FileLogger.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/dependencyTracker/FileLogger.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/dependencyTracker/ProjectGraph.kt b/buildSrc/private/src/main/kotlin/androidx/build/dependencyTracker/ProjectGraph.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/dependencyTracker/ProjectGraph.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/dependencyTracker/ProjectGraph.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/dependencyTracker/ToStringLogger.kt b/buildSrc/private/src/main/kotlin/androidx/build/dependencyTracker/ToStringLogger.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/dependencyTracker/ToStringLogger.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/dependencyTracker/ToStringLogger.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/doclava/ChecksConfig.kt b/buildSrc/private/src/main/kotlin/androidx/build/doclava/ChecksConfig.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/doclava/ChecksConfig.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/doclava/ChecksConfig.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/doclava/Doclava.kt b/buildSrc/private/src/main/kotlin/androidx/build/doclava/Doclava.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/doclava/Doclava.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/doclava/Doclava.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/doclava/DoclavaTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/doclava/DoclavaTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/doclava/DoclavaTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/doclava/DoclavaTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/doclava/OWNERS b/buildSrc/private/src/main/kotlin/androidx/build/doclava/OWNERS
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/doclava/OWNERS
rename to buildSrc/private/src/main/kotlin/androidx/build/doclava/OWNERS
diff --git a/buildSrc/src/main/kotlin/androidx/build/docs/OWNERS b/buildSrc/private/src/main/kotlin/androidx/build/docs/OWNERS
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/docs/OWNERS
rename to buildSrc/private/src/main/kotlin/androidx/build/docs/OWNERS
diff --git a/buildSrc/src/main/kotlin/androidx/build/dokka/Dokka.kt b/buildSrc/private/src/main/kotlin/androidx/build/dokka/Dokka.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/dokka/Dokka.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/dokka/Dokka.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/dokka/OWNERS b/buildSrc/private/src/main/kotlin/androidx/build/dokka/OWNERS
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/dokka/OWNERS
rename to buildSrc/private/src/main/kotlin/androidx/build/dokka/OWNERS
diff --git a/buildSrc/src/main/kotlin/androidx/build/gitclient/GitClient.kt b/buildSrc/private/src/main/kotlin/androidx/build/gitclient/GitClient.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/gitclient/GitClient.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/gitclient/GitClient.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/java/JavaCompileInputs.kt b/buildSrc/private/src/main/kotlin/androidx/build/java/JavaCompileInputs.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/java/JavaCompileInputs.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/java/JavaCompileInputs.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/license/CheckExternalDependencyLicensesTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/license/CheckExternalDependencyLicensesTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/license/CheckExternalDependencyLicensesTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/license/CheckExternalDependencyLicensesTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/logging/logging.kt b/buildSrc/private/src/main/kotlin/androidx/build/logging/logging.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/logging/logging.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/logging/logging.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/CheckApiCompatibilityTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/metalava/CheckApiCompatibilityTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/metalava/CheckApiCompatibilityTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/metalava/CheckApiCompatibilityTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/CheckApiEquivalenceTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/metalava/CheckApiEquivalenceTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/metalava/CheckApiEquivalenceTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/metalava/CheckApiEquivalenceTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/GenerateApiStubClassesTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/metalava/GenerateApiStubClassesTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/metalava/GenerateApiStubClassesTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/metalava/GenerateApiStubClassesTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/GenerateApiTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/metalava/GenerateApiTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/metalava/GenerateApiTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/metalava/GenerateApiTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt b/buildSrc/private/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/metalava/MetalavaTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/metalava/MetalavaTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaTasks.kt b/buildSrc/private/src/main/kotlin/androidx/build/metalava/MetalavaTasks.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaTasks.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/metalava/MetalavaTasks.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/RegenerateOldApisTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/metalava/RegenerateOldApisTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/metalava/RegenerateOldApisTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/metalava/RegenerateOldApisTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/UpdateApiTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/metalava/UpdateApiTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/metalava/UpdateApiTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/metalava/UpdateApiTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/UpdateBaselineTasks.kt b/buildSrc/private/src/main/kotlin/androidx/build/metalava/UpdateBaselineTasks.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/metalava/UpdateBaselineTasks.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/metalava/UpdateBaselineTasks.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/playground/FindAffectedModulesTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/playground/FindAffectedModulesTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/playground/FindAffectedModulesTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/playground/FindAffectedModulesTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/playground/OWNERS b/buildSrc/private/src/main/kotlin/androidx/build/playground/OWNERS
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/playground/OWNERS
rename to buildSrc/private/src/main/kotlin/androidx/build/playground/OWNERS
diff --git a/buildSrc/src/main/kotlin/androidx/build/playground/VerifyPlaygroundGradlePropertiesTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/playground/VerifyPlaygroundGradlePropertiesTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/playground/VerifyPlaygroundGradlePropertiesTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/playground/VerifyPlaygroundGradlePropertiesTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/releasenotes/Markdown.kt b/buildSrc/private/src/main/kotlin/androidx/build/releasenotes/Markdown.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/releasenotes/Markdown.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/releasenotes/Markdown.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/releasenotes/ReleaseNoteMarkdown.kt b/buildSrc/private/src/main/kotlin/androidx/build/releasenotes/ReleaseNoteMarkdown.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/releasenotes/ReleaseNoteMarkdown.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/releasenotes/ReleaseNoteMarkdown.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/resources/CheckResourceApiReleaseTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/resources/CheckResourceApiReleaseTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/resources/CheckResourceApiReleaseTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/resources/CheckResourceApiReleaseTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/resources/CheckResourceApiTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/resources/CheckResourceApiTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/resources/CheckResourceApiTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/resources/CheckResourceApiTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/resources/GenerateResourceApiTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/resources/GenerateResourceApiTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/resources/GenerateResourceApiTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/resources/GenerateResourceApiTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/resources/PublicResourcesStubHelper.kt b/buildSrc/private/src/main/kotlin/androidx/build/resources/PublicResourcesStubHelper.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/resources/PublicResourcesStubHelper.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/resources/PublicResourcesStubHelper.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/resources/ResourceTasks.kt b/buildSrc/private/src/main/kotlin/androidx/build/resources/ResourceTasks.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/resources/ResourceTasks.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/resources/ResourceTasks.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/resources/UpdateResourceApiTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/resources/UpdateResourceApiTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/resources/UpdateResourceApiTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/resources/UpdateResourceApiTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/studio/StudioArchiveCreator.kt b/buildSrc/private/src/main/kotlin/androidx/build/studio/StudioArchiveCreator.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/studio/StudioArchiveCreator.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/studio/StudioArchiveCreator.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/studio/StudioPatcher.kt b/buildSrc/private/src/main/kotlin/androidx/build/studio/StudioPatcher.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/studio/StudioPatcher.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/studio/StudioPatcher.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/studio/StudioPlatformUtilities.kt b/buildSrc/private/src/main/kotlin/androidx/build/studio/StudioPlatformUtilities.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/studio/StudioPlatformUtilities.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/studio/StudioPlatformUtilities.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/studio/StudioTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/studio/StudioTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/studio/StudioTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/studio/StudioTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/studio/StudioVersions.kt b/buildSrc/private/src/main/kotlin/androidx/build/studio/StudioVersions.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/studio/StudioVersions.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/studio/StudioVersions.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/testConfiguration/AndroidTestXmlBuilder.kt b/buildSrc/private/src/main/kotlin/androidx/build/testConfiguration/AndroidTestXmlBuilder.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/testConfiguration/AndroidTestXmlBuilder.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/testConfiguration/AndroidTestXmlBuilder.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/testConfiguration/GenerateMediaTestConfigurationTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/testConfiguration/GenerateMediaTestConfigurationTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/testConfiguration/GenerateMediaTestConfigurationTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/testConfiguration/GenerateMediaTestConfigurationTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/testConfiguration/GenerateTestConfigurationTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/testConfiguration/GenerateTestConfigurationTask.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/testConfiguration/GenerateTestConfigurationTask.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/testConfiguration/GenerateTestConfigurationTask.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/testConfiguration/OwnersService.kt b/buildSrc/private/src/main/kotlin/androidx/build/testConfiguration/OwnersService.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/testConfiguration/OwnersService.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/testConfiguration/OwnersService.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/testConfiguration/TestSuiteConfiguration.kt b/buildSrc/private/src/main/kotlin/androidx/build/testConfiguration/TestSuiteConfiguration.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/testConfiguration/TestSuiteConfiguration.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/testConfiguration/TestSuiteConfiguration.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/uptodatedness/EnableCaching.kt b/buildSrc/private/src/main/kotlin/androidx/build/uptodatedness/EnableCaching.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/uptodatedness/EnableCaching.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/uptodatedness/EnableCaching.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/uptodatedness/TaskUpToDateValidator.kt b/buildSrc/private/src/main/kotlin/androidx/build/uptodatedness/TaskUpToDateValidator.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/uptodatedness/TaskUpToDateValidator.kt
rename to buildSrc/private/src/main/kotlin/androidx/build/uptodatedness/TaskUpToDateValidator.kt
diff --git a/buildSrc/public/README.md b/buildSrc/public/README.md
new file mode 100644
index 0000000..17062a3
--- /dev/null
+++ b/buildSrc/public/README.md
@@ -0,0 +1,3 @@
+This is the :buildSrc:public project
+
+It contains code that other projects in this repository expect to be able to import and reference from their build.gradle files
diff --git a/buildSrc/src/main/kotlin/androidx/build/BuildOnServer.kt b/buildSrc/public/src/main/kotlin/androidx/build/BuildOnServer.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/BuildOnServer.kt
rename to buildSrc/public/src/main/kotlin/androidx/build/BuildOnServer.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/BuildServerConfiguration.kt b/buildSrc/public/src/main/kotlin/androidx/build/BuildServerConfiguration.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/BuildServerConfiguration.kt
rename to buildSrc/public/src/main/kotlin/androidx/build/BuildServerConfiguration.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/BundleInsideHelper.kt b/buildSrc/public/src/main/kotlin/androidx/build/BundleInsideHelper.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/BundleInsideHelper.kt
rename to buildSrc/public/src/main/kotlin/androidx/build/BundleInsideHelper.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/LibraryGroups.kt b/buildSrc/public/src/main/kotlin/androidx/build/LibraryGroups.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/LibraryGroups.kt
rename to buildSrc/public/src/main/kotlin/androidx/build/LibraryGroups.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/LibraryType.kt b/buildSrc/public/src/main/kotlin/androidx/build/LibraryType.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/LibraryType.kt
rename to buildSrc/public/src/main/kotlin/androidx/build/LibraryType.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt b/buildSrc/public/src/main/kotlin/androidx/build/LibraryVersions.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
rename to buildSrc/public/src/main/kotlin/androidx/build/LibraryVersions.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/OperatingSystem.kt b/buildSrc/public/src/main/kotlin/androidx/build/OperatingSystem.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/OperatingSystem.kt
rename to buildSrc/public/src/main/kotlin/androidx/build/OperatingSystem.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/SdkHelper.kt b/buildSrc/public/src/main/kotlin/androidx/build/SdkHelper.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/SdkHelper.kt
rename to buildSrc/public/src/main/kotlin/androidx/build/SdkHelper.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/SdkResourceGenerator.kt b/buildSrc/public/src/main/kotlin/androidx/build/SdkResourceGenerator.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/SdkResourceGenerator.kt
rename to buildSrc/public/src/main/kotlin/androidx/build/SdkResourceGenerator.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/SupportConfig.kt b/buildSrc/public/src/main/kotlin/androidx/build/SupportConfig.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/SupportConfig.kt
rename to buildSrc/public/src/main/kotlin/androidx/build/SupportConfig.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/Version.kt b/buildSrc/public/src/main/kotlin/androidx/build/Version.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/Version.kt
rename to buildSrc/public/src/main/kotlin/androidx/build/Version.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/dependencies/Dependencies.kt b/buildSrc/public/src/main/kotlin/androidx/build/dependencies/Dependencies.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/dependencies/Dependencies.kt
rename to buildSrc/public/src/main/kotlin/androidx/build/dependencies/Dependencies.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/gradle/Extensions.kt b/buildSrc/public/src/main/kotlin/androidx/build/gradle/Extensions.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/gradle/Extensions.kt
rename to buildSrc/public/src/main/kotlin/androidx/build/gradle/Extensions.kt
diff --git a/buildSrc/src/main/kotlin/androidx/build/shadow/AndroidXDontIncludeResourceTransformer.kt b/buildSrc/public/src/main/kotlin/androidx/build/shadow/AndroidXDontIncludeResourceTransformer.kt
similarity index 100%
rename from buildSrc/src/main/kotlin/androidx/build/shadow/AndroidXDontIncludeResourceTransformer.kt
rename to buildSrc/public/src/main/kotlin/androidx/build/shadow/AndroidXDontIncludeResourceTransformer.kt