From cc311b58b9bc06aac7bc1b37b83ad0410fdfc62f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Feb 2026 04:45:48 +0000 Subject: [PATCH 1/4] Bump kotlin_version from 2.2.21 to 2.3.10 Bumps `kotlin_version` from 2.2.21 to 2.3.10. Updates `org.jetbrains.kotlin:kotlin-reflect` from 2.2.21 to 2.3.10 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.10) Updates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.2.21 to 2.3.10 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.10) Updates `org.jetbrains.kotlin.android` from 2.2.21 to 2.3.10 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.10) Updates `org.jetbrains.kotlin.plugin.serialization` from 2.2.21 to 2.3.10 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.2.21...v2.3.10) --- updated-dependencies: - dependency-name: org.jetbrains.kotlin:kotlin-reflect dependency-version: 2.3.10 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.jetbrains.kotlin:kotlin-gradle-plugin dependency-version: 2.3.10 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.jetbrains.kotlin.android dependency-version: 2.3.10 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.jetbrains.kotlin.plugin.serialization dependency-version: 2.3.10 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- 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 176f23abfc..b9c4d0e8df 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -kotlin_version = "2.2.21" +kotlin_version = "2.3.10" kotlin_coroutine_version = "1.10.2" ksp_version = "2.3.5" kotlin_serialization_version = "1.9.0" From a9be12fb4a7c20cd60e70536d9e865dab256cd87 Mon Sep 17 00:00:00 2001 From: Melad Raouf Date: Tue, 10 Feb 2026 21:05:21 +0000 Subject: [PATCH 2/4] Update realm_version to 4.0.2 in libs.versions.toml --- 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 b9c4d0e8df..b8d95b743f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -81,7 +81,7 @@ uiAutomator_version = "2.3.0" jacoco_version = "0.8.14" sonar_plugin_version = "7.2.2.6593" -realm_version = "4.0.1" +realm_version = "4.0.2" protobuf_plugin_version = "0.9.6" deps_graph_version = "0.8.0" tink_version = "1.20.0" From 3ad20f4c5e4e6db4a95bbc4868fab3d1c376214e Mon Sep 17 00:00:00 2001 From: Melad Raouf Date: Tue, 10 Feb 2026 21:49:24 +0000 Subject: [PATCH 3/4] Update dependencies and remove unused Kotlin Android plugin - Update `kotlin_serialization_version` to 1.10.0 - Update `android_gradlePlugin_version` to 9.0.0 - Update `hilt_version` to 2.59.1 - Update `play_publisher_version` to 4.0.0 - Remove `kotlin-android` plugin definition from `libs.versions.toml` --- build.gradle.kts | 1 - gradle/libs.versions.toml | 9 ++++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index ae8e2b981a..ed462e066c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,7 +3,6 @@ plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.android.library) apply false alias(libs.plugins.android.test) apply false - alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.kotlin.serialization) apply false alias(libs.plugins.ksp) apply false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b8d95b743f..e77b134047 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,9 +2,9 @@ kotlin_version = "2.3.10" kotlin_coroutine_version = "1.10.2" ksp_version = "2.3.5" -kotlin_serialization_version = "1.9.0" +kotlin_serialization_version = "1.10.0" -android_gradlePlugin_version = "8.13.2" +android_gradlePlugin_version = "9.0.0" androidx_version = "1.7.0" androidx_core_version = "1.17.0" androidx_app_compat_version = "1.7.1" @@ -27,14 +27,14 @@ androidx_annotation_version = "1.9.1" androidx_arch_core_version = "2.2.0" material_version = "1.13.0" -hilt_version = "2.57.2" +hilt_version = "2.59.1" hilt_androidx_version = "1.3.0" play_base_services_version = "18.10.0" play_location_services_version = "21.3.0" play_integrity_version = "1.6.0" gsm_plugin_version = "4.4.4" -play_publisher_version = "3.13.0" +play_publisher_version = "4.0.0" play_barcode_version = "18.3.1" ml_entity_extraction_version = "16.0.1" @@ -270,7 +270,6 @@ plugin-room = { group = "androidx.room", name = "room-gradle-plugin", version.re android-application = { id = "com.android.application", version.ref = "android_gradlePlugin_version" } android-library = { id = "com.android.library", version.ref = "android_gradlePlugin_version" } android-test = { id = "com.android.test", version.ref = "android_gradlePlugin_version" } -kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin_version" } kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin_version" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp_version" } gms = { id = "com.google.gms.google-services", version.ref = "gsm_plugin_version" } From 7181e3f49023efaed9e996481344980b00a878f5 Mon Sep 17 00:00:00 2001 From: Melad Raouf Date: Tue, 10 Feb 2026 21:49:56 +0000 Subject: [PATCH 4/4] Refactor Android build logic by splitting `configureKotlinAndroid` into specific application and library configuration functions. - Replace `CommonExtension` with `ApplicationExtension` and `LibraryExtension` in `KotlinAndroid.kt`. - Extract Kotlin compiler options configuration into a standalone `configureKotlinCompiler` function using `KotlinCompile` tasks. - Simplify plugin application in `AndroidApplicationConventionPlugin` and `AndroidLibraryConventionPlugin`. --- .../AndroidApplicationConventionPlugin.kt | 5 +- .../kotlin/AndroidLibraryConventionPlugin.kt | 5 +- .../src/main/kotlin/common/KotlinAndroid.kt | 60 +++++++++++-------- 3 files changed, 40 insertions(+), 30 deletions(-) diff --git a/build-logic/convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt index 88d8ff2cf2..3c73f14b4b 100644 --- a/build-logic/convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt @@ -1,7 +1,7 @@ import com.android.build.api.dsl.ApplicationExtension import common.BuildTypes import common.SdkVersions -import common.configureKotlinAndroid +import common.configureAndroidApplication import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.apply @@ -23,7 +23,6 @@ class AndroidApplicationConventionPlugin : Plugin { with(pluginManager) { apply("com.android.application") - apply("org.jetbrains.kotlin.android") apply("simprints.library.hilt") apply("com.google.firebase.firebase-perf") @@ -34,7 +33,7 @@ class AndroidApplicationConventionPlugin : Plugin { } extensions.configure { - configureKotlinAndroid(this) + configureAndroidApplication(this) defaultConfig { targetSdk = SdkVersions.TARGET diff --git a/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt index a14ac0f9e8..4211c11a6e 100644 --- a/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt @@ -1,7 +1,7 @@ import com.android.build.api.dsl.LibraryExtension import common.BuildTypes +import common.configureAndroidLibrary import common.configureDebugModeBuildTypes -import common.configureKotlinAndroid import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure @@ -13,13 +13,12 @@ class AndroidLibraryConventionPlugin : Plugin { with(target) { with(pluginManager) { apply("com.android.library") - apply("org.jetbrains.kotlin.android") apply("simprints.ci.jacoco") } extensions.configure { - configureKotlinAndroid(this) + configureAndroidLibrary(this) packaging { // remove mockk duplicated files diff --git a/build-logic/convention/src/main/kotlin/common/KotlinAndroid.kt b/build-logic/convention/src/main/kotlin/common/KotlinAndroid.kt index db2acb423a..4cae4e6d37 100644 --- a/build-logic/convention/src/main/kotlin/common/KotlinAndroid.kt +++ b/build-logic/convention/src/main/kotlin/common/KotlinAndroid.kt @@ -1,15 +1,26 @@ package common -import com.android.build.api.dsl.CommonExtension -import com.android.build.api.variant.AndroidComponentsExtension +import com.android.build.api.dsl.ApplicationExtension +import com.android.build.api.dsl.LibraryExtension import org.gradle.api.Project -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -/** - * Configure base Kotlin with Android options - */ -internal fun Project.configureKotlinAndroid(commonExtension: CommonExtension<*, *, *, *, *, *>) { - commonExtension.apply { +internal fun Project.configureKotlinCompiler() { + tasks.withType(KotlinCompile::class.java).configureEach { + compilerOptions { + freeCompilerArgs.addAll( + "-Xnew-inference", + "-opt-in=kotlin.RequiresOptIn", + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", + "-opt-in=kotlinx.coroutines.FlowPreview", + "-opt-in=kotlin.Experimental", + ) + } + } +} + +internal fun Project.configureAndroidApplication(extension: ApplicationExtension) { + extension.apply { compileSdk = SdkVersions.TARGET defaultConfig { @@ -20,23 +31,24 @@ internal fun Project.configureKotlinAndroid(commonExtension: CommonExtension<*, sourceCompatibility = SdkVersions.JAVA_TARGET targetCompatibility = SdkVersions.JAVA_TARGET } + } + + configureKotlinCompiler() +} + +internal fun Project.configureAndroidLibrary(extension: LibraryExtension) { + extension.apply { + compileSdk = SdkVersions.TARGET - extensions.getByType(AndroidComponentsExtension::class.java).onVariants { variant -> - afterEvaluate { - val variantName = variant.name.replaceFirstChar { it.uppercaseChar() } - val compileTaskName = "compile${variantName}Kotlin" - - tasks.named(compileTaskName, KotlinCompilationTask::class.java) { - compilerOptions.freeCompilerArgs.addAll( - "-Xnew-inference", - "-opt-in=kotlin.RequiresOptIn", - // Enable experimental coroutines APIs, including Flow - "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", - "-opt-in=kotlinx.coroutines.FlowPreview", - "-opt-in=kotlin.Experimental", - ) - } - } + defaultConfig { + minSdk = SdkVersions.MIN + } + + compileOptions { + sourceCompatibility = SdkVersions.JAVA_TARGET + targetCompatibility = SdkVersions.JAVA_TARGET } } + + configureKotlinCompiler() }