From 0691233e314e807eedc9ec26f681a9a6ad5d2814 Mon Sep 17 00:00:00 2001 From: Juul Mobile Bot Date: Wed, 22 Apr 2026 10:00:06 +0000 Subject: [PATCH 1/3] Update plugin android-library to v9 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5c1d5466..d7765dc1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,7 +19,7 @@ ktor-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" } ktor-mock = { module = "io.ktor:ktor-client-mock", version.ref = "ktor" } [plugins] -android-library = { id = "com.android.library", version = "8.13.2" } +android-library = { id = "com.android.library", version = "9.2.0" } android-publish = { id = "com.vanniktech.maven.publish", version = "0.36.0" } api = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version = "0.18.1" } atomicfu = { id = "org.jetbrains.kotlinx.atomicfu", version = "0.32.1" } From 558587c0a68093a83672cf33f64840fd248e68a5 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 9 Jun 2026 07:26:31 +0000 Subject: [PATCH 2/3] Migrate KMP Android modules to AGP 9 com.android.kotlin.multiplatform.library Apply Path A migration from the Kotlin AGP 9 skill for coroutines and temporal modules: - Replace com.android.library with com.android.kotlin.multiplatform.library - Move android {} configuration into kotlin { android {} } - Remove publishLibraryVariants (single-variant architecture in AGP 9) - Enable androidResources and withHostTest where needed - Rename temporal androidUnitTest source set to androidHostTest - Remove deprecated android.defaults.buildfeatures.* gradle properties Co-authored-by: Travis Wyatt --- build.gradle.kts | 2 +- coroutines/build.gradle.kts | 31 ++++++++++--------- gradle.properties | 4 --- gradle/libs.versions.toml | 2 +- temporal/build.gradle.kts | 29 +++++++++-------- .../kotlin/AndroidIgnore.kt | 0 6 files changed, 32 insertions(+), 36 deletions(-) rename temporal/src/{androidUnitTest => androidHostTest}/kotlin/AndroidIgnore.kt (100%) diff --git a/build.gradle.kts b/build.gradle.kts index d098c198..111b841c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,7 +7,7 @@ buildscript { plugins { alias(libs.plugins.kotlin.multiplatform) apply false - alias(libs.plugins.android.library) apply false + alias(libs.plugins.android.kotlin.multiplatform.library) apply false alias(libs.plugins.kotlinter) apply false alias(libs.plugins.dokka) alias(libs.plugins.android.publish) apply false diff --git a/coroutines/build.gradle.kts b/coroutines/build.gradle.kts index 6c455344..2e374135 100644 --- a/coroutines/build.gradle.kts +++ b/coroutines/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("com.android.library") + id("com.android.kotlin.multiplatform.library") kotlin("multiplatform") id("org.jmailen.kotlinter") jacoco @@ -15,7 +15,21 @@ kotlin { jvm() js().browser() - androidTarget().publishLibraryVariants("debug", "release") + android { + namespace = "com.juul.tuulbox.coroutines" + compileSdk = libs.versions.android.compile.get().toInt() + minSdk = 16 + + androidResources { enable = true } + + withHostTest {} + + lint { + abortOnError = true + warningsAsErrors = true + disable += "GradleDependency" + } + } macosX64() macosArm64() iosX64() @@ -53,16 +67,3 @@ kotlin { } } } - -android { - compileSdk = libs.versions.android.compile.get().toInt() - defaultConfig.minSdk = 16 - - namespace = "com.juul.tuulbox.coroutines" - - lint { - abortOnError = true - warningsAsErrors = true - disable += "GradleDependency" - } -} diff --git a/gradle.properties b/gradle.properties index ec1a818c..54d7bff5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,10 +9,6 @@ kotlin.native.ignoreIncorrectDependencies=true # Android Configuration android.useAndroidX=true -# Android Build Features -android.defaults.buildfeatures.buildconfig=false -android.defaults.buildfeatures.resvalues=false - org.gradle.parallel=true # Publication configuration diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2f5a00cd..00ed67d0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,7 +19,7 @@ ktor-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" } ktor-mock = { module = "io.ktor:ktor-client-mock", version.ref = "ktor" } [plugins] -android-library = { id = "com.android.library", version = "9.2.0" } +android-kotlin-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version = "9.2.0" } android-publish = { id = "com.vanniktech.maven.publish", version = "0.36.0" } api = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version = "0.18.1" } atomicfu = { id = "org.jetbrains.kotlinx.atomicfu", version = "0.32.1" } diff --git a/temporal/build.gradle.kts b/temporal/build.gradle.kts index 495e0a24..21535c12 100644 --- a/temporal/build.gradle.kts +++ b/temporal/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("com.android.library") + id("com.android.kotlin.multiplatform.library") kotlin("multiplatform") id("org.jmailen.kotlinter") jacoco @@ -21,7 +21,19 @@ kotlin { } } } - androidTarget().publishLibraryVariants("debug", "release") + android { + namespace = "com.juul.tuulbox.temporal" + compileSdk = libs.versions.android.compile.get().toInt() + minSdk = 16 + + withHostTest {} + + lint { + abortOnError = true + warningsAsErrors = true + disable += "GradleDependency" + } + } wasmJs().browser() applyDefaultHierarchyTemplate() @@ -53,16 +65,3 @@ kotlin { } } } - -android { - compileSdk = libs.versions.android.compile.get().toInt() - defaultConfig.minSdk = 16 - - namespace = "com.juul.tuulbox.temporal" - - lint { - abortOnError = true - warningsAsErrors = true - disable += "GradleDependency" - } -} diff --git a/temporal/src/androidUnitTest/kotlin/AndroidIgnore.kt b/temporal/src/androidHostTest/kotlin/AndroidIgnore.kt similarity index 100% rename from temporal/src/androidUnitTest/kotlin/AndroidIgnore.kt rename to temporal/src/androidHostTest/kotlin/AndroidIgnore.kt From e20b881a7603a809c574ba8cc3463f5710b40e9f Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 24 Jun 2026 16:41:27 +0000 Subject: [PATCH 3/3] Bump AGP to 9.2.1 Co-authored-by: Travis Wyatt --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0300f3b3..b545b39f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,7 +19,7 @@ ktor-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" } ktor-mock = { module = "io.ktor:ktor-client-mock", version.ref = "ktor" } [plugins] -android-kotlin-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version = "9.2.0" } +android-kotlin-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version = "9.2.1" } android-publish = { id = "com.vanniktech.maven.publish", version = "0.36.0" } api = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version = "0.18.1" } atomicfu = { id = "org.jetbrains.kotlinx.atomicfu", version = "0.33.0" }