Upgradle 7.2-rc-2
- Rename all dependencies in libs.versions.toml that end in
plugin to pluginz as plugin is a reserved naspace now.
- Suppress warning about AGP version in included builds b/195025261
- Gradle 7.2 ships kotlin 1.5, fix deprecations like toUpperCase.
Test: ./gradlew tasks jar assembleDebug
Change-Id: If2e7f52b92496fbf4cdbd067fd92a29e424d8b33
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index 05b0504..63908f2 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -6,7 +6,7 @@
repos.addMavenRepositories(repositories)
dependencies {
- classpath(libs.kotlinGradlePlugin)
+ classpath(libs.kotlinGradlePluginz)
}
configurations.classpath.resolutionStrategy {
@@ -60,21 +60,21 @@
}
dependencies {
- cacheableApi(libs.androidGradlePlugin)
+ cacheableApi(libs.androidGradlePluginz)
cacheableImplementation(libs.dexMemberList)
- cacheableApi(libs.kotlinGradlePlugin)
+ cacheableApi(libs.kotlinGradlePluginz)
cacheableImplementation(gradleApi())
- cacheableApi(libs.dokkaGradlePlugin)
+ cacheableApi(libs.dokkaGradlePluginz)
// needed by inspection plugin
- cacheableImplementation(libs.protobufGradlePlugin)
- cacheableImplementation(libs.wireGradlePlugin)
+ cacheableImplementation(libs.protobufGradlePluginz)
+ cacheableImplementation(libs.wireGradlePluginz)
cacheableImplementation(libs.shadow)
// dependencies that aren't used by buildSrc directly but that we resolve here so that the
// root project doesn't need to re-resolve them and their dependencies on every build
- cacheableRuntimeOnly(libs.hiltAndroidGradlePlugin)
+ cacheableRuntimeOnly(libs.hiltAndroidGradlePluginz)
// room kotlintestapp uses the ksp plugin but it does not publish a plugin marker yet
- cacheableApi(libs.kspGradlePlugin)
- cacheableApi(libs.japicmpPlugin)
+ cacheableApi(libs.kspGradlePluginz)
+ cacheableApi(libs.japicmpPluginz)
// dependencies whose resolutions we don't need to cache
compileOnly(findGradleKotlinDsl()) // Only one file in this configuration, no need to cache it
implementation(project("jetpad-integration")) // Doesn't have a .pom, so not slow to load
diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt b/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt
index 1340650..a065882 100644
--- a/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/AndroidXPlugin.kt
@@ -156,7 +156,9 @@
val htmlReport = task.reports.html
val zipHtmlTask = project.tasks.register(
- "zipHtmlResultsOf${task.name.capitalize()}",
+ "zipHtmlResultsOf${task.name.replaceFirstChar {
+ if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString()
+ }}",
Zip::class.java
) {
val destinationDirectory = File("$xmlReportDestDir-html")
@@ -180,7 +182,9 @@
val xmlReport = task.reports.junitXml
if (xmlReport.required.get()) {
val zipXmlTask = project.tasks.register(
- "zipXmlResultsOf${task.name.capitalize()}",
+ "zipXmlResultsOf${task.name.replaceFirstChar {
+ if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString()
+ }}",
Zip::class.java
) {
it.destinationDirectory.set(xmlReportDestDir)
@@ -482,7 +486,7 @@
project.configurations.all { configuration ->
// Gradle seems to crash on androidtest configurations
// preferring project modules...
- if (!configuration.name.toLowerCase(Locale.US).contains("androidtest")) {
+ if (!configuration.name.lowercase(Locale.US).contains("androidtest")) {
configuration.resolutionStrategy.preferProjectModules()
}
}
@@ -542,7 +546,7 @@
// pre-release SDK.
defaultConfig.aarMetadata.minCompileSdk = TARGET_SDK_VERSION
project.configurations.all { config ->
- val isTestConfig = config.name.toLowerCase(Locale.US).contains("test")
+ val isTestConfig = config.name.lowercase(Locale.US).contains("test")
config.dependencyConstraints.configureEach { dependencyConstraint ->
dependencyConstraint.apply {
diff --git a/buildSrc/src/main/kotlin/androidx/build/AndroidXRootPlugin.kt b/buildSrc/src/main/kotlin/androidx/build/AndroidXRootPlugin.kt
index 845d077..706a9fb4 100644
--- a/buildSrc/src/main/kotlin/androidx/build/AndroidXRootPlugin.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/AndroidXRootPlugin.kt
@@ -39,6 +39,7 @@
import org.gradle.kotlin.dsl.KotlinClosure1
import org.gradle.kotlin.dsl.extra
import java.io.File
+import java.util.Locale
import java.util.concurrent.ConcurrentHashMap
abstract class AndroidXRootPlugin : Plugin<Project> {
@@ -124,8 +125,14 @@
project.agpVariants.all { variant ->
// in AndroidX, release and debug variants are essentially the same,
// so we don't run the lintRelease task on the build server
- if (!variant.name.toLowerCase().contains("release")) {
- val taskName = "lint${variant.name.capitalize()}"
+ if (!variant.name.lowercase(Locale.getDefault()).contains("release")) {
+ val taskName = "lint${variant.name.replaceFirstChar {
+ if (it.isLowerCase()) {
+ it.titlecase(Locale.getDefault())
+ } else {
+ it.toString()
+ }
+ }}"
buildOnServerTask.dependsOn("${project.path}:$taskName")
}
}
diff --git a/buildSrc/src/main/kotlin/androidx/build/LintConfiguration.kt b/buildSrc/src/main/kotlin/androidx/build/LintConfiguration.kt
index 24b3049..1c91378 100644
--- a/buildSrc/src/main/kotlin/androidx/build/LintConfiguration.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/LintConfiguration.kt
@@ -90,10 +90,18 @@
}
afterEvaluate {
for (variant in project.agpVariants) {
- tasks.named("lint${variant.name.capitalize(Locale.US)}").configure { task ->
+ tasks.named(
+ "lint${variant.name.replaceFirstChar {
+ if (it.isLowerCase()) it.titlecase(Locale.US) else it.toString()
+ }}"
+ ).configure { task ->
AffectedModuleDetector.configureTaskGuard(task)
}
- tasks.named("lintAnalyze${variant.name.capitalize(Locale.US)}").configure { task ->
+ tasks.named(
+ "lintAnalyze${variant.name.replaceFirstChar {
+ if (it.isLowerCase()) it.titlecase(Locale.US) else it.toString()
+ }}"
+ ).configure { task ->
AffectedModuleDetector.configureTaskGuard(task)
}
/* TODO: uncomment when we upgrade to AGP 7.1.0-alpha04
@@ -110,8 +118,14 @@
if (!variantNames.contains("debug")) {
tasks.register("lintDebug") {
for (variantName in variantNames) {
- if (variantName.toLowerCase(Locale.US).contains("debug")) {
- it.dependsOn(tasks.named("lint${variantName.capitalize(Locale.US)}"))
+ if (variantName.lowercase(Locale.US).contains("debug")) {
+ it.dependsOn(
+ tasks.named(
+ "lint${variantName.replaceFirstChar {
+ if (it.isLowerCase()) it.titlecase(Locale.US) else it.toString()
+ }}"
+ )
+ )
}
}
}
diff --git a/buildSrc/src/main/kotlin/androidx/build/OperatingSystem.kt b/buildSrc/src/main/kotlin/androidx/build/OperatingSystem.kt
index 8385eb8..867ade5 100644
--- a/buildSrc/src/main/kotlin/androidx/build/OperatingSystem.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/OperatingSystem.kt
@@ -26,7 +26,7 @@
}
fun getOperatingSystem(): OperatingSystem {
- val os = System.getProperty("os.name").toLowerCase(Locale.US)
+ val os = System.getProperty("os.name").lowercase(Locale.US)
return when {
os.contains("mac os x") -> OperatingSystem.MAC
os.contains("darwin") -> OperatingSystem.MAC
diff --git a/buildSrc/src/main/kotlin/androidx/build/Release.kt b/buildSrc/src/main/kotlin/androidx/build/Release.kt
index bbcd272..12a9037 100644
--- a/buildSrc/src/main/kotlin/androidx/build/Release.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/Release.kt
@@ -24,6 +24,7 @@
import org.gradle.api.tasks.bundling.Zip
import org.gradle.plugin.devel.GradlePluginDevelopmentExtension
import java.io.File
+import java.util.Locale
import java.util.TreeSet
/**
@@ -336,7 +337,9 @@
return group
.split('.')
.joinToString("") {
- it.capitalize()
+ it.replaceFirstChar {
+ if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString()
+ }
}
}
/**
@@ -346,7 +349,9 @@
return project.path
.split(":", "-")
.joinToString("") {
- it.capitalize()
+ it.replaceFirstChar {
+ if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString()
+ }
}
}
diff --git a/buildSrc/src/main/kotlin/androidx/build/SourceJarTaskHelper.kt b/buildSrc/src/main/kotlin/androidx/build/SourceJarTaskHelper.kt
index 9168290..2fa31fb 100644
--- a/buildSrc/src/main/kotlin/androidx/build/SourceJarTaskHelper.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/SourceJarTaskHelper.kt
@@ -32,13 +32,19 @@
import org.gradle.kotlin.dsl.getByType
import org.gradle.kotlin.dsl.named
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
+import java.util.Locale
/**
* Sets up a source jar task for an Android library project.
*/
fun Project.configureSourceJarForAndroid(extension: LibraryExtension) {
extension.defaultPublishVariant { variant ->
- val sourceJar = tasks.register("sourceJar${variant.name.capitalize()}", Jar::class.java) {
+ val sourceJar = tasks.register(
+ "sourceJar${variant.name.replaceFirstChar {
+ if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString()
+ }}",
+ Jar::class.java
+ ) {
it.archiveClassifier.set("sources")
it.from(extension.sourceSets.getByName("main").java.srcDirs)
// Do not allow source files with duplicate names, information would be lost otherwise.
@@ -52,7 +58,14 @@
extension.defaultPublishVariant { variant ->
val kotlinExt = project.extensions.getByName("kotlin") as KotlinProjectExtension
val sourceJar =
- project.tasks.named("sourceJar${variant.name.capitalize()}", Jar::class.java)
+ project.tasks.named(
+ "sourceJar${variant.name.replaceFirstChar {
+ if (it.isLowerCase()) {
+ it.titlecase(Locale.getDefault())
+ } else it.toString()
+ }}",
+ Jar::class.java
+ )
// multiplatform projects use different source sets, so we need to modify the task
sourceJar.configure { sourceJarTask ->
// use an inclusion list of source sets, because that is the preferred policy
diff --git a/buildSrc/src/main/kotlin/androidx/build/Version.kt b/buildSrc/src/main/kotlin/androidx/build/Version.kt
index 570e7ad..040c90e 100644
--- a/buildSrc/src/main/kotlin/androidx/build/Version.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/Version.kt
@@ -18,6 +18,7 @@
import org.gradle.api.Project
import java.io.File
+import java.util.Locale
import java.util.regex.Matcher
import java.util.regex.Pattern
@@ -44,13 +45,13 @@
fun isSnapshot(): Boolean = "-SNAPSHOT" == extra
- fun isAlpha(): Boolean = extra?.toLowerCase()?.startsWith("-alpha") ?: false
+ fun isAlpha(): Boolean = extra?.lowercase(Locale.getDefault())?.startsWith("-alpha") ?: false
- fun isBeta(): Boolean = extra?.toLowerCase()?.startsWith("-beta") ?: false
+ fun isBeta(): Boolean = extra?.lowercase(Locale.getDefault())?.startsWith("-beta") ?: false
- fun isDev(): Boolean = extra?.toLowerCase()?.startsWith("-dev") ?: false
+ fun isDev(): Boolean = extra?.lowercase(Locale.getDefault())?.startsWith("-dev") ?: false
- fun isRC(): Boolean = extra?.toLowerCase()?.startsWith("-rc") ?: false
+ fun isRC(): Boolean = extra?.lowercase(Locale.getDefault())?.startsWith("-rc") ?: false
fun isStable(): Boolean = (extra == null)
diff --git a/buildSrc/src/main/kotlin/androidx/build/dokka/Dokka.kt b/buildSrc/src/main/kotlin/androidx/build/dokka/Dokka.kt
index be841d7..22e8d8e2 100644
--- a/buildSrc/src/main/kotlin/androidx/build/dokka/Dokka.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/dokka/Dokka.kt
@@ -26,10 +26,14 @@
import org.jetbrains.dokka.gradle.PackageOptions
import java.io.File
import java.net.URL
+import java.util.Locale
object Dokka {
private fun generatorTaskNameForType(language: String = ""): String {
- val formattedLangauage = language.toLowerCase().capitalize()
+ val formattedLangauage = language.lowercase(Locale.getDefault())
+ .replaceFirstChar {
+ if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString()
+ }
return "dokka${formattedLangauage}Docs"
}
diff --git a/buildSrc/src/main/kotlin/androidx/build/resources/ResourceTasks.kt b/buildSrc/src/main/kotlin/androidx/build/resources/ResourceTasks.kt
index 829a4768..296ada9 100644
--- a/buildSrc/src/main/kotlin/androidx/build/resources/ResourceTasks.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/resources/ResourceTasks.kt
@@ -41,7 +41,11 @@
) {
@OptIn(ExperimentalStdlibApi::class)
val packageResTask = project.tasks
- .named("package${variantName.capitalize(Locale.US)}Resources")
+ .named(
+ "package${variantName.replaceFirstChar {
+ if (it.isLowerCase()) it.titlecase(Locale.US) else it.toString()
+ }}Resources"
+ )
@Suppress("UnstableApiUsage") // flatMap
val builtApiFile = packageResTask.flatMap { task ->
(task as com.android.build.gradle.tasks.MergeResources).publicFile
diff --git a/buildSrc/src/main/kotlin/androidx/build/studio/StudioPlatformUtilities.kt b/buildSrc/src/main/kotlin/androidx/build/studio/StudioPlatformUtilities.kt
index 799cc20..0bd6f66 100644
--- a/buildSrc/src/main/kotlin/androidx/build/studio/StudioPlatformUtilities.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/studio/StudioPlatformUtilities.kt
@@ -76,7 +76,7 @@
protected val jvmHeapRegex = "-Xmx.*".toRegex()
companion object {
- val osName = if (System.getProperty("os.name").toLowerCase(Locale.ROOT).contains("linux")) {
+ val osName = if (System.getProperty("os.name").lowercase(Locale.ROOT).contains("linux")) {
"linux"
} else {
"mac"