diff --git a/.github/workflows/Build.yaml b/.github/workflows/Build.yaml index eac831e904..c0120bbdfc 100644 --- a/.github/workflows/Build.yaml +++ b/.github/workflows/Build.yaml @@ -47,9 +47,6 @@ jobs: - name: Check build-logic run: ./gradlew :build-logic:convention:check - - name: Check spotless - run: ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --no-configuration-cache - - name: Check Dependency Guard id: dependencyguard_verify continue-on-error: true diff --git a/build-logic/convention/src/main/kotlin/RootPlugin.kt b/build-logic/convention/src/main/kotlin/RootPlugin.kt index b704adf764..c6ec115278 100644 --- a/build-logic/convention/src/main/kotlin/RootPlugin.kt +++ b/build-logic/convention/src/main/kotlin/RootPlugin.kt @@ -17,10 +17,16 @@ import com.google.samples.apps.nowinandroid.configureGraphTasks import org.gradle.api.Plugin import org.gradle.api.Project +import org.gradle.api.configuration.BuildFeatures +import javax.inject.Inject + +abstract class RootPlugin : Plugin { + @get:Inject abstract val buildFeatures: BuildFeatures -class RootPlugin : Plugin { override fun apply(target: Project) { require(target.path == ":") - target.subprojects { configureGraphTasks() } + if (!buildFeatures.isolatedProjects.active.orElse(false).get()) { + target.subprojects { configureGraphTasks() } + } } } diff --git a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt index 2ac96e556b..116b22b73b 100644 --- a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt +++ b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt @@ -27,6 +27,7 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension import org.jetbrains.kotlin.gradle.dsl.KotlinBaseExtension import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion /** * Configure base Kotlin with Android options @@ -85,6 +86,8 @@ private inline fun Project.configureKotlin() = is KotlinJvmProjectExtension -> compilerOptions else -> TODO("Unsupported project extension $this ${T::class}") }.apply { + languageVersion.set(KotlinVersion.KOTLIN_2_2) + coreLibrariesVersion = "2.2.21" jvmTarget = JvmTarget.JVM_11 allWarningsAsErrors = warningsAsErrors freeCompilerArgs.add( diff --git a/build-logic/settings.gradle.kts b/build-logic/settings.gradle.kts index ff96cc84a4..20e4b9912a 100644 --- a/build-logic/settings.gradle.kts +++ b/build-logic/settings.gradle.kts @@ -31,6 +31,7 @@ dependencyResolutionManagement { } } mavenCentral() + maven("https://central.sonatype.com/repository/maven-snapshots/") } versionCatalogs { create("libs") { diff --git a/gradle.properties b/gradle.properties index 2e9d9fc306..d7d21ad6ef 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,7 +17,7 @@ # - CodeCache normally defaults to a very small size. Increasing it from platform defaults of 32-48m # because of how many classes can be loaded into memory and then cached as native compiled code # for a small speed boost. -org.gradle.jvmargs=-Dfile.encoding=UTF-8 -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=1 -XX:ReservedCodeCacheSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xmx4g -Xms4g +org.gradle.jvmargs=-Dfile.encoding=UTF-8 -XX:+UseG1GC -XX:SoftRefLRUPolicyMSPerMB=1 -XX:ReservedCodeCacheSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xmx4g -Xms4g -Dorg.gradle.internal.isolated-projects.parallel=false # For more information about how Kotlin Daemon memory options were chosen: # - Kotlin JVM args only inherit Xmx, ReservedCodeCache, and MaxMetaspace. Since we are specifying @@ -44,6 +44,8 @@ org.gradle.configuration-cache.parallel=true # to generate the Configuration Cache regardless of incompatible tasks. # See https://github.com/android/nowinandroid/issues/1022 before using it. org.gradle.configuration-cache.problems=warn +org.gradle.unsafe.isolated-projects=true +ksp.project.isolation.enabled=true # AndroidX package structure to make it clearer which packages are bundled with the # Android operating system, and which are packaged with your app"s APK diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0a6132d7d9..98c0be530a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -42,11 +42,11 @@ hilt = "2.57.2" hiltExt = "1.2.0" jacoco = "0.8.12" junit4 = "4.13.2" -kotlin = "2.2.21" +kotlin = "2.3.0-Beta2" kotlinxCoroutines = "1.10.1" kotlinxDatetime = "0.6.1" kotlinxSerializationJson = "1.8.0" -ksp = "2.3.1" +ksp = "2.3.4-SNAPSHOT" okhttp = "4.12.0" protobuf = "4.29.2" protobufPlugin = "0.9.5" @@ -125,7 +125,7 @@ hilt-ext-compiler = { group = "androidx.hilt", name = "hilt-compiler", version.r hilt-ext-work = { group = "androidx.hilt", name = "hilt-work", version.ref = "hiltExt" } javax-inject = { module = "javax.inject:javax.inject", version = "1" } kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlin" } -kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test", version.ref = "kotlin" } +kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test", version = "2.2.21" } kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" } kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" } kotlinx-coroutines-guava = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-guava", version.ref = "kotlinxCoroutines" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 8bdaf60c75..f8e1ee3125 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 6a38a8cea6..8a848873f3 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=a17ddd85a26b6a7f5ddb71ff8b05fc5104c0202c6e64782429790c933686c806 -distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip +distributionSha256Sum=72f44c9f8ebcb1af43838f45ee5c4aa9c5444898b3468ab3f4af7b6076c5bc3f +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/settings.gradle.kts b/settings.gradle.kts index 2b8c6e45c6..583af0aec0 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -26,6 +26,7 @@ pluginManagement { } mavenCentral() gradlePluginPortal() + maven("https://central.sonatype.com/repository/maven-snapshots/") } } @@ -40,6 +41,7 @@ dependencyResolutionManagement { } } mavenCentral() + maven("https://central.sonatype.com/repository/maven-snapshots/") } } rootProject.name = "nowinandroid"