From 51a70b5c54121f4d4037457473a319a91e53a50a Mon Sep 17 00:00:00 2001 From: Marcello Date: Thu, 26 Mar 2026 22:16:13 +0100 Subject: [PATCH 1/2] Migrate to version catalogs and update dependencies - Migrate all project plugins to use `alias(libs.plugins...)` from version catalogs. - Update `agpVersion` from `8.8.0-alpha05` to `8.8.2`. - Bump `compileSdk` from `35` to `36` across all modules. - Rename root project from "Say It Again" to "Sia". - Centralize plugin definitions in `libs.versions.toml`. --- app/build.gradle.kts | 14 ++++++-------- build.gradle.kts | 15 ++++++--------- common/build.gradle.kts | 8 +++----- connectivity/build.gradle.kts | 8 +++----- feature/home/build.gradle.kts | 8 +++----- feature/saved/build.gradle.kts | 8 +++----- feature/transcribe/build.gradle.kts | 8 +++----- gradle/libs.versions.toml | 9 +++++++-- localData/build.gradle.kts | 8 +++----- remoteData/build.gradle.kts | 8 +++----- scaffold/build.gradle.kts | 8 +++----- settings.gradle.kts | 2 +- ui/build.gradle.kts | 2 +- 13 files changed, 45 insertions(+), 61 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ad879b5..8073036 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,16 +1,14 @@ plugins { - id("com.android.application") - id("org.jetbrains.kotlin.android") - id("org.jetbrains.kotlin.plugin.compose") - - id("com.google.devtools.ksp") - - id("com.google.dagger.hilt.android") + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.compose.compiler) + alias(libs.plugins.google.devtools.ksp) + alias(libs.plugins.hilt.android) } android { namespace = "eu.project.sayitagain" - compileSdk = 35 + compileSdk = 36 defaultConfig { applicationId = "eu.project.sayitagain" diff --git a/build.gradle.kts b/build.gradle.kts index c226b2d..dd6d3f5 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,12 +1,9 @@ plugins { - kotlin("jvm") version "2.0.21" apply false - - id("com.android.application") version "8.8.0-alpha05" apply false - id("org.jetbrains.kotlin.android") version "2.0.21" apply false - - id("com.google.devtools.ksp") version "2.0.21-1.0.27" apply false - - id("org.jetbrains.kotlin.plugin.compose") version "2.0.21" apply false - id("com.google.dagger.hilt.android") version "2.56.2" apply false + alias(libs.plugins.android.application) apply false alias(libs.plugins.android.library) apply false + alias(libs.plugins.kotlin.android) apply false + alias(libs.plugins.kotlin.jvm) apply false + alias(libs.plugins.compose.compiler) apply false + alias(libs.plugins.google.devtools.ksp) apply false + alias(libs.plugins.hilt.android) apply false } \ No newline at end of file diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 3a3079d..23e3515 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -2,15 +2,13 @@ plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.serialization) - - id("com.google.devtools.ksp") - - id("com.google.dagger.hilt.android") + alias(libs.plugins.google.devtools.ksp) + alias(libs.plugins.hilt.android) } android { namespace = "eu.project.common" - compileSdk = 35 + compileSdk = 36 defaultConfig { minSdk = 26 diff --git a/connectivity/build.gradle.kts b/connectivity/build.gradle.kts index aa3e4bd..7d7e685 100644 --- a/connectivity/build.gradle.kts +++ b/connectivity/build.gradle.kts @@ -1,15 +1,13 @@ plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) - - id("com.google.devtools.ksp") - - id("com.google.dagger.hilt.android") + alias(libs.plugins.google.devtools.ksp) + alias(libs.plugins.hilt.android) } android { namespace = "eu.project.connectivity" - compileSdk = 35 + compileSdk = 36 defaultConfig { minSdk = 26 diff --git a/feature/home/build.gradle.kts b/feature/home/build.gradle.kts index b36d85f..ca8513d 100644 --- a/feature/home/build.gradle.kts +++ b/feature/home/build.gradle.kts @@ -3,15 +3,13 @@ plugins { alias(libs.plugins.kotlin.android) alias(libs.plugins.compose.compiler) alias(libs.plugins.kotlin.serialization) - - id("com.google.devtools.ksp") - - id("com.google.dagger.hilt.android") + alias(libs.plugins.google.devtools.ksp) + alias(libs.plugins.hilt.android) } android { namespace = "eu.project.home" - compileSdk = 35 + compileSdk = 36 defaultConfig { minSdk = 26 diff --git a/feature/saved/build.gradle.kts b/feature/saved/build.gradle.kts index bf81f0f..2166a8e 100644 --- a/feature/saved/build.gradle.kts +++ b/feature/saved/build.gradle.kts @@ -3,15 +3,13 @@ plugins { alias(libs.plugins.kotlin.android) alias(libs.plugins.compose.compiler) alias(libs.plugins.kotlin.serialization) - - id("com.google.devtools.ksp") - - id("com.google.dagger.hilt.android") + alias(libs.plugins.google.devtools.ksp) + alias(libs.plugins.hilt.android) } android { namespace = "eu.project.saved" - compileSdk = 35 + compileSdk = 36 defaultConfig { minSdk = 26 diff --git a/feature/transcribe/build.gradle.kts b/feature/transcribe/build.gradle.kts index 2a92dc0..01d1105 100644 --- a/feature/transcribe/build.gradle.kts +++ b/feature/transcribe/build.gradle.kts @@ -3,15 +3,13 @@ plugins { alias(libs.plugins.kotlin.android) alias(libs.plugins.compose.compiler) alias(libs.plugins.kotlin.serialization) - - id("com.google.devtools.ksp") - - id("com.google.dagger.hilt.android") + alias(libs.plugins.google.devtools.ksp) + alias(libs.plugins.hilt.android) } android { namespace = "eu.project.transcribe" - compileSdk = 35 + compileSdk = 36 defaultConfig { minSdk = 26 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0794b0a..b960c6d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,7 +13,7 @@ junitVersion = "1.2.1" espressoCore = "3.6.1" kotlinxCoroutinesTestVersion = "1.8.1" lifecycleRuntimeKtx = "2.9.1" -agpVersion = "8.8.0-alpha05" +agpVersion = "8.8.2" kotlinVersion = "2.0.21" appcompatVersion = "1.7.1" loggingInterceptorVersion = "4.12.0" @@ -33,6 +33,7 @@ serialization = "1.7.3" turbineVersion = "1.2.1" uiTestJunit4Version = "1.8.3" uiTestManifestVersion = "1.8.3" +ksp = "2.0.21-1.0.27" [libraries] androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activityComposeVersion" } @@ -78,4 +79,8 @@ ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4", version.ref = android-library = { id = "com.android.library", version.ref = "agpVersion" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlinVersion" } compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlinVersion" } -kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } \ No newline at end of file +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +android-application = { id = "com.android.application", version.ref = "agpVersion" } +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlinVersion" } +google-devtools-ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } +hilt-android = { id = "com.google.dagger.hilt.android", version.ref = "hiltAndroidVersion" } \ No newline at end of file diff --git a/localData/build.gradle.kts b/localData/build.gradle.kts index 6a06805..ccf55df 100644 --- a/localData/build.gradle.kts +++ b/localData/build.gradle.kts @@ -1,15 +1,13 @@ plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) - - id("com.google.devtools.ksp") - - id("com.google.dagger.hilt.android") + alias(libs.plugins.google.devtools.ksp) + alias(libs.plugins.hilt.android) } android { namespace = "eu.project.localdata" - compileSdk = 35 + compileSdk = 36 defaultConfig { minSdk = 26 diff --git a/remoteData/build.gradle.kts b/remoteData/build.gradle.kts index 1d712cd..d3d55b8 100644 --- a/remoteData/build.gradle.kts +++ b/remoteData/build.gradle.kts @@ -3,15 +3,13 @@ import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) - - id("com.google.devtools.ksp") - - id("com.google.dagger.hilt.android") + alias(libs.plugins.google.devtools.ksp) + alias(libs.plugins.hilt.android) } android { namespace = "eu.project.remotedata" - compileSdk = 35 + compileSdk = 36 defaultConfig { minSdk = 26 diff --git a/scaffold/build.gradle.kts b/scaffold/build.gradle.kts index d62e51c..246e058 100644 --- a/scaffold/build.gradle.kts +++ b/scaffold/build.gradle.kts @@ -3,15 +3,13 @@ plugins { alias(libs.plugins.kotlin.android) alias(libs.plugins.compose.compiler) alias(libs.plugins.kotlin.serialization) - - id("com.google.devtools.ksp") - - id("com.google.dagger.hilt.android") + alias(libs.plugins.google.devtools.ksp) + alias(libs.plugins.hilt.android) } android { namespace = "eu.project.scaffold" - compileSdk = 35 + compileSdk = 36 defaultConfig { minSdk = 26 diff --git a/settings.gradle.kts b/settings.gradle.kts index f29022e..67a4964 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -19,7 +19,7 @@ dependencyResolutionManagement { } } -rootProject.name = "Say It Again" +rootProject.name = "Sia" include(":app") include(":ui") include(":common") diff --git a/ui/build.gradle.kts b/ui/build.gradle.kts index 91465b1..2059e82 100644 --- a/ui/build.gradle.kts +++ b/ui/build.gradle.kts @@ -6,7 +6,7 @@ plugins { android { namespace = "eu.project.ui" - compileSdk = 35 + compileSdk = 36 defaultConfig { minSdk = 26 From 01fffb0d04db16ca300bf9d27509aea01d652edd Mon Sep 17 00:00:00 2001 From: Marcello Date: Thu, 26 Mar 2026 23:02:48 +0100 Subject: [PATCH 2/2] Update dependency versions and add material-icons-extended - Update Kotlin to 2.2.21, AGP to 8.13.1, and Compose BOM to 2026.03.00. - Standardize Compose BOM references across all modules by renaming the library alias to `androidx-compose-bom`. - Update versions for `composeNavigation`, `serialization`, `kotlinxCoroutinesTest`, `lifecycleRuntimeKtx`, and `ksp`. - Add `androidx-material-icons-extended` dependency to `ui` and `feature/saved` modules. --- app/build.gradle.kts | 4 ++-- feature/home/build.gradle.kts | 4 ++-- feature/saved/build.gradle.kts | 7 +++++-- feature/transcribe/build.gradle.kts | 4 ++-- gradle/libs.versions.toml | 24 +++++++++++------------- scaffold/build.gradle.kts | 4 ++-- ui/build.gradle.kts | 3 ++- 7 files changed, 26 insertions(+), 24 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 8073036..911a657 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -50,7 +50,7 @@ dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.activity.compose) - implementation(platform(libs.androidx.compose.bom.v20250601)) + implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.ui) implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) @@ -58,7 +58,7 @@ dependencies { testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) - androidTestImplementation(platform(libs.compose.bom)) + androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.ui.test.junit4) debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) diff --git a/feature/home/build.gradle.kts b/feature/home/build.gradle.kts index ca8513d..3b60c0f 100644 --- a/feature/home/build.gradle.kts +++ b/feature/home/build.gradle.kts @@ -48,7 +48,7 @@ dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.activity.compose) - implementation(platform(libs.androidx.compose.bom.v20250601)) + implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.ui) implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) @@ -56,7 +56,7 @@ dependencies { testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) - androidTestImplementation(platform(libs.compose.bom)) + androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.ui.test.junit4) debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) diff --git a/feature/saved/build.gradle.kts b/feature/saved/build.gradle.kts index 2166a8e..65ceea3 100644 --- a/feature/saved/build.gradle.kts +++ b/feature/saved/build.gradle.kts @@ -48,7 +48,7 @@ dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.activity.compose) - implementation(platform(libs.androidx.compose.bom.v20250601)) + implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.ui) implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) @@ -56,7 +56,7 @@ dependencies { testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) - androidTestImplementation(platform(libs.compose.bom)) + androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.ui.test.junit4) debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) @@ -89,6 +89,9 @@ dependencies { androidTestImplementation(libs.ui.test.junit4) debugImplementation(libs.ui.test.manifest) + // Extended Library of Icons + implementation(libs.androidx.material.icons.extended) + implementation(project(":ui")) implementation(project(":common")) implementation(project(":localData")) diff --git a/feature/transcribe/build.gradle.kts b/feature/transcribe/build.gradle.kts index 01d1105..bfc2373 100644 --- a/feature/transcribe/build.gradle.kts +++ b/feature/transcribe/build.gradle.kts @@ -48,7 +48,7 @@ dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.activity.compose) - implementation(platform(libs.androidx.compose.bom.v20250601)) + implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.ui) implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) @@ -56,7 +56,7 @@ dependencies { testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) - androidTestImplementation(platform(libs.compose.bom)) + androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.ui.test.junit4) debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b960c6d..ae14ba2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,24 +1,22 @@ [versions] converterGsonVersion = "3.0.0" hiltNavigationComposeVersion = "1.2.0" -kotlin = "1.9.0" activityComposeVersion = "1.10.1" -composeBom = "2025.06.01" -composeBomVersion = "2024.04.01" +composeBom = "2026.03.00" coreKtx = "1.16.0" hiltAndroidCompilerVersion = "2.56.2" hiltAndroidVersion = "2.56.2" junit = "4.13.2" junitVersion = "1.2.1" espressoCore = "3.6.1" -kotlinxCoroutinesTestVersion = "1.8.1" -lifecycleRuntimeKtx = "2.9.1" -agpVersion = "8.8.2" -kotlinVersion = "2.0.21" +kotlinxCoroutinesTestVersion = "1.10.1" +lifecycleRuntimeKtx = "2.9.4" +agpVersion = "8.13.1" +kotlinVersion = "2.2.21" appcompatVersion = "1.7.1" loggingInterceptorVersion = "4.12.0" materialVersion = "1.12.0" -composeNavigation = "2.9.2" +composeNavigation = "2.9.6" mockkAgentVersion = "1.13.7" mockkVersion = "1.13.7" mockkAndroidVersion = "1.13.7" @@ -29,15 +27,15 @@ roomCompilerVersion = "2.7.2" roomKtxVersion = "2.7.2" roomRuntimeVersion = "2.7.2" roomTestingVersion = "2.7.2" -serialization = "1.7.3" +serialization = "1.8.0" turbineVersion = "1.2.1" uiTestJunit4Version = "1.8.3" uiTestManifestVersion = "1.8.3" -ksp = "2.0.21-1.0.27" +ksp = "2.2.21-2.0.4" [libraries] androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activityComposeVersion" } -androidx-compose-bom-v20250601 = { module = "androidx.compose:compose-bom", version.ref = "composeBom" } +androidx-compose-bom = { module = "androidx.compose:compose-bom", version.ref = "composeBom" } androidx-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espressoCore" } androidx-hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "hiltNavigationComposeVersion" } androidx-junit = { module = "androidx.test.ext:junit", version.ref = "junitVersion" } @@ -54,7 +52,6 @@ androidx-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest" } androidx-ui-tooling = { module = "androidx.compose.ui:ui-tooling" } androidx-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4" } androidx-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" } -compose-bom = { module = "androidx.compose:compose-bom", version.ref = "composeBomVersion" } converter-gson = { module = "com.squareup.retrofit2:converter-gson", version.ref = "converterGsonVersion" } hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hiltAndroidVersion" } hilt-android-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hiltAndroidCompilerVersion" } @@ -74,12 +71,13 @@ retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit turbine = { module = "app.cash.turbine:turbine", version.ref = "turbineVersion" } ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "uiTestManifestVersion" } ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4", version.ref = "uiTestJunit4Version" } +androidx-material-icons-extended = { module = "androidx.compose.material:material-icons-extended" } [plugins] android-library = { id = "com.android.library", version.ref = "agpVersion" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlinVersion" } compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlinVersion" } -kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlinVersion" } android-application = { id = "com.android.application", version.ref = "agpVersion" } kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlinVersion" } google-devtools-ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } diff --git a/scaffold/build.gradle.kts b/scaffold/build.gradle.kts index 246e058..56eba3e 100644 --- a/scaffold/build.gradle.kts +++ b/scaffold/build.gradle.kts @@ -48,7 +48,7 @@ dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.activity.compose) - implementation(platform(libs.androidx.compose.bom.v20250601)) + implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.ui) implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) @@ -56,7 +56,7 @@ dependencies { testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) - androidTestImplementation(platform(libs.compose.bom)) + androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.ui.test.junit4) debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) diff --git a/ui/build.gradle.kts b/ui/build.gradle.kts index 2059e82..58ea617 100644 --- a/ui/build.gradle.kts +++ b/ui/build.gradle.kts @@ -36,7 +36,7 @@ android { } dependencies { - implementation(platform(libs.androidx.compose.bom.v20250601)) + implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.core.ktx) implementation(libs.androidx.appcompat) implementation(libs.material) @@ -48,6 +48,7 @@ dependencies { implementation(libs.androidx.material3) implementation(libs.androidx.activity.compose) implementation(libs.androidx.lifecycle.runtime.ktx) + implementation(libs.androidx.material.icons.extended) // Testing testImplementation(libs.junit)