From 8481ded1acf810627e3fd9d4787d628f9fc1b491 Mon Sep 17 00:00:00 2001 From: Jan Tennert Date: Fri, 25 Jul 2025 21:35:55 +0200 Subject: [PATCH 1/4] Migrate to new Multiplatform Android Plugin --- Auth/build.gradle.kts | 3 +-- .../kotlin/platformSettings.kt | 0 Functions/build.gradle.kts | 4 +--- Postgrest/build.gradle.kts | 3 +-- Realtime/build.gradle.kts | 3 +-- Storage/build.gradle.kts | 3 +-- Supabase/build.gradle.kts | 4 ++-- build.gradle.kts | 2 +- buildSrc/src/main/kotlin/KotlinTargets.kt | 19 +++++++++++++++---- gradle/libs.versions.toml | 5 +++-- serializers/Jackson/build.gradle.kts | 3 +-- serializers/Moshi/build.gradle.kts | 3 +-- test-common/build.gradle.kts | 3 +-- 13 files changed, 29 insertions(+), 26 deletions(-) rename Auth/src/{androidUnitTest => androidHostTest}/kotlin/platformSettings.kt (100%) diff --git a/Auth/build.gradle.kts b/Auth/build.gradle.kts index e9e0f0259..e3f3cc8bc 100644 --- a/Auth/build.gradle.kts +++ b/Auth/build.gradle.kts @@ -1,7 +1,7 @@ plugins { // alias(libs.plugins.complete.kotlin) id(libs.plugins.kotlin.multiplatform.get().pluginId) - id(libs.plugins.android.library.get().pluginId) + id(libs.plugins.android.kotlin.multiplatform.library.get().pluginId) } description = "Extends supabase-kt with a Auth Client" @@ -79,4 +79,3 @@ kotlin { } } -configureLibraryAndroidTarget() \ No newline at end of file diff --git a/Auth/src/androidUnitTest/kotlin/platformSettings.kt b/Auth/src/androidHostTest/kotlin/platformSettings.kt similarity index 100% rename from Auth/src/androidUnitTest/kotlin/platformSettings.kt rename to Auth/src/androidHostTest/kotlin/platformSettings.kt diff --git a/Functions/build.gradle.kts b/Functions/build.gradle.kts index 218d38e0f..0853bbc4c 100644 --- a/Functions/build.gradle.kts +++ b/Functions/build.gradle.kts @@ -1,6 +1,6 @@ plugins { id(libs.plugins.kotlin.multiplatform.get().pluginId) - id(libs.plugins.android.library.get().pluginId) + id(libs.plugins.android.kotlin.multiplatform.library.get().pluginId) } description = "Extends supabase-kt with a Edge Functions Client" @@ -26,5 +26,3 @@ kotlin { } } } - -configureLibraryAndroidTarget() \ No newline at end of file diff --git a/Postgrest/build.gradle.kts b/Postgrest/build.gradle.kts index 9ae9ee866..2208eae6a 100644 --- a/Postgrest/build.gradle.kts +++ b/Postgrest/build.gradle.kts @@ -1,6 +1,6 @@ plugins { id(libs.plugins.kotlin.multiplatform.get().pluginId) - id(libs.plugins.android.library.get().pluginId) + id(libs.plugins.android.kotlin.multiplatform.library.get().pluginId) } description = "Extends supabase-kt with a Postgrest Client" @@ -29,4 +29,3 @@ kotlin { } } -configureLibraryAndroidTarget() \ No newline at end of file diff --git a/Realtime/build.gradle.kts b/Realtime/build.gradle.kts index 10c417778..f9bc86d8a 100644 --- a/Realtime/build.gradle.kts +++ b/Realtime/build.gradle.kts @@ -1,6 +1,6 @@ plugins { id(libs.plugins.kotlin.multiplatform.get().pluginId) - id(libs.plugins.android.library.get().pluginId) + id(libs.plugins.android.kotlin.multiplatform.library.get().pluginId) } description = "Extends supabase-kt with a Realtime Client" @@ -31,4 +31,3 @@ kotlin { } } -configureLibraryAndroidTarget() \ No newline at end of file diff --git a/Storage/build.gradle.kts b/Storage/build.gradle.kts index 44df13c0b..77ab306e7 100644 --- a/Storage/build.gradle.kts +++ b/Storage/build.gradle.kts @@ -1,6 +1,6 @@ plugins { id(libs.plugins.kotlin.multiplatform.get().pluginId) - id(libs.plugins.android.library.get().pluginId) + id(libs.plugins.android.kotlin.multiplatform.library.get().pluginId) } description = "Extends supabase-kt with a Storage Client" @@ -40,4 +40,3 @@ kotlin { } } -configureLibraryAndroidTarget() \ No newline at end of file diff --git a/Supabase/build.gradle.kts b/Supabase/build.gradle.kts index f303cb0bd..e3125c150 100644 --- a/Supabase/build.gradle.kts +++ b/Supabase/build.gradle.kts @@ -1,6 +1,7 @@ plugins { id(libs.plugins.kotlin.multiplatform.get().pluginId) - id(libs.plugins.android.library.get().pluginId) + // id(libs.plugins.android.kotlin.multiplatform.library.get().pluginId) + id(libs.plugins.android.kotlin.multiplatform.library.get().pluginId) id(libs.plugins.detekt.get().pluginId) id(libs.plugins.dokka.get().pluginId) alias(libs.plugins.kotlinx.plugin.serialization) @@ -64,4 +65,3 @@ kotlin { } } -configureLibraryAndroidTarget() \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index c10dab922..94000347f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,7 +17,7 @@ fun libraryModules(withBom: Boolean = true, init: Project.() -> Unit) = configur plugins { id(libs.plugins.kotlin.multiplatform.get().pluginId) apply false - id(libs.plugins.android.library.get().pluginId) apply false + id(libs.plugins.android.kotlin.multiplatform.library.get().pluginId) apply false id(libs.plugins.detekt.get().pluginId) apply false id(libs.plugins.dokka.get().pluginId) alias(libs.plugins.kotlinx.plugin.serialization) apply false diff --git a/buildSrc/src/main/kotlin/KotlinTargets.kt b/buildSrc/src/main/kotlin/KotlinTargets.kt index b8c2ef3e9..5ff4ee0ef 100644 --- a/buildSrc/src/main/kotlin/KotlinTargets.kt +++ b/buildSrc/src/main/kotlin/KotlinTargets.kt @@ -1,4 +1,6 @@ +import com.android.build.api.dsl.androidLibrary import org.gradle.kotlin.dsl.assign +import org.gradle.kotlin.dsl.extra import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.dsl.JvmTarget @@ -39,10 +41,19 @@ fun KotlinMultiplatformExtension.configuredJvmTarget(jvmTarget: JvmTarget = JvmT } } -fun KotlinMultiplatformExtension.configuredAndroidTarget(jvmTarget: JvmTarget = JvmTarget.JVM_1_8) { - androidTarget { - publishLibraryVariants("release", "debug") - compilerOptions.jvmTarget = jvmTarget +fun KotlinMultiplatformExtension.configuredAndroidTarget( + jvmTarget: JvmTarget = JvmTarget.JVM_1_8, +) { + androidLibrary { + compileSdk = 35 + minSdk = 21 + this.namespace = namespace ?: "${project.extra["base-group"].toString().replace("-", ".")}.${project.name.replace("-", "")}.library" + withHostTestBuilder {}.configure {} + compilations.configureEach { + compilerOptions.configure { + this.jvmTarget.set(jvmTarget) + } + } } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 68d01a315..9fc4f446a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,7 +12,7 @@ androidx-startup = "1.2.0" androidx-activity-compose = "1.10.1" multiplatform-settings = "1.3.0" complete-kotlin = "1.1.0" -agp = "8.9.2" +agp = "8.11.1" maven-publish = "0.34.0" apollo-kotlin = "4.3.2" serialization = "1.9.0" @@ -24,7 +24,7 @@ browser = "1.9.0" compose = "1.8.2" coil2 = "2.7.0" okio = "3.16.0" -koin = "4.0.4" +koin = "4.1.0" androidx-core = "1.17.0" androidx-compat = "1.7.1" androidx-lifecycle = "2.9.2" @@ -39,6 +39,7 @@ dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } kotlinx-plugin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } complete-kotlin = { id = "com.louiscad.complete-kotlin", version.ref = "complete-kotlin" } android-library = { id = "com.android.library", version.ref = "agp" } +android-kotlin-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version.ref = "agp" } maven-publish = { id = "com.vanniktech.maven.publish", version.ref = "maven-publish" } detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } diff --git a/serializers/Jackson/build.gradle.kts b/serializers/Jackson/build.gradle.kts index 5d0889f47..db6fcf65e 100644 --- a/serializers/Jackson/build.gradle.kts +++ b/serializers/Jackson/build.gradle.kts @@ -1,6 +1,6 @@ plugins { id(libs.plugins.kotlin.multiplatform.get().pluginId) - id(libs.plugins.android.library.get().pluginId) + id(libs.plugins.android.kotlin.multiplatform.library.get().pluginId) } description = "Extends supabase-kt with a Jackson Serializer" @@ -30,4 +30,3 @@ kotlin { } } -configureLibraryAndroidTarget() \ No newline at end of file diff --git a/serializers/Moshi/build.gradle.kts b/serializers/Moshi/build.gradle.kts index b4c35f442..8cd392d06 100644 --- a/serializers/Moshi/build.gradle.kts +++ b/serializers/Moshi/build.gradle.kts @@ -1,6 +1,6 @@ plugins { id(libs.plugins.kotlin.multiplatform.get().pluginId) - id(libs.plugins.android.library.get().pluginId) + id(libs.plugins.android.kotlin.multiplatform.library.get().pluginId) } description = "Extends supabase-kt with a Moshi Serializer" @@ -31,4 +31,3 @@ kotlin { } } -configureLibraryAndroidTarget() \ No newline at end of file diff --git a/test-common/build.gradle.kts b/test-common/build.gradle.kts index a3b35f209..1d46f52ce 100644 --- a/test-common/build.gradle.kts +++ b/test-common/build.gradle.kts @@ -1,6 +1,6 @@ plugins { id(libs.plugins.kotlin.multiplatform.get().pluginId) - id(libs.plugins.android.library.get().pluginId) + id(libs.plugins.android.kotlin.multiplatform.library.get().pluginId) } description = "Common test module" @@ -28,4 +28,3 @@ kotlin { } } -configureLibraryAndroidTarget() \ No newline at end of file From 2322e4fa9a45fd2485c90de6fdfa4fe4fdce80d6 Mon Sep 17 00:00:00 2001 From: Jan Tennert Date: Wed, 10 Sep 2025 21:40:16 +0200 Subject: [PATCH 2/4] Fix build error --- .../kotlin/platformSettings.kt | 1 + buildSrc/src/main/kotlin/TargetHierarchy.kt | 7 +++-- detekt.yml | 30 +++++++++---------- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/Auth/src/androidHostTest/kotlin/platformSettings.kt b/Auth/src/androidHostTest/kotlin/platformSettings.kt index 687460611..fe9eafe56 100644 --- a/Auth/src/androidHostTest/kotlin/platformSettings.kt +++ b/Auth/src/androidHostTest/kotlin/platformSettings.kt @@ -1,5 +1,6 @@ import io.github.jan.supabase.auth.AuthConfig + actual fun AuthConfig.platformSettings() { enableLifecycleCallbacks = false } \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/TargetHierarchy.kt b/buildSrc/src/main/kotlin/TargetHierarchy.kt index f9bb83202..7e8887ed7 100644 --- a/buildSrc/src/main/kotlin/TargetHierarchy.kt +++ b/buildSrc/src/main/kotlin/TargetHierarchy.kt @@ -1,19 +1,22 @@ @file:OptIn(ExperimentalKotlinGradlePluginApi::class) +import com.android.build.api.dsl.KotlinMultiplatformAndroidCompilation import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.plugin.KotlinHierarchyBuilder fun KotlinHierarchyBuilder.androidAndJvmGroup() { group("androidAndJvm") { withJvm() - withAndroidTarget() + //see https://youtrack.jetbrains.com/issue/KT-80409 + withCompilations { it is KotlinMultiplatformAndroidCompilation } } } fun KotlinHierarchyBuilder.settingsGroup() { group("settings") { withJvm() - withAndroidTarget() + // see https://youtrack.jetbrains.com/issue/KT-80409 + withCompilations { it is KotlinMultiplatformAndroidCompilation } withJs() withMingwX64() withApple() diff --git a/detekt.yml b/detekt.yml index 0762d3878..0a2039bcb 100644 --- a/detekt.yml +++ b/detekt.yml @@ -67,7 +67,7 @@ comments: endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)' KDocReferencesNonPublicProperty: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidHostTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] OutdatedDocumentation: active: false matchTypeParameters: true @@ -75,7 +75,7 @@ comments: allowParamOnConstructorProperties: false UndocumentedPublicClass: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidHostTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] searchInNestedClass: true searchInInnerClass: true searchInInnerObject: false @@ -86,14 +86,14 @@ comments: - 'SupabaseExperimental' UndocumentedPublicFunction: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidHostTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] searchProtectedFunction: false ignoreAnnotated: - 'SupabaseInternal' - 'SupabaseExperimental' UndocumentedPublicProperty: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidHostTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] searchProtectedProperty: false ignoreAnnotated: - 'SupabaseInternal' @@ -170,14 +170,14 @@ complexity: active: false StringLiteralDuplication: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidHostTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] threshold: 3 ignoreAnnotation: true excludeStringsWithLessThan5Characters: true ignoreStringsRegex: '$^' TooManyFunctions: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidHostTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] thresholdInFiles: 11 thresholdInClasses: 11 thresholdInInterfaces: 11 @@ -254,7 +254,7 @@ exceptions: - 'toString' InstanceOfCheckForException: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidHostTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] NotImplementedDeclaration: active: false ObjectExtendsThrowable: @@ -280,7 +280,7 @@ exceptions: active: false ThrowingExceptionsWithoutMessageOrCause: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidHostTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] exceptions: - 'ArrayIndexOutOfBoundsException' - 'Exception' @@ -295,7 +295,7 @@ exceptions: active: true TooGenericExceptionCaught: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidHostTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] exceptionNames: - 'ArrayIndexOutOfBoundsException' - 'Error' @@ -341,7 +341,7 @@ naming: minimumFunctionNameLength: 3 FunctionNaming: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidHostTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] functionPattern: '[a-z][a-zA-Z0-9]*' excludeClassPattern: '$^' ignoreAnnotated: @@ -401,10 +401,10 @@ performance: threshold: 3 ForEachOnRange: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidHostTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] SpreadOperator: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidHostTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] UnnecessaryPartOfBinaryExpression: active: false UnnecessaryTemporaryInstantiation: @@ -477,7 +477,7 @@ potential-bugs: active: true LateinitUsage: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidHostTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] ignoreOnClassesPattern: '' MapGetWithNotNullAssertionOperator: active: true @@ -504,7 +504,7 @@ potential-bugs: active: true UnsafeCallOnNullableType: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidHostTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/wasmJsTest/**'] UnsafeCast: active: true UnusedUnaryOperator: @@ -621,7 +621,7 @@ style: maxJumpCount: 1 MagicNumber: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/*.kts'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidHostTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/mingwX64Test/**', '**/macosTest/**', '**/appleTest/**', '**/linuxTest/**', '**/*.kts'] ignoreNumbers: - '-1' - '0' From 7bb5710ef4eee137cde0d97f12da815dd41c9fff Mon Sep 17 00:00:00 2001 From: Jan Tennert Date: Thu, 11 Sep 2025 10:12:31 +0200 Subject: [PATCH 3/4] Fix android test --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3c4a06d67..54b2632e0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: command: [ - 'jvmTest testDebugUnitTest testReleaseUnitTest', + 'jvmTest testAndroid', 'jsTest wasmJsTest', 'iosX64Test iosSimulatorArm64Test', 'macosArm64Test macosX64Test', From 8599ebf9656af11a9b7b45afb630af9914542867 Mon Sep 17 00:00:00 2001 From: Jan Tennert Date: Thu, 11 Sep 2025 10:23:49 +0200 Subject: [PATCH 4/4] Add missing actual declaration for android --- .../kotlin/PlatformTargetTest.kt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Supabase/src/{androidUnitTest => androidHostTest}/kotlin/PlatformTargetTest.kt (100%) diff --git a/Supabase/src/androidUnitTest/kotlin/PlatformTargetTest.kt b/Supabase/src/androidHostTest/kotlin/PlatformTargetTest.kt similarity index 100% rename from Supabase/src/androidUnitTest/kotlin/PlatformTargetTest.kt rename to Supabase/src/androidHostTest/kotlin/PlatformTargetTest.kt