From 4b80cfd1c190d5af25ca9692c83cb4dfaf05c637 Mon Sep 17 00:00:00 2001 From: Shinokuni Date: Mon, 5 Aug 2024 23:28:04 +0200 Subject: [PATCH] Migrate to kotlin 2.0 --- .gitignore | 2 ++ api/build.gradle.kts | 3 ++- app/build.gradle.kts | 15 +++++++++------ build.gradle.kts | 13 ++++++++----- db/build.gradle.kts | 3 ++- gradle/libs.versions.toml | 16 ++++++++-------- gradle/wrapper/gradle-wrapper.properties | 2 +- 7 files changed, 32 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index 4f0565bd..8419b581 100644 --- a/.gitignore +++ b/.gitignore @@ -135,3 +135,5 @@ Gemfile mapping/ **/*.exec + +.kotlin/ diff --git a/api/build.gradle.kts b/api/build.gradle.kts index 692f730e..8381c420 100644 --- a/api/build.gradle.kts +++ b/api/build.gradle.kts @@ -31,8 +31,9 @@ dependencies { implementation(libs.coroutines.core) testImplementation(libs.coroutines.test) + implementation(platform(libs.koin.bom)) implementation(libs.bundles.koin) - testImplementation(libs.bundles.kointest) + androidTestImplementation(libs.bundles.kointest) implementation(libs.konsumexml) implementation(libs.kotlinxmlbuilder) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 97cc361d..9945d525 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,6 +1,7 @@ plugins { id("com.android.application") kotlin("android") + alias(libs.plugins.compose.compiler) id("com.mikepenz.aboutlibraries.plugin") } @@ -25,8 +26,10 @@ android { isMinifyEnabled = false isShrinkResources = false - isTestCoverageEnabled = true applicationIdSuffix = ".debug" + enableUnitTestCoverage = true + enableAndroidTestCoverage = true + proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro") } } @@ -36,10 +39,6 @@ android { compose = true } - composeOptions { - kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get() - } - lint { abortOnError = false } @@ -78,8 +77,12 @@ dependencies { implementation(libs.bundles.room) implementation(libs.bundles.paging) + implementation(platform(libs.koin.bom)) implementation(libs.bundles.koin) - androidTestImplementation(libs.bundles.kointest) + //androidTestImplementation(libs.bundles.kointest) + // I don't know why but those dependencies are unreachable when accessed directly from version catalog + androidTestImplementation("io.insert-koin:koin-test:${libs.versions.koin.bom.get()}") + androidTestImplementation("io.insert-koin:koin-test-junit4:${libs.versions.koin.bom.get()}") androidTestImplementation(libs.okhttp.mockserver) diff --git a/build.gradle.kts b/build.gradle.kts index 07312068..7f8b0bea 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,8 +1,10 @@ + import com.android.build.gradle.AppPlugin import com.android.build.gradle.BaseExtension import com.android.build.gradle.LibraryExtension import com.android.build.gradle.LibraryPlugin -import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension buildscript { repositories { @@ -21,6 +23,7 @@ buildscript { plugins { alias(libs.plugins.ksp) apply false + alias(libs.plugins.compose.compiler) apply false } allprojects { @@ -35,9 +38,9 @@ allprojects { subprojects { afterEvaluate { - tasks.withType { - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() + with(extensions.getByType()) { + compilerOptions { + jvmTarget = JvmTarget.JVM_17 } } @@ -81,7 +84,7 @@ fun configure(extension: BaseExtension) = with(extension) { } tasks.register("clean") { - delete(rootProject.buildDir) + delete(rootProject.layout.buildDirectory) } /*jacoco { diff --git a/db/build.gradle.kts b/db/build.gradle.kts index aedfbca6..630b66f2 100644 --- a/db/build.gradle.kts +++ b/db/build.gradle.kts @@ -42,8 +42,9 @@ dependencies { implementation(libs.bundles.paging) + implementation(platform(libs.koin.bom)) implementation(libs.bundles.koin) - testImplementation(libs.bundles.kointest) + androidTestImplementation(libs.bundles.kointest) implementation(libs.bundles.coroutines) androidTestImplementation(libs.coroutines.test) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 40e4d083..bf92f6a8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,9 +1,8 @@ [versions] -kotlin = "1.9.10" -ksp = "1.9.10-1.0.13" -android_agp = "8.1.4" -compose_compiler = "1.5.3" -compose_bom = "2024.02.02" +kotlin = "2.0.0" +ksp = "2.0.0-1.0.24" +android_agp = "8.5.1" +compose_bom = "2024.06.00" voyager = "1.0.0" lifecycle = "2.8.4" @@ -18,6 +17,7 @@ about_libraries = "11.2.2" [plugins] ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } +compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } [libraries] android-agp = { module = "com.android.tools.build:gradle", version.ref = "android_agp" } @@ -64,8 +64,8 @@ koin-bom = { module = "io.insert-koin:koin-bom", version.ref = "koin-bom" } koin-core = { module = "io.insert-koin:koin-core" } koin-android = { module = "io.insert-koin:koin-android" } koin-androidx-compose = { module = "io.insert-koin:koin-androidx-compose" } -koin-test = { module = "io.insert-koin:koin-test", version.ref = "koin-bom" } -koin-test-junit4 = { module = "io.insert-koin:koin-test-junit4", version.ref = "koin-bom" } +koin-test = { module = "io.insert-koin:koin-test" } +koin-test-junit4 = { module = "io.insert-koin:koin-test-junit4" } paging-runtime = { module = "androidx.paging:paging-runtime-ktx", version.ref = "paging" } paging-compose = { module = "androidx.paging:paging-compose", version.ref = "paging" } @@ -113,7 +113,7 @@ lifecycle = ["lifecycle-viewmodel-ktx", "lifecycle-viewmodel-compose", "lifecycl coil = ["coil-core", "coil-compose"] coroutines = ["coroutines-core", "coroutines-android"] room = ["room-runtime", "room-ktx", "room-paging"] -koin = ["koin-bom", "koin-core", "koin-android", "koin-androidx-compose"] +koin = ["koin-core", "koin-android", "koin-androidx-compose"] kointest = ["koin-test", "koin-test-junit4"] paging = ["paging-runtime", "paging-compose"] test = ["junit4", "ext-junit", "ext-runner", "ext-rules", "expressocore"] diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 47e2bb71..a9b21524 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip