From a8f7e9bd140f9e14ce4917b3cdee9327081256dd Mon Sep 17 00:00:00 2001 From: mars885 Date: Sat, 17 Aug 2024 19:26:06 +0300 Subject: [PATCH 1/6] Migrate plugins to use version catalogs --- app/build.gradle.kts | 13 +-- build.gradle.kts | 42 +++++---- buildSrc/build.gradle.kts | 28 ++++-- buildSrc/settings.gradle.kts | 7 ++ buildSrc/src/main/java/Dependencies.kt | 6 -- buildSrc/src/main/java/Plugins.kt | 94 ------------------- .../gamedge/extensions/ProjectExtensions.kt | 4 + .../GamedgeAndroidPlugin.kt | 9 +- .../GamedgeProtobufPlugin.kt | 6 +- ...m.paulrybitskyi.gamedge.android.properties | 17 ---- ....paulrybitskyi.gamedge.protobuf.properties | 17 ---- common-api/build.gradle.kts | 9 +- common-data/build.gradle.kts | 11 ++- common-domain/build.gradle.kts | 4 +- common-testing-domain/build.gradle.kts | 2 +- common-testing/build.gradle.kts | 6 +- common-ui-widgets/build.gradle.kts | 13 +-- common-ui/build.gradle.kts | 11 ++- core/build.gradle.kts | 9 +- database/build.gradle.kts | 13 +-- feature-category/build.gradle.kts | 13 +-- feature-discovery/build.gradle.kts | 13 +-- feature-image-viewer/build.gradle.kts | 13 +-- feature-info/build.gradle.kts | 13 +-- feature-likes/build.gradle.kts | 13 +-- feature-news/build.gradle.kts | 13 +-- feature-search/build.gradle.kts | 13 +-- feature-settings/build.gradle.kts | 15 +-- gamespot-api/build.gradle.kts | 13 +-- gradle/libs.versions.toml | 84 +++++++++++++++++ igdb-api/build.gradle.kts | 13 +-- igdb-apicalypse/build.gradle.kts | 2 +- 32 files changed, 268 insertions(+), 271 deletions(-) create mode 100644 buildSrc/settings.gradle.kts delete mode 100644 buildSrc/src/main/java/Plugins.kt rename buildSrc/src/main/java/com/paulrybitskyi/gamedge/{android => plugins}/GamedgeAndroidPlugin.kt (96%) rename buildSrc/src/main/java/com/paulrybitskyi/gamedge/{protobuf => plugins}/GamedgeProtobufPlugin.kt (90%) delete mode 100644 buildSrc/src/main/resources/META-INF/gradle-plugins/com.paulrybitskyi.gamedge.android.properties delete mode 100644 buildSrc/src/main/resources/META-INF/gradle-plugins/com.paulrybitskyi.gamedge.protobuf.properties create mode 100644 gradle/libs.versions.toml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e05f5db21..5d84c931a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,12 +15,13 @@ */ plugins { - androidApplication() - gamedgeAndroid() - jetpackCompose() - kotlinKapt() - ksp() - daggerHilt() + id(libs.plugins.androidApplication.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + + alias(libs.plugins.jetpackCompose) + alias(libs.plugins.ksp) + alias(libs.plugins.daggerHilt) } dependencies { diff --git a/build.gradle.kts b/build.gradle.kts index 60a9cdc58..c7ea56ebf 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -21,19 +21,25 @@ import org.jetbrains.kotlin.gradle.plugin.KaptExtension import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - androidApplication() apply false - androidLibrary() apply false - kotlinAndroid() apply false - protobuf() apply false - - jetpackCompose() version versions.kotlin apply false - ksp() version versions.kspPlugin apply false - daggerHilt() version versions.daggerHilt apply false - kotlinxSerialization() version versions.kotlin apply false - - gradleVersions() version versions.gradleVersionsPlugin apply true - detekt() version versions.detektPlugin apply true - ktlint() version versions.ktlintPlugin apply true + // See https://github.com/gradle/gradle/issues/20084#issuecomment-1060822638 + // for why it has to be done this way + id(libs.plugins.androidApplication.get().pluginId) apply false + id(libs.plugins.androidLibrary.get().pluginId) apply false + id(libs.plugins.kotlinJvm.get().pluginId) apply false + id(libs.plugins.kotlinAndroid.get().pluginId) apply false + id(libs.plugins.kotlinKapt.get().pluginId) apply false + id(libs.plugins.protobuf.get().pluginId) apply false + id(libs.plugins.gamedgeAndroid.get().pluginId) apply false + id(libs.plugins.gamedgeProtobuf.get().pluginId) apply false + + alias(libs.plugins.jetpackCompose) apply false + alias(libs.plugins.ksp) apply false + alias(libs.plugins.daggerHilt) apply false + alias(libs.plugins.kotlinxSerialization) apply false + + alias(libs.plugins.gradleVersions) apply true + alias(libs.plugins.detekt) apply true + alias(libs.plugins.ktlint) apply true } detekt { @@ -55,8 +61,8 @@ tasks.withType { } allprojects { - apply(plugin = PLUGIN_DETEKT) - apply(plugin = PLUGIN_KTLINT) + apply(plugin = rootProject.libs.plugins.detekt.get().pluginId) + apply(plugin = rootProject.libs.plugins.ktlint.get().pluginId) repositories { mavenCentral() @@ -65,7 +71,7 @@ allprojects { } configure { - version.set(versions.ktlint) + version.set(rootProject.libs.versions.ktlint.get()) android.set(true) outputToConsole.set(true) verbose.set(true) @@ -89,13 +95,13 @@ allprojects { } subprojects { - plugins.withId(PLUGIN_KOTLIN) { + plugins.withId(rootProject.libs.plugins.kotlinJvm.get().pluginId) { extensions.findByType()?.run { jvmToolchain(appConfig.jvmToolchainVersion) } } - plugins.withId(PLUGIN_KOTLIN_KAPT) { + plugins.withId(rootProject.libs.plugins.kotlinKapt.get().pluginId) { extensions.findByType()?.run { correctErrorTypes = true } diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index fa4d217d6..d00993c62 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -23,13 +23,27 @@ repositories { google() } +gradlePlugin { + plugins { + create("com.paulrybitskyi.gamedge.android") { + id = "com.paulrybitskyi.gamedge.android" + implementationClass = "com.paulrybitskyi.gamedge.plugins.GamedgeAndroidPlugin" + } + create("com.paulrybitskyi.gamedge.protobuf") { + id = "com.paulrybitskyi.gamedge.protobuf" + implementationClass = "com.paulrybitskyi.gamedge.plugins.GamedgeProtobufPlugin" + } + } +} + dependencies { - implementation("com.android.tools.build:gradle:8.3.1") - // https://github.com/google/dagger/issues/3068#issuecomment-999118496 - // Needs to be checked whether JavaPoet is still needed after AGP is updated - // because currently it forces 1.10 JavaPoet version, for some odd reason. - implementation("com.squareup:javapoet:1.13.0") - implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.10") - implementation("com.google.protobuf:protobuf-gradle-plugin:0.9.4") + // Enabling the usage of the version catalog to be used inside the buildSrc. Parenthesis + // (libs) are used to avoid a strange "Unresolved reference to version catalog" IDE error. + // For more info, see https://github.com/gradle/gradle/issues/15383#issuecomment-779893192 + implementation(files((libs).javaClass.superclass.protectionDomain.codeSource.location)) + + implementation(libs.androidPlugin) + implementation(libs.kotlinPlugin) + implementation(libs.protobufPlugin) implementation(gradleApi()) // for custom plugins } diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts new file mode 100644 index 000000000..b5a0fabf6 --- /dev/null +++ b/buildSrc/settings.gradle.kts @@ -0,0 +1,7 @@ +dependencyResolutionManagement { + versionCatalogs { + create("libs") { + from(files("../gradle/libs.versions.toml")) + } + } +} diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index 159aca071..21dff0b20 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -35,13 +35,7 @@ object appConfig { object versions { - const val kotlin = "2.0.10" // also in buildSrc build.gradle.kts file - const val kspPlugin = "2.0.10-1.0.24" const val daggerHilt = "2.52" - const val gradleVersionsPlugin = "0.51.0" - const val detektPlugin = "1.23.6" - const val ktlintPlugin = "12.1.1" - const val ktlint = "1.3.1" const val coroutines = "1.8.1" const val room = "2.6.1" } diff --git a/buildSrc/src/main/java/Plugins.kt b/buildSrc/src/main/java/Plugins.kt deleted file mode 100644 index 8cef2a970..000000000 --- a/buildSrc/src/main/java/Plugins.kt +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2020 Paul Rybitskyi, paul.rybitskyi.work@gmail.com - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import org.gradle.plugin.use.PluginDependenciesSpec -import org.gradle.plugin.use.PluginDependencySpec - -const val PLUGIN_ANDROID_APPLICATION = "com.android.application" -const val PLUGIN_ANDROID_LIBRARY = "com.android.library" -const val PLUGIN_KOTLIN = "kotlin" -const val PLUGIN_KOTLIN_ANDROID = "kotlin-android" -const val PLUGIN_PROTOBUF = "com.google.protobuf" -const val PLUGIN_JETPACK_COMPOSE = "org.jetbrains.kotlin.plugin.compose" -const val PLUGIN_KOTLIN_KAPT = "kotlin-kapt" -const val PLUGIN_KSP = "com.google.devtools.ksp" -const val PLUGIN_DAGGER_HILT = "com.google.dagger.hilt.android" -const val PLUGIN_KOTLINX_SERIALIZATION = "org.jetbrains.kotlin.plugin.serialization" -const val PLUGIN_GRADLE_VERSIONS = "com.github.ben-manes.versions" -const val PLUGIN_DETEKT = "io.gitlab.arturbosch.detekt" -const val PLUGIN_KTLINT = "org.jlleitschuh.gradle.ktlint" -const val PLUGIN_GAMEDGE_ANDROID = "com.paulrybitskyi.gamedge.android" -const val PLUGIN_GAMEDGE_PROTOBUF = "com.paulrybitskyi.gamedge.protobuf" - -fun PluginDependenciesSpec.androidApplication(): PluginDependencySpec { - return id(PLUGIN_ANDROID_APPLICATION) -} - -fun PluginDependenciesSpec.androidLibrary(): PluginDependencySpec { - return id(PLUGIN_ANDROID_LIBRARY) -} - -fun PluginDependenciesSpec.kotlin(): PluginDependencySpec { - return id(PLUGIN_KOTLIN) -} - -fun PluginDependenciesSpec.kotlinAndroid(): PluginDependencySpec { - return id(PLUGIN_KOTLIN_ANDROID) -} - -fun PluginDependenciesSpec.protobuf(): PluginDependencySpec { - return id(PLUGIN_PROTOBUF) -} - -fun PluginDependenciesSpec.jetpackCompose(): PluginDependencySpec { - return id(PLUGIN_JETPACK_COMPOSE) -} - -fun PluginDependenciesSpec.kotlinKapt(): PluginDependencySpec { - return id(PLUGIN_KOTLIN_KAPT) -} - -fun PluginDependenciesSpec.ksp(): PluginDependencySpec { - return id(PLUGIN_KSP) -} - -fun PluginDependenciesSpec.daggerHilt(): PluginDependencySpec { - return id(PLUGIN_DAGGER_HILT) -} - -fun PluginDependenciesSpec.kotlinxSerialization(): PluginDependencySpec { - return id(PLUGIN_KOTLINX_SERIALIZATION) -} - -fun PluginDependenciesSpec.gradleVersions(): PluginDependencySpec { - return id(PLUGIN_GRADLE_VERSIONS) -} - -fun PluginDependenciesSpec.detekt(): PluginDependencySpec { - return id(PLUGIN_DETEKT) -} - -fun PluginDependenciesSpec.ktlint(): PluginDependencySpec { - return id(PLUGIN_KTLINT) -} - -fun PluginDependenciesSpec.gamedgeAndroid(): PluginDependencySpec { - return id(PLUGIN_GAMEDGE_ANDROID) -} - -fun PluginDependenciesSpec.gamedgeProtobuf(): PluginDependencySpec { - return id(PLUGIN_GAMEDGE_PROTOBUF) -} diff --git a/buildSrc/src/main/java/com/paulrybitskyi/gamedge/extensions/ProjectExtensions.kt b/buildSrc/src/main/java/com/paulrybitskyi/gamedge/extensions/ProjectExtensions.kt index 1cac2eddf..81546fc22 100644 --- a/buildSrc/src/main/java/com/paulrybitskyi/gamedge/extensions/ProjectExtensions.kt +++ b/buildSrc/src/main/java/com/paulrybitskyi/gamedge/extensions/ProjectExtensions.kt @@ -17,6 +17,10 @@ package com.paulrybitskyi.gamedge.extensions import org.gradle.api.Project +import org.gradle.kotlin.dsl.the + +val Project.libs + get() = the() @Suppress("UNCHECKED_CAST") fun Project.property(key: String, default: T): T { diff --git a/buildSrc/src/main/java/com/paulrybitskyi/gamedge/android/GamedgeAndroidPlugin.kt b/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeAndroidPlugin.kt similarity index 96% rename from buildSrc/src/main/java/com/paulrybitskyi/gamedge/android/GamedgeAndroidPlugin.kt rename to buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeAndroidPlugin.kt index de63c7e57..a19318746 100644 --- a/buildSrc/src/main/java/com/paulrybitskyi/gamedge/android/GamedgeAndroidPlugin.kt +++ b/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeAndroidPlugin.kt @@ -14,13 +14,12 @@ * limitations under the License. */ -package com.paulrybitskyi.gamedge.android +package com.paulrybitskyi.gamedge.plugins -import PLUGIN_ANDROID_APPLICATION -import PLUGIN_KOTLIN_ANDROID import appConfig import com.android.build.gradle.BaseExtension import com.android.build.gradle.internal.dsl.BaseAppModuleExtension +import com.paulrybitskyi.gamedge.extensions.libs import deps import org.gradle.api.Plugin import org.gradle.api.Project @@ -43,7 +42,7 @@ class GamedgeAndroidPlugin : Plugin { } private fun Project.setupPlugins() { - plugins.apply(PLUGIN_KOTLIN_ANDROID) + plugins.apply(libs.plugins.kotlinAndroid.get().pluginId) } private fun Project.configurePlugins() { @@ -119,7 +118,7 @@ class GamedgeAndroidPlugin : Plugin { } private fun Project.configureAndroidApplicationId() { - plugins.withId(PLUGIN_ANDROID_APPLICATION) { + plugins.withId(libs.plugins.androidApplication.get().pluginId) { extensions.findByType()?.run { namespace = appConfig.applicationId diff --git a/buildSrc/src/main/java/com/paulrybitskyi/gamedge/protobuf/GamedgeProtobufPlugin.kt b/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeProtobufPlugin.kt similarity index 90% rename from buildSrc/src/main/java/com/paulrybitskyi/gamedge/protobuf/GamedgeProtobufPlugin.kt rename to buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeProtobufPlugin.kt index a91d5fc46..c2e154d80 100644 --- a/buildSrc/src/main/java/com/paulrybitskyi/gamedge/protobuf/GamedgeProtobufPlugin.kt +++ b/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeProtobufPlugin.kt @@ -14,11 +14,11 @@ * limitations under the License. */ -package com.paulrybitskyi.gamedge.protobuf +package com.paulrybitskyi.gamedge.plugins +import com.paulrybitskyi.gamedge.extensions.libs import org.gradle.api.Plugin import org.gradle.api.Project -import PLUGIN_PROTOBUF @Suppress("DEPRECATION") class GamedgeProtobufPlugin : Plugin { @@ -30,7 +30,7 @@ class GamedgeProtobufPlugin : Plugin { } private fun Project.setupPlugin() { - plugins.apply(PLUGIN_PROTOBUF) + plugins.apply(libs.plugins.protobuf.get().pluginId) } private fun Project.configurePlugin() { diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/com.paulrybitskyi.gamedge.android.properties b/buildSrc/src/main/resources/META-INF/gradle-plugins/com.paulrybitskyi.gamedge.android.properties deleted file mode 100644 index 395bbafc4..000000000 --- a/buildSrc/src/main/resources/META-INF/gradle-plugins/com.paulrybitskyi.gamedge.android.properties +++ /dev/null @@ -1,17 +0,0 @@ -# -# Copyright 2020 Paul Rybitskyi, paul.rybitskyi.work@gmail.com -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -implementation-class=com.paulrybitskyi.gamedge.android.GamedgeAndroidPlugin diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/com.paulrybitskyi.gamedge.protobuf.properties b/buildSrc/src/main/resources/META-INF/gradle-plugins/com.paulrybitskyi.gamedge.protobuf.properties deleted file mode 100644 index e7acebe4e..000000000 --- a/buildSrc/src/main/resources/META-INF/gradle-plugins/com.paulrybitskyi.gamedge.protobuf.properties +++ /dev/null @@ -1,17 +0,0 @@ -# -# Copyright 2022 Paul Rybitskyi, paul.rybitskyi.work@gmail.com -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -implementation-class=com.paulrybitskyi.gamedge.protobuf.GamedgeProtobufPlugin diff --git a/common-api/build.gradle.kts b/common-api/build.gradle.kts index 2bf7fafec..795a30d0f 100644 --- a/common-api/build.gradle.kts +++ b/common-api/build.gradle.kts @@ -15,10 +15,11 @@ */ plugins { - androidLibrary() - gamedgeAndroid() - kotlinKapt() - ksp() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + + alias(libs.plugins.ksp) } android { diff --git a/common-data/build.gradle.kts b/common-data/build.gradle.kts index d356cbf0f..ddcf74238 100644 --- a/common-data/build.gradle.kts +++ b/common-data/build.gradle.kts @@ -17,11 +17,12 @@ import com.google.protobuf.gradle.id plugins { - androidLibrary() - gamedgeAndroid() - kotlinKapt() - ksp() - protobuf() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + id(libs.plugins.protobuf.get().pluginId) + + alias(libs.plugins.ksp) } android { diff --git a/common-domain/build.gradle.kts b/common-domain/build.gradle.kts index 442f13084..0b0ac6348 100644 --- a/common-domain/build.gradle.kts +++ b/common-domain/build.gradle.kts @@ -15,8 +15,8 @@ */ plugins { - kotlin() - kotlinKapt() + id(libs.plugins.kotlinJvm.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) } dependencies { diff --git a/common-testing-domain/build.gradle.kts b/common-testing-domain/build.gradle.kts index ac0779d81..6470998d0 100644 --- a/common-testing-domain/build.gradle.kts +++ b/common-testing-domain/build.gradle.kts @@ -15,7 +15,7 @@ */ plugins { - kotlin() + id(libs.plugins.kotlinJvm.get().pluginId) } dependencies { diff --git a/common-testing/build.gradle.kts b/common-testing/build.gradle.kts index 801a9adfb..1b9d295b1 100644 --- a/common-testing/build.gradle.kts +++ b/common-testing/build.gradle.kts @@ -15,9 +15,9 @@ */ plugins { - androidLibrary() - gamedgeAndroid() - kotlinKapt() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) } android { diff --git a/common-ui-widgets/build.gradle.kts b/common-ui-widgets/build.gradle.kts index df098e7eb..6cca9edf6 100644 --- a/common-ui-widgets/build.gradle.kts +++ b/common-ui-widgets/build.gradle.kts @@ -15,12 +15,13 @@ */ plugins { - androidLibrary() - gamedgeAndroid() - jetpackCompose() - kotlinKapt() - ksp() - daggerHilt() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + + alias(libs.plugins.jetpackCompose) + alias(libs.plugins.ksp) + alias(libs.plugins.daggerHilt) } android { diff --git a/common-ui/build.gradle.kts b/common-ui/build.gradle.kts index f66d8da59..d8a382493 100644 --- a/common-ui/build.gradle.kts +++ b/common-ui/build.gradle.kts @@ -15,11 +15,12 @@ */ plugins { - androidLibrary() - gamedgeAndroid() - jetpackCompose() - kotlinKapt() - ksp() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + + alias(libs.plugins.jetpackCompose) + alias(libs.plugins.ksp) } android { diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 742e75532..f4fc8107c 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -15,10 +15,11 @@ */ plugins { - androidLibrary() - gamedgeAndroid() - kotlinKapt() - ksp() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + + alias(libs.plugins.ksp) } android { diff --git a/database/build.gradle.kts b/database/build.gradle.kts index 547894389..ee99510f3 100644 --- a/database/build.gradle.kts +++ b/database/build.gradle.kts @@ -15,12 +15,13 @@ */ plugins { - androidLibrary() - gamedgeAndroid() - kotlinKapt() - ksp() - kotlinxSerialization() - daggerHilt() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + + alias(libs.plugins.ksp) + alias(libs.plugins.daggerHilt) + alias(libs.plugins.kotlinxSerialization) } android { diff --git a/feature-category/build.gradle.kts b/feature-category/build.gradle.kts index 14c34156a..d0030bea5 100644 --- a/feature-category/build.gradle.kts +++ b/feature-category/build.gradle.kts @@ -15,12 +15,13 @@ */ plugins { - androidLibrary() - gamedgeAndroid() - jetpackCompose() - kotlinKapt() - ksp() - daggerHilt() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + + alias(libs.plugins.jetpackCompose) + alias(libs.plugins.ksp) + alias(libs.plugins.daggerHilt) } android { diff --git a/feature-discovery/build.gradle.kts b/feature-discovery/build.gradle.kts index ccc7284f3..19f04de23 100644 --- a/feature-discovery/build.gradle.kts +++ b/feature-discovery/build.gradle.kts @@ -15,12 +15,13 @@ */ plugins { - androidLibrary() - gamedgeAndroid() - jetpackCompose() - kotlinKapt() - ksp() - daggerHilt() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + + alias(libs.plugins.jetpackCompose) + alias(libs.plugins.ksp) + alias(libs.plugins.daggerHilt) } android { diff --git a/feature-image-viewer/build.gradle.kts b/feature-image-viewer/build.gradle.kts index 060150fea..53c24c5a2 100644 --- a/feature-image-viewer/build.gradle.kts +++ b/feature-image-viewer/build.gradle.kts @@ -15,12 +15,13 @@ */ plugins { - androidLibrary() - gamedgeAndroid() - jetpackCompose() - kotlinKapt() - ksp() - daggerHilt() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + + alias(libs.plugins.jetpackCompose) + alias(libs.plugins.ksp) + alias(libs.plugins.daggerHilt) } android { diff --git a/feature-info/build.gradle.kts b/feature-info/build.gradle.kts index f36c2cba9..2d4560505 100644 --- a/feature-info/build.gradle.kts +++ b/feature-info/build.gradle.kts @@ -15,12 +15,13 @@ */ plugins { - androidLibrary() - gamedgeAndroid() - jetpackCompose() - kotlinKapt() - ksp() - daggerHilt() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + + alias(libs.plugins.jetpackCompose) + alias(libs.plugins.ksp) + alias(libs.plugins.daggerHilt) } android { diff --git a/feature-likes/build.gradle.kts b/feature-likes/build.gradle.kts index b3ef5305e..a5d43dff1 100644 --- a/feature-likes/build.gradle.kts +++ b/feature-likes/build.gradle.kts @@ -15,12 +15,13 @@ */ plugins { - androidLibrary() - gamedgeAndroid() - jetpackCompose() - kotlinKapt() - ksp() - daggerHilt() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + + alias(libs.plugins.jetpackCompose) + alias(libs.plugins.ksp) + alias(libs.plugins.daggerHilt) } android { diff --git a/feature-news/build.gradle.kts b/feature-news/build.gradle.kts index 462a08ec1..6e1627b46 100644 --- a/feature-news/build.gradle.kts +++ b/feature-news/build.gradle.kts @@ -15,12 +15,13 @@ */ plugins { - androidLibrary() - gamedgeAndroid() - jetpackCompose() - kotlinKapt() - ksp() - daggerHilt() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + + alias(libs.plugins.jetpackCompose) + alias(libs.plugins.ksp) + alias(libs.plugins.daggerHilt) } android { diff --git a/feature-search/build.gradle.kts b/feature-search/build.gradle.kts index 7e2677a68..d0d023ac3 100644 --- a/feature-search/build.gradle.kts +++ b/feature-search/build.gradle.kts @@ -15,12 +15,13 @@ */ plugins { - androidLibrary() - gamedgeAndroid() - jetpackCompose() - kotlinKapt() - ksp() - daggerHilt() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + + alias(libs.plugins.jetpackCompose) + alias(libs.plugins.ksp) + alias(libs.plugins.daggerHilt) } android { diff --git a/feature-settings/build.gradle.kts b/feature-settings/build.gradle.kts index 407b2b7a3..1d42b292f 100644 --- a/feature-settings/build.gradle.kts +++ b/feature-settings/build.gradle.kts @@ -17,13 +17,14 @@ import com.google.protobuf.gradle.id plugins { - androidLibrary() - gamedgeAndroid() - jetpackCompose() - kotlinKapt() - ksp() - daggerHilt() - protobuf() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + id(libs.plugins.protobuf.get().pluginId) + + alias(libs.plugins.jetpackCompose) + alias(libs.plugins.ksp) + alias(libs.plugins.daggerHilt) } android { diff --git a/gamespot-api/build.gradle.kts b/gamespot-api/build.gradle.kts index b4a68f7bb..884ab42b2 100644 --- a/gamespot-api/build.gradle.kts +++ b/gamespot-api/build.gradle.kts @@ -18,12 +18,13 @@ import com.paulrybitskyi.gamedge.extensions.property import com.paulrybitskyi.gamedge.extensions.stringField plugins { - androidLibrary() - gamedgeAndroid() - kotlinKapt() - ksp() - kotlinxSerialization() - daggerHilt() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + + alias(libs.plugins.ksp) + alias(libs.plugins.daggerHilt) + alias(libs.plugins.kotlinxSerialization) } android { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 000000000..567d1594d --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,84 @@ +[versions] +kotlin = "2.0.10" +daggerHilt = "2.52" +ktlint = "1.3.1" +coroutines = "1.8.1" +room = "2.6.1" + +# Plugins +androidPlugin = "8.3.1" +protobufPlugin = "0.9.4" +kspPlugin = "2.0.10-1.0.24" +gradleVersionsPlugin = "0.51.0" +detektPlugin = "1.23.6" +ktlintPlugin = "12.1.1" + +# Kotlix +serialization = "1.7.1" + +# AndroidX +splash = "1.0.1" +viewModel = "2.5.1" # to be deleted when the linked issue at use site is fixed +browser = "1.8.0" +dataStore = "1.1.1" + +# Compose +compose = "1.6.8" +activity = "1.9.1" +navigation = "2.7.7" +constraintLayout = "1.1.0-alpha13" +hilt = "1.2.0" +accompanist = "0.34.0" + +# Google +protobuf = "4.27.3" + +# Square +okHttp = "4.12.0" +retrofit = "2.11.0" +retrofitKotlinxSerializationConverter = "1.0.0" + +# Commons +core = "1.0.4" +ktx = "1.0.4" +network = "1.0.3" +windowAnims = "1.0.2" + +# Misc +desugaredLibs = "2.0.4" +kotlinResult = "2.0.0" +hiltBinder = "1.1.3" +coil = "2.7.0" +zoomable = "1.6.1" + +# Testing +jUnit = "4.13.2" +jUnitExt = "1.2.1" +truth = "1.4.4" +mockk = "1.13.12" +turbine = "1.1.0" +testRunner = "1.6.1" +archCore = "2.2.0" +mockWebServer = "4.12.0" + +[plugins] +androidApplication = { id = "com.android.application", version.ref = "androidPlugin" } +androidLibrary = { id = "com.android.library", version.ref = "androidPlugin" } +kotlinJvm = { id = "kotlin", version.ref = "kotlin" } +kotlinAndroid = { id = "kotlin-android", version.ref = "kotlin" } +kotlinKapt = { id = "kotlin-kapt", version.ref = "kotlin" } +protobuf = { id = "com.google.protobuf", version.ref = "protobufPlugin" } +jetpackCompose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } +ksp = { id = "com.google.devtools.ksp", version.ref = "kspPlugin" } +daggerHilt = { id = "com.google.dagger.hilt.android", version.ref = "daggerHilt" } +kotlinxSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +gradleVersions = { id = "com.github.ben-manes.versions", version.ref = "gradleVersionsPlugin" } +detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detektPlugin" } +ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlintPlugin" } +gamedgeAndroid = { id = "com.paulrybitskyi.gamedge.android" } +gamedgeProtobuf = { id = "com.paulrybitskyi.gamedge.protobuf" } + +[libraries] +androidPlugin = { module = "com.android.tools.build:gradle", version.ref = "androidPlugin" } +kotlinPlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } +protobufPlugin = { module = "com.google.protobuf:protobuf-gradle-plugin", version.ref = "protobufPlugin" } diff --git a/igdb-api/build.gradle.kts b/igdb-api/build.gradle.kts index 187f767ed..124cddec2 100644 --- a/igdb-api/build.gradle.kts +++ b/igdb-api/build.gradle.kts @@ -18,12 +18,13 @@ import com.paulrybitskyi.gamedge.extensions.property import com.paulrybitskyi.gamedge.extensions.stringField plugins { - androidLibrary() - gamedgeAndroid() - kotlinKapt() - ksp() - kotlinxSerialization() - daggerHilt() + id(libs.plugins.androidLibrary.get().pluginId) + id(libs.plugins.gamedgeAndroid.get().pluginId) + id(libs.plugins.kotlinKapt.get().pluginId) + + alias(libs.plugins.ksp) + alias(libs.plugins.daggerHilt) + alias(libs.plugins.kotlinxSerialization) } android { diff --git a/igdb-apicalypse/build.gradle.kts b/igdb-apicalypse/build.gradle.kts index 268a80be6..89f405f58 100644 --- a/igdb-apicalypse/build.gradle.kts +++ b/igdb-apicalypse/build.gradle.kts @@ -15,7 +15,7 @@ */ plugins { - kotlin() + id(libs.plugins.kotlinJvm.get().pluginId) } dependencies { From 328bca8246cccf136e753f961c832e37a9518059 Mon Sep 17 00:00:00 2001 From: mars885 Date: Sat, 17 Aug 2024 19:37:27 +0300 Subject: [PATCH 2/6] Add JavaPoet fix back --- buildSrc/build.gradle.kts | 5 +++++ gradle/libs.versions.toml | 3 +++ 2 files changed, 8 insertions(+) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index d00993c62..d81e7b052 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -46,4 +46,9 @@ dependencies { implementation(libs.kotlinPlugin) implementation(libs.protobufPlugin) implementation(gradleApi()) // for custom plugins + + // https://github.com/google/dagger/issues/3068#issuecomment-999118496 + // Needs to be checked whether JavaPoet is still needed after AGP is updated + // because currently it forces 1.10 JavaPoet version, for some odd reason. + implementation(libs.javaPoet) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 567d1594d..254e6e7d9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -34,6 +34,7 @@ accompanist = "0.34.0" protobuf = "4.27.3" # Square +javaPoet = "1.13.0" okHttp = "4.12.0" retrofit = "2.11.0" retrofitKotlinxSerializationConverter = "1.0.0" @@ -82,3 +83,5 @@ gamedgeProtobuf = { id = "com.paulrybitskyi.gamedge.protobuf" } androidPlugin = { module = "com.android.tools.build:gradle", version.ref = "androidPlugin" } kotlinPlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } protobufPlugin = { module = "com.google.protobuf:protobuf-gradle-plugin", version.ref = "protobufPlugin" } + +javaPoet = { module = "com.squareup:javapoet", version.ref = "javaPoet" } From a36b272b88e20c95717a893d455b08268e6b519b Mon Sep 17 00:00:00 2001 From: mars885 Date: Sun, 18 Aug 2024 01:01:20 +0300 Subject: [PATCH 3/6] Migrate libraries to use version catalogs --- app/build.gradle.kts | 64 +++---- build.gradle.kts | 2 +- buildSrc/src/main/java/Dependencies.kt | 168 ------------------ .../gamedge/plugins/GamedgeAndroidPlugin.kt | 5 +- .../gamedge/plugins/GamedgeProtobufPlugin.kt | 2 +- common-api/build.gradle.kts | 24 +-- common-data/build.gradle.kts | 44 ++--- common-domain/build.gradle.kts | 20 +-- common-testing-domain/build.gradle.kts | 8 +- common-testing/build.gradle.kts | 20 +-- common-ui-widgets/build.gradle.kts | 36 ++-- common-ui/build.gradle.kts | 34 ++-- core/build.gradle.kts | 40 ++--- database/build.gradle.kts | 50 +++--- feature-category/build.gradle.kts | 52 +++--- feature-discovery/build.gradle.kts | 54 +++--- feature-image-viewer/build.gradle.kts | 60 +++---- feature-info/build.gradle.kts | 64 +++---- feature-likes/build.gradle.kts | 52 +++--- feature-news/build.gradle.kts | 62 +++---- feature-search/build.gradle.kts | 54 +++--- feature-settings/build.gradle.kts | 56 +++--- gamespot-api/build.gradle.kts | 44 ++--- gradle/libs.versions.toml | 112 +++++++++++- igdb-api/build.gradle.kts | 46 ++--- igdb-apicalypse/build.gradle.kts | 4 +- 26 files changed, 552 insertions(+), 625 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5d84c931a..dcd4dabb0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -25,45 +25,45 @@ plugins { } dependencies { - implementation(project(deps.local.commonDomain)) - implementation(project(deps.local.commonData)) - implementation(project(deps.local.core)) - implementation(project(deps.local.commonUi)) - implementation(project(deps.local.commonUiWidgets)) - implementation(project(deps.local.igdbApi)) - implementation(project(deps.local.gamespotApi)) - implementation(project(deps.local.database)) - implementation(project(deps.local.featureCategory)) - implementation(project(deps.local.featureDiscovery)) - implementation(project(deps.local.featureInfo)) - implementation(project(deps.local.featureImageViewer)) - implementation(project(deps.local.featureLikes)) - implementation(project(deps.local.featureNews)) - implementation(project(deps.local.featureSearch)) - implementation(project(deps.local.featureSettings)) + implementation(project(libs.versions.localCommonDomain.get())) + implementation(project(libs.versions.localCommonData.get())) + implementation(project(libs.versions.localCore.get())) + implementation(project(libs.versions.localCommonUi.get())) + implementation(project(libs.versions.localCommonUiWidgets.get())) + implementation(project(libs.versions.localIgdbApi.get())) + implementation(project(libs.versions.localGamespotApi.get())) + implementation(project(libs.versions.localDatabase.get())) + implementation(project(libs.versions.localFeatureCategory.get())) + implementation(project(libs.versions.localFeatureDiscovery.get())) + implementation(project(libs.versions.localFeatureInfo.get())) + implementation(project(libs.versions.localFeatureImageViewer.get())) + implementation(project(libs.versions.localFeatureLikes.get())) + implementation(project(libs.versions.localFeatureNews.get())) + implementation(project(libs.versions.localFeatureSearch.get())) + implementation(project(libs.versions.localFeatureSettings.get())) - implementation(deps.androidX.splash) + implementation(libs.splash) - implementation(deps.compose.ui) - implementation(deps.compose.tooling) - implementation(deps.compose.foundation) - implementation(deps.compose.material) - implementation(deps.compose.runtime) - implementation(deps.compose.navigation) - implementation(deps.compose.accompanist.navigationAnimations) + implementation(libs.composeUi) + implementation(libs.composeTooling) + implementation(libs.composeFoundation) + implementation(libs.composeMaterial) + implementation(libs.composeRuntime) + implementation(libs.composeNavigation) + implementation(libs.accompanistNavigationAnimations) - implementation(deps.commons.core) - implementation(deps.commons.ktx) + implementation(libs.commonsCore) + implementation(libs.commonsKtx) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(deps.testing.jUnit) + testImplementation(libs.jUnit) - androidTestImplementation(deps.testing.jUnitExt) + androidTestImplementation(libs.jUnitExt) } val installGitHook by tasks.registering(Copy::class) { diff --git a/build.gradle.kts b/build.gradle.kts index c7ea56ebf..a677efabd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -130,7 +130,7 @@ subprojects { configurations.all { resolutionStrategy.eachDependency { if (requested.group == "androidx.lifecycle" && requested.name == "lifecycle-viewmodel-ktx") { - useVersion(deps.androidX.viewModel) + useVersion(rootProject.libs.versions.viewModel.get()) } } } diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index 21dff0b20..36736df2e 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -32,171 +32,3 @@ object appConfig { val javaCompatibilityVersion = JavaVersion.VERSION_17 } - -object versions { - - const val daggerHilt = "2.52" - const val coroutines = "1.8.1" - const val room = "2.6.1" -} - -object deps { - - object local { - - const val core = ":core" - const val database = ":database" - const val igdbApi = ":igdb-api" - const val igdbApicalypse = ":igdb-apicalypse" - const val gamespotApi = ":gamespot-api" - const val commonDomain = ":common-domain" - const val commonData = ":common-data" - const val commonUi = ":common-ui" - const val commonUiWidgets = ":common-ui-widgets" - const val commonApi = ":common-api" - const val commonTestingDomain = ":common-testing-domain" - const val commonTesting = ":common-testing" - - const val featureCategory = ":feature-category" - const val featureDiscovery = ":feature-discovery" - const val featureInfo = ":feature-info" - const val featureImageViewer = ":feature-image-viewer" - const val featureLikes = ":feature-likes" - const val featureNews = ":feature-news" - const val featureSearch = ":feature-search" - const val featureSettings = ":feature-settings" - } - - object kotlin { - - private const val serializationVersion = "1.7.1" - - const val coroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-android:${versions.coroutines}" - const val serialization = "org.jetbrains.kotlinx:kotlinx-serialization-json:$serializationVersion" - } - - object androidX { - - private const val splashVersion = "1.0.1" - const val viewModel = "2.5.1" // to be deleted when the linked issue at use site is fixed - private const val browserVersion = "1.8.0" - private const val dataStoreVersion = "1.1.1" - - const val splash = "androidx.core:core-splashscreen:$splashVersion" - const val browser = "androidx.browser:browser:${browserVersion}" - const val room = "androidx.room:room-runtime:${versions.room}" - const val roomKtx = "androidx.room:room-ktx:${versions.room}" - const val roomCompiler = "androidx.room:room-compiler:${versions.room}" - const val prefsDataStore = "androidx.datastore:datastore-preferences:${dataStoreVersion}" - const val protoDataStore = "androidx.datastore:datastore:${dataStoreVersion}" - } - - object compose { - - private const val composeVersion = "1.6.8" - private const val activityVersion = "1.9.1" - private const val navigationVersion = "2.7.7" - private const val constraintLayoutVersion = "1.1.0-alpha13" - private const val hiltVersion = "1.2.0" - - const val ui = "androidx.compose.ui:ui:$composeVersion" - const val tooling = "androidx.compose.ui:ui-tooling:$composeVersion" - const val animation = "androidx.compose.animation:animation-graphics:$composeVersion" - const val foundation = "androidx.compose.foundation:foundation:$composeVersion" - const val material = "androidx.compose.material:material:$composeVersion" - const val runtime = "androidx.compose.runtime:runtime:$composeVersion" - - const val activity = "androidx.activity:activity-compose:$activityVersion" - const val navigation = "androidx.navigation:navigation-compose:$navigationVersion" - const val constraintLayout = "androidx.constraintlayout:constraintlayout-compose:$constraintLayoutVersion" - const val hilt = "androidx.hilt:hilt-navigation-compose:$hiltVersion" - - object accompanist { - - const val version = "0.34.0" - - const val swipeRefresh = "com.google.accompanist:accompanist-swiperefresh:$version" - const val flowLayout = "com.google.accompanist:accompanist-flowlayout:$version" - const val pager = "com.google.accompanist:accompanist-pager:$version" - const val systemUi = "com.google.accompanist:accompanist-systemuicontroller:$version" - const val navigationAnimations = "com.google.accompanist:accompanist-navigation-animation:$version" - } - } - - object google { - - private const val protobufVersion = "4.27.3" - - const val daggerHiltCore = "com.google.dagger:hilt-core:${versions.daggerHilt}" - const val daggerHiltCoreCompiler = "com.google.dagger:hilt-compiler:${versions.daggerHilt}" - const val daggerHiltAndroid = "com.google.dagger:hilt-android:${versions.daggerHilt}" - const val daggerHiltAndroidCompiler = "com.google.dagger:hilt-android-compiler:${versions.daggerHilt}" - const val protobuf = "com.google.protobuf:protobuf-javalite:${protobufVersion}" - const val protobufCompiler = "com.google.protobuf:protoc:${protobufVersion}" - } - - object square { - - private const val okHttpVersion = "4.12.0" - private const val retrofitVersion = "2.11.0" - private const val retrofitKotlinxSerializationConverterVersion = "1.0.0" - - const val okHttpLoggingInterceptor = "com.squareup.okhttp3:logging-interceptor:${okHttpVersion}" - const val retrofit = "com.squareup.retrofit2:retrofit:${retrofitVersion}" - const val retrofitScalarsConverter = "com.squareup.retrofit2:converter-scalars:${retrofitVersion}" - const val retrofitKotlinxSerializationConverter = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:$retrofitKotlinxSerializationConverterVersion" - } - - object commons { - - private const val coreVersion = "1.0.4" - private const val ktxVersion = "1.0.4" - private const val networkVersion = "1.0.3" - private const val windowAnimsVersion = "1.0.2" - - const val core = "com.paulrybitskyi.commons:commons-core:${coreVersion}" - const val ktx = "com.paulrybitskyi.commons:commons-ktx:${ktxVersion}" - const val network = "com.paulrybitskyi.commons:commons-network:${networkVersion}" - const val windowAnims = "com.paulrybitskyi.commons:commons-window-anims:${windowAnimsVersion}" - } - - object misc { - - private const val desugaredLibsVersion = "2.0.4" - private const val kotlinResultVersion = "2.0.0" - private const val hiltBinderVersion = "1.1.3" - private const val coilVersion = "2.7.0" - private const val zoomableVersion = "1.6.1" - - const val desugaredLibs = "com.android.tools:desugar_jdk_libs:${desugaredLibsVersion}" - const val kotlinResult = "com.michael-bull.kotlin-result:kotlin-result:${kotlinResultVersion}" - const val hiltBinder = "com.paulrybitskyi:hilt-binder:$hiltBinderVersion" - const val hiltBinderCompiler = "com.paulrybitskyi:hilt-binder-compiler:$hiltBinderVersion" - const val coil = "io.coil-kt:coil-compose:$coilVersion" - const val zoomable = "com.mxalbert.zoomable:zoomable:$zoomableVersion" - } - - object testing { - - private const val jUnitVersion = "4.13.2" - private const val jUnitExtVersion = "1.2.1" - private const val truthVersion = "1.4.4" - private const val mockkVersion = "1.13.12" - private const val turbineVersion = "1.1.0" - private const val testRunnerVersion = "1.6.1" - private const val archCoreVersion = "2.2.0" - private const val mockWebServerVersion = "4.12.0" - - const val jUnit = "junit:junit:$jUnitVersion" - const val jUnitExt = "androidx.test.ext:junit:$jUnitExtVersion" - const val truth = "com.google.truth:truth:$truthVersion" - const val mockk = "io.mockk:mockk:$mockkVersion" - const val coroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-test:${versions.coroutines}" - const val turbine = "app.cash.turbine:turbine:$turbineVersion" - const val testRunner = "androidx.test:runner:$testRunnerVersion" - const val archCore = "androidx.arch.core:core-testing:$archCoreVersion" - const val daggerHilt = "com.google.dagger:hilt-android-testing:${versions.daggerHilt}" - const val room = "androidx.room:room-testing:${versions.room}" - const val mockWebServer = "com.squareup.okhttp3:mockwebserver:$mockWebServerVersion" - } -} diff --git a/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeAndroidPlugin.kt b/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeAndroidPlugin.kt index a19318746..a24b0df19 100644 --- a/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeAndroidPlugin.kt +++ b/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeAndroidPlugin.kt @@ -20,7 +20,6 @@ import appConfig import com.android.build.gradle.BaseExtension import com.android.build.gradle.internal.dsl.BaseAppModuleExtension import com.paulrybitskyi.gamedge.extensions.libs -import deps import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.findByType @@ -166,7 +165,7 @@ class GamedgeAndroidPlugin : Plugin { } private fun Project.addDependencies() { - dependencies.add("coreLibraryDesugaring", deps.misc.desugaredLibs) - dependencies.add("androidTestImplementation", project(deps.local.commonTesting)) + dependencies.add("coreLibraryDesugaring", libs.desugaredJdk.get()) + dependencies.add("androidTestImplementation", project(libs.versions.localCommonTesting.get())) } } diff --git a/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeProtobufPlugin.kt b/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeProtobufPlugin.kt index c2e154d80..91d17c300 100644 --- a/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeProtobufPlugin.kt +++ b/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeProtobufPlugin.kt @@ -52,6 +52,6 @@ class GamedgeProtobufPlugin : Plugin { } private fun Project.addProtobufDependency() { - dependencies.add("implementation", deps.google.protobuf) + dependencies.add("implementation", libs.protobuf.get()) } } diff --git a/common-api/build.gradle.kts b/common-api/build.gradle.kts index 795a30d0f..1b3df347a 100644 --- a/common-api/build.gradle.kts +++ b/common-api/build.gradle.kts @@ -31,22 +31,22 @@ android { } dependencies { - implementation(project(deps.local.core)) + implementation(project(libs.versions.localCore.get())) - implementation(deps.kotlin.serialization) + implementation(libs.kotlinxSerialization) - implementation(deps.square.okHttpLoggingInterceptor) - implementation(deps.square.retrofit) - implementation(deps.square.retrofitKotlinxSerializationConverter) + implementation(libs.okHttpLoggingInterceptor) + implementation(libs.retrofit) + implementation(libs.retrofitKotlinxSerializationConverter) - implementation(deps.misc.kotlinResult) + implementation(libs.kotlinResult) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(deps.testing.jUnit) - androidTestImplementation(deps.testing.jUnitExt) + testImplementation(libs.jUnit) + androidTestImplementation(libs.jUnitExt) } diff --git a/common-data/build.gradle.kts b/common-data/build.gradle.kts index ddcf74238..4a140f3f0 100644 --- a/common-data/build.gradle.kts +++ b/common-data/build.gradle.kts @@ -31,7 +31,7 @@ android { protobuf { protoc { - artifact = deps.google.protobufCompiler + artifact = libs.protobufCompiler.get().toString() } generateProtoTasks { @@ -46,32 +46,32 @@ protobuf { } dependencies { - implementation(project(deps.local.commonDomain)) - implementation(project(deps.local.core)) - implementation(project(deps.local.igdbApi)) - implementation(project(deps.local.database)) + implementation(project(libs.versions.localCommonDomain.get())) + implementation(project(libs.versions.localCore.get())) + implementation(project(libs.versions.localIgdbApi.get())) + implementation(project(libs.versions.localDatabase.get())) - implementation(deps.kotlin.coroutines) + implementation(libs.coroutines) - implementation(deps.androidX.prefsDataStore) - implementation(deps.androidX.protoDataStore) - implementation(deps.google.protobuf) + implementation(libs.prefsDataStore) + implementation(libs.protoDataStore) + implementation(libs.protobuf) - implementation(deps.misc.kotlinResult) + implementation(libs.kotlinResult) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(project(deps.local.commonTesting)) - testImplementation(deps.testing.jUnit) - testImplementation(deps.testing.truth) - testImplementation(deps.testing.mockk) - testImplementation(deps.testing.coroutines) - testImplementation(deps.testing.turbine) + testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(libs.jUnit) + testImplementation(libs.truth) + testImplementation(libs.mockk) + testImplementation(libs.coroutinesTesting) + testImplementation(libs.turbine) - androidTestImplementation(deps.testing.testRunner) - androidTestImplementation(deps.testing.jUnitExt) + androidTestImplementation(libs.testRunner) + androidTestImplementation(libs.jUnitExt) } diff --git a/common-domain/build.gradle.kts b/common-domain/build.gradle.kts index 0b0ac6348..949c11f48 100644 --- a/common-domain/build.gradle.kts +++ b/common-domain/build.gradle.kts @@ -20,16 +20,16 @@ plugins { } dependencies { - implementation(deps.kotlin.coroutines) - implementation(deps.misc.kotlinResult) + implementation(libs.coroutines) + implementation(libs.kotlinResult) - implementation(deps.google.daggerHiltCore) - kapt(deps.google.daggerHiltCoreCompiler) + implementation(libs.daggerHiltCore) + kapt(libs.daggerHiltCoreCompiler) - testImplementation(project(deps.local.commonTestingDomain)) - testImplementation(deps.testing.jUnit) - testImplementation(deps.testing.truth) - testImplementation(deps.testing.mockk) - testImplementation(deps.testing.coroutines) - testImplementation(deps.testing.turbine) + testImplementation(project(libs.versions.localCommonTestingDomain.get())) + testImplementation(libs.jUnit) + testImplementation(libs.truth) + testImplementation(libs.mockk) + testImplementation(libs.coroutines) + testImplementation(libs.turbine) } diff --git a/common-testing-domain/build.gradle.kts b/common-testing-domain/build.gradle.kts index 6470998d0..5f72bde15 100644 --- a/common-testing-domain/build.gradle.kts +++ b/common-testing-domain/build.gradle.kts @@ -19,9 +19,9 @@ plugins { } dependencies { - implementation(project(deps.local.commonDomain)) + implementation(project(libs.versions.localCommonDomain.get())) - implementation(deps.testing.jUnit) - implementation(deps.testing.mockk) - implementation(deps.testing.coroutines) + implementation(libs.jUnit) + implementation(libs.mockk) + implementation(libs.coroutinesTesting) } diff --git a/common-testing/build.gradle.kts b/common-testing/build.gradle.kts index 1b9d295b1..143298caa 100644 --- a/common-testing/build.gradle.kts +++ b/common-testing/build.gradle.kts @@ -25,19 +25,19 @@ android { } dependencies { - api(project(deps.local.commonTestingDomain)) - implementation(project(deps.local.core)) - implementation(project(deps.local.commonApi)) + api(project(libs.versions.localCommonTestingDomain.get())) + implementation(project(libs.versions.localCore.get())) + implementation(project(libs.versions.localCommonApi.get())) // Unit tests - implementation(deps.testing.jUnit) - implementation(deps.testing.mockk) - implementation(deps.testing.coroutines) + implementation(libs.jUnit) + implementation(libs.mockk) + implementation(libs.coroutinesTesting) // Instrumentation tests - implementation(deps.testing.testRunner) - implementation(deps.testing.mockWebServer) + implementation(libs.testRunner) + implementation(libs.mockWebServer) - implementation(deps.testing.daggerHilt) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltTesting) + kapt(libs.daggerHiltAndroidCompiler) } diff --git a/common-ui-widgets/build.gradle.kts b/common-ui-widgets/build.gradle.kts index 6cca9edf6..a2e0011f6 100644 --- a/common-ui-widgets/build.gradle.kts +++ b/common-ui-widgets/build.gradle.kts @@ -29,27 +29,27 @@ android { } dependencies { - implementation(project(deps.local.commonDomain)) - implementation(project(deps.local.core)) - implementation(project(deps.local.commonUi)) + implementation(project(libs.versions.localCommonDomain.get())) + implementation(project(libs.versions.localCore.get())) + implementation(project(libs.versions.localCommonUi.get())) - implementation(deps.compose.ui) - implementation(deps.compose.tooling) - implementation(deps.compose.foundation) - implementation(deps.compose.activity) - implementation(deps.compose.material) - implementation(deps.compose.runtime) - implementation(deps.compose.constraintLayout) - implementation(deps.compose.accompanist.swipeRefresh) + implementation(libs.composeUi) + implementation(libs.composeTooling) + implementation(libs.composeFoundation) + implementation(libs.composeActivity) + implementation(libs.composeMaterial) + implementation(libs.composeRuntime) + implementation(libs.composeConstraintLayout) + implementation(libs.accompanistSwipeRefresh) - implementation(deps.misc.coil) + implementation(libs.coil) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(deps.testing.jUnit) - androidTestImplementation(deps.testing.jUnitExt) + testImplementation(libs.jUnit) + androidTestImplementation(libs.jUnitExt) } diff --git a/common-ui/build.gradle.kts b/common-ui/build.gradle.kts index d8a382493..1d90e6414 100644 --- a/common-ui/build.gradle.kts +++ b/common-ui/build.gradle.kts @@ -28,27 +28,27 @@ android { } dependencies { - implementation(project(deps.local.core)) + implementation(project(libs.versions.localCore.get())) - implementation(deps.compose.ui) - implementation(deps.compose.tooling) - implementation(deps.compose.foundation) - implementation(deps.compose.activity) - implementation(deps.compose.runtime) - implementation(deps.compose.material) - implementation(deps.compose.accompanist.systemUi) + implementation(libs.composeUi) + implementation(libs.composeTooling) + implementation(libs.composeFoundation) + implementation(libs.composeActivity) + implementation(libs.composeRuntime) + implementation(libs.composeMaterial) + implementation(libs.accompanistSystemUi) - implementation(deps.commons.core) - implementation(deps.commons.ktx) + implementation(libs.commonsCore) + implementation(libs.commonsKtx) - implementation(deps.misc.coil) + implementation(libs.coil) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(deps.testing.jUnit) - androidTestImplementation(deps.testing.jUnitExt) + testImplementation(libs.jUnit) + androidTestImplementation(libs.jUnitExt) } diff --git a/core/build.gradle.kts b/core/build.gradle.kts index f4fc8107c..eb80adebc 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -27,32 +27,32 @@ android { } dependencies { - implementation(project(deps.local.commonDomain)) + implementation(project(libs.versions.localCommonDomain.get())) - implementation(deps.kotlin.coroutines) - implementation(deps.kotlin.serialization) + implementation(libs.coroutines) + implementation(libs.kotlinxSerialization) - implementation(deps.androidX.browser) + implementation(libs.browser) - implementation(deps.commons.core) - implementation(deps.commons.ktx) - implementation(deps.commons.network) - implementation(deps.commons.windowAnims) + implementation(libs.commonsCore) + implementation(libs.commonsKtx) + implementation(libs.commonsNetwork) + implementation(libs.commonsWindowAnims) - implementation(deps.misc.kotlinResult) + implementation(libs.kotlinResult) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(project(deps.local.commonTesting)) - testImplementation(deps.testing.jUnit) - testImplementation(deps.testing.truth) - testImplementation(deps.testing.mockk) - testImplementation(deps.testing.coroutines) + testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(libs.jUnit) + testImplementation(libs.truth) + testImplementation(libs.mockk) + testImplementation(libs.coroutinesTesting) - androidTestImplementation(deps.testing.testRunner) - androidTestImplementation(deps.testing.jUnitExt) + androidTestImplementation(libs.testRunner) + androidTestImplementation(libs.jUnitExt) } diff --git a/database/build.gradle.kts b/database/build.gradle.kts index ee99510f3..ade9effb9 100644 --- a/database/build.gradle.kts +++ b/database/build.gradle.kts @@ -44,36 +44,36 @@ ksp { } dependencies { - implementation(project(deps.local.core)) + implementation(project(libs.versions.localCore.get())) - implementation(deps.kotlin.coroutines) - implementation(deps.kotlin.serialization) + implementation(libs.coroutines) + implementation(libs.kotlinxSerialization) - implementation(deps.androidX.room) - implementation(deps.androidX.roomKtx) - ksp(deps.androidX.roomCompiler) + implementation(libs.room) + implementation(libs.roomKtx) + ksp(libs.roomCompiler) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(project(deps.local.commonTesting)) - testImplementation(deps.testing.jUnit) - testImplementation(deps.testing.truth) - testImplementation(deps.testing.mockk) - testImplementation(deps.testing.coroutines) - testImplementation(deps.testing.turbine) + testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(libs.jUnit) + testImplementation(libs.truth) + testImplementation(libs.mockk) + testImplementation(libs.coroutinesTesting) + testImplementation(libs.turbine) - androidTestImplementation(deps.testing.testRunner) - androidTestImplementation(deps.testing.jUnitExt) - androidTestImplementation(deps.testing.truth) - androidTestImplementation(deps.testing.archCore) - androidTestImplementation(deps.testing.coroutines) - androidTestImplementation(deps.testing.turbine) - androidTestImplementation(deps.testing.room) + androidTestImplementation(libs.testRunner) + androidTestImplementation(libs.jUnitExt) + androidTestImplementation(libs.truth) + androidTestImplementation(libs.archCore) + androidTestImplementation(libs.coroutinesTesting) + androidTestImplementation(libs.turbine) + androidTestImplementation(libs.roomTesting) - androidTestImplementation(deps.testing.daggerHilt) - kaptAndroidTest(deps.google.daggerHiltAndroidCompiler) + androidTestImplementation(libs.daggerHiltTesting) + kaptAndroidTest(libs.daggerHiltAndroidCompiler) } diff --git a/feature-category/build.gradle.kts b/feature-category/build.gradle.kts index d0030bea5..ef0516259 100644 --- a/feature-category/build.gradle.kts +++ b/feature-category/build.gradle.kts @@ -29,38 +29,38 @@ android { } dependencies { - implementation(project(deps.local.commonDomain)) - implementation(project(deps.local.core)) - implementation(project(deps.local.commonUi)) - implementation(project(deps.local.commonUiWidgets)) + implementation(project(libs.versions.localCommonDomain.get())) + implementation(project(libs.versions.localCore.get())) + implementation(project(libs.versions.localCommonUi.get())) + implementation(project(libs.versions.localCommonUiWidgets.get())) - implementation(deps.kotlin.coroutines) + implementation(libs.coroutines) - implementation(deps.compose.ui) - implementation(deps.compose.tooling) - implementation(deps.compose.foundation) - implementation(deps.compose.material) - implementation(deps.compose.runtime) - implementation(deps.compose.hilt) + implementation(libs.composeUi) + implementation(libs.composeTooling) + implementation(libs.composeFoundation) + implementation(libs.composeMaterial) + implementation(libs.composeRuntime) + implementation(libs.composeHilt) - implementation(deps.commons.core) - implementation(deps.commons.ktx) + implementation(libs.commonsCore) + implementation(libs.commonsKtx) - implementation(deps.misc.kotlinResult) + implementation(libs.kotlinResult) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(project(deps.local.commonTesting)) - testImplementation(deps.testing.jUnit) - testImplementation(deps.testing.truth) - testImplementation(deps.testing.mockk) - testImplementation(deps.testing.coroutines) - testImplementation(deps.testing.turbine) + implementation(project(libs.versions.localCommonTesting.get())) + testImplementation(libs.jUnit) + testImplementation(libs.truth) + testImplementation(libs.mockk) + testImplementation(libs.coroutinesTesting) + testImplementation(libs.turbine) - androidTestImplementation(deps.testing.testRunner) - androidTestImplementation(deps.testing.jUnitExt) + androidTestImplementation(libs.testRunner) + androidTestImplementation(libs.jUnitExt) } diff --git a/feature-discovery/build.gradle.kts b/feature-discovery/build.gradle.kts index 19f04de23..faa622907 100644 --- a/feature-discovery/build.gradle.kts +++ b/feature-discovery/build.gradle.kts @@ -29,39 +29,39 @@ android { } dependencies { - implementation(project(deps.local.commonDomain)) - implementation(project(deps.local.core)) - implementation(project(deps.local.commonUi)) - implementation(project(deps.local.commonUiWidgets)) + implementation(project(libs.versions.localCommonDomain.get())) + implementation(project(libs.versions.localCore.get())) + implementation(project(libs.versions.localCommonUi.get())) + implementation(project(libs.versions.localCommonUiWidgets.get())) - implementation(deps.kotlin.coroutines) + implementation(libs.coroutines) - implementation(deps.compose.ui) - implementation(deps.compose.tooling) - implementation(deps.compose.foundation) - implementation(deps.compose.material) - implementation(deps.compose.runtime) - implementation(deps.compose.hilt) + implementation(libs.composeUi) + implementation(libs.composeTooling) + implementation(libs.composeFoundation) + implementation(libs.composeMaterial) + implementation(libs.composeRuntime) + implementation(libs.composeHilt) - implementation(deps.commons.core) - implementation(deps.commons.ktx) + implementation(libs.commonsCore) + implementation(libs.commonsKtx) - implementation(deps.misc.kotlinResult) - implementation(deps.misc.coil) + implementation(libs.kotlinResult) + implementation(libs.coil) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(project(deps.local.commonTesting)) - testImplementation(deps.testing.jUnit) - testImplementation(deps.testing.truth) - testImplementation(deps.testing.mockk) - testImplementation(deps.testing.coroutines) - testImplementation(deps.testing.turbine) + testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(libs.jUnit) + testImplementation(libs.truth) + testImplementation(libs.mockk) + testImplementation(libs.coroutinesTesting) + testImplementation(libs.turbine) - androidTestImplementation(deps.testing.testRunner) - androidTestImplementation(deps.testing.jUnitExt) + androidTestImplementation(libs.testRunner) + androidTestImplementation(libs.jUnitExt) } diff --git a/feature-image-viewer/build.gradle.kts b/feature-image-viewer/build.gradle.kts index 53c24c5a2..bf802c406 100644 --- a/feature-image-viewer/build.gradle.kts +++ b/feature-image-viewer/build.gradle.kts @@ -29,42 +29,42 @@ android { } dependencies { - implementation(project(deps.local.commonDomain)) - implementation(project(deps.local.core)) - implementation(project(deps.local.commonUi)) - implementation(project(deps.local.commonUiWidgets)) + implementation(project(libs.versions.localCommonDomain.get())) + implementation(project(libs.versions.localCore.get())) + implementation(project(libs.versions.localCommonUi.get())) + implementation(project(libs.versions.localCommonUiWidgets.get())) - implementation(deps.kotlin.coroutines) + implementation(libs.coroutines) - implementation(deps.compose.ui) - implementation(deps.compose.tooling) - implementation(deps.compose.foundation) - implementation(deps.compose.activity) - implementation(deps.compose.material) - implementation(deps.compose.runtime) - implementation(deps.compose.hilt) - implementation(deps.compose.accompanist.pager) - implementation(deps.compose.accompanist.systemUi) + implementation(libs.composeUi) + implementation(libs.composeTooling) + implementation(libs.composeFoundation) + implementation(libs.composeActivity) + implementation(libs.composeMaterial) + implementation(libs.composeRuntime) + implementation(libs.composeHilt) + implementation(libs.accompanistPager) + implementation(libs.accompanistSystemUi) - implementation(deps.commons.core) - implementation(deps.commons.ktx) + implementation(libs.commonsCore) + implementation(libs.commonsKtx) - implementation(deps.misc.coil) - implementation(deps.misc.zoomable) + implementation(libs.coil) + implementation(libs.zoomable) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(project(deps.local.commonTesting)) - testImplementation(deps.testing.jUnit) - testImplementation(deps.testing.truth) - testImplementation(deps.testing.mockk) - testImplementation(deps.testing.coroutines) - testImplementation(deps.testing.turbine) + testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(libs.jUnit) + testImplementation(libs.truth) + testImplementation(libs.mockk) + testImplementation(libs.coroutinesTesting) + testImplementation(libs.turbine) - androidTestImplementation(deps.testing.testRunner) - androidTestImplementation(deps.testing.jUnitExt) + androidTestImplementation(libs.testRunner) + androidTestImplementation(libs.jUnitExt) } diff --git a/feature-info/build.gradle.kts b/feature-info/build.gradle.kts index 2d4560505..792b31c98 100644 --- a/feature-info/build.gradle.kts +++ b/feature-info/build.gradle.kts @@ -29,44 +29,44 @@ android { } dependencies { - implementation(project(deps.local.commonDomain)) - implementation(project(deps.local.commonData)) - implementation(project(deps.local.core)) - implementation(project(deps.local.commonUi)) - implementation(project(deps.local.commonUiWidgets)) + implementation(project(libs.versions.localCommonDomain.get())) + implementation(project(libs.versions.localCommonData.get())) + implementation(project(libs.versions.localCore.get())) + implementation(project(libs.versions.localCommonUi.get())) + implementation(project(libs.versions.localCommonUiWidgets.get())) - implementation(deps.kotlin.coroutines) + implementation(libs.coroutines) - implementation(deps.compose.ui) - implementation(deps.compose.tooling) - implementation(deps.compose.animation) - implementation(deps.compose.foundation) - implementation(deps.compose.material) - implementation(deps.compose.runtime) - implementation(deps.compose.constraintLayout) - implementation(deps.compose.hilt) - implementation(deps.compose.accompanist.flowLayout) - implementation(deps.compose.accompanist.pager) + implementation(libs.composeUi) + implementation(libs.composeTooling) + implementation(libs.composeAnimation) + implementation(libs.composeFoundation) + implementation(libs.composeMaterial) + implementation(libs.composeRuntime) + implementation(libs.composeConstraintLayout) + implementation(libs.composeHilt) + implementation(libs.accompanistFlowLayout) + implementation(libs.accompanistPager) - implementation(deps.commons.core) - implementation(deps.commons.ktx) + implementation(libs.commonsCore) + implementation(libs.commonsKtx) - implementation(deps.misc.kotlinResult) - implementation(deps.misc.coil) + implementation(libs.kotlinResult) + implementation(libs.coil) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(project(deps.local.commonTesting)) - testImplementation(deps.testing.jUnit) - testImplementation(deps.testing.truth) - testImplementation(deps.testing.mockk) - testImplementation(deps.testing.coroutines) - testImplementation(deps.testing.turbine) + testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(libs.jUnit) + testImplementation(libs.truth) + testImplementation(libs.mockk) + testImplementation(libs.coroutinesTesting) + testImplementation(libs.turbine) - androidTestImplementation(deps.testing.testRunner) - androidTestImplementation(deps.testing.jUnitExt) + androidTestImplementation(libs.testRunner) + androidTestImplementation(libs.jUnitExt) } diff --git a/feature-likes/build.gradle.kts b/feature-likes/build.gradle.kts index a5d43dff1..adfee6ab7 100644 --- a/feature-likes/build.gradle.kts +++ b/feature-likes/build.gradle.kts @@ -29,37 +29,37 @@ android { } dependencies { - implementation(project(deps.local.commonDomain)) - implementation(project(deps.local.commonData)) - implementation(project(deps.local.core)) - implementation(project(deps.local.commonUi)) - implementation(project(deps.local.commonUiWidgets)) + implementation(project(libs.versions.localCommonDomain.get())) + implementation(project(libs.versions.localCommonData.get())) + implementation(project(libs.versions.localCore.get())) + implementation(project(libs.versions.localCommonUi.get())) + implementation(project(libs.versions.localCommonUiWidgets.get())) - implementation(deps.kotlin.coroutines) + implementation(libs.coroutines) - implementation(deps.compose.ui) - implementation(deps.compose.tooling) - implementation(deps.compose.foundation) - implementation(deps.compose.material) - implementation(deps.compose.runtime) - implementation(deps.compose.hilt) + implementation(libs.composeUi) + implementation(libs.composeTooling) + implementation(libs.composeFoundation) + implementation(libs.composeMaterial) + implementation(libs.composeRuntime) + implementation(libs.composeHilt) - implementation(deps.commons.core) - implementation(deps.commons.ktx) + implementation(libs.commonsCore) + implementation(libs.commonsKtx) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(project(deps.local.commonTesting)) - testImplementation(deps.testing.jUnit) - testImplementation(deps.testing.truth) - testImplementation(deps.testing.mockk) - testImplementation(deps.testing.coroutines) - testImplementation(deps.testing.turbine) + testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(libs.jUnit) + testImplementation(libs.truth) + testImplementation(libs.mockk) + testImplementation(libs.coroutinesTesting) + testImplementation(libs.turbine) - androidTestImplementation(deps.testing.testRunner) - androidTestImplementation(deps.testing.jUnitExt) + androidTestImplementation(libs.testRunner) + androidTestImplementation(libs.jUnitExt) } diff --git a/feature-news/build.gradle.kts b/feature-news/build.gradle.kts index 6e1627b46..c1dc011c6 100644 --- a/feature-news/build.gradle.kts +++ b/feature-news/build.gradle.kts @@ -29,44 +29,44 @@ android { } dependencies { - implementation(project(deps.local.commonDomain)) - implementation(project(deps.local.commonData)) - implementation(project(deps.local.core)) - implementation(project(deps.local.commonUi)) - implementation(project(deps.local.commonUiWidgets)) - implementation(project(deps.local.gamespotApi)) - implementation(project(deps.local.database)) + implementation(project(libs.versions.localCommonDomain.get())) + implementation(project(libs.versions.localCommonData.get())) + implementation(project(libs.versions.localCore.get())) + implementation(project(libs.versions.localCommonUi.get())) + implementation(project(libs.versions.localCommonUiWidgets.get())) + implementation(project(libs.versions.localGamespotApi.get())) + implementation(project(libs.versions.localDatabase.get())) - implementation(deps.androidX.prefsDataStore) + implementation(libs.prefsDataStore) - implementation(deps.kotlin.coroutines) + implementation(libs.coroutines) - implementation(deps.compose.ui) - implementation(deps.compose.tooling) - implementation(deps.compose.foundation) - implementation(deps.compose.material) - implementation(deps.compose.runtime) - implementation(deps.compose.hilt) + implementation(libs.composeUi) + implementation(libs.composeTooling) + implementation(libs.composeFoundation) + implementation(libs.composeMaterial) + implementation(libs.composeRuntime) + implementation(libs.composeHilt) - implementation(deps.commons.core) - implementation(deps.commons.ktx) + implementation(libs.commonsCore) + implementation(libs.commonsKtx) - implementation(deps.misc.kotlinResult) - implementation(deps.misc.coil) + implementation(libs.kotlinResult) + implementation(libs.coil) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(project(deps.local.commonTesting)) - testImplementation(deps.testing.jUnit) - testImplementation(deps.testing.truth) - testImplementation(deps.testing.mockk) - testImplementation(deps.testing.coroutines) - testImplementation(deps.testing.turbine) + testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(libs.jUnit) + testImplementation(libs.truth) + testImplementation(libs.mockk) + testImplementation(libs.coroutinesTesting) + testImplementation(libs.turbine) - androidTestImplementation(deps.testing.testRunner) - androidTestImplementation(deps.testing.jUnitExt) + androidTestImplementation(libs.testRunner) + androidTestImplementation(libs.jUnitExt) } diff --git a/feature-search/build.gradle.kts b/feature-search/build.gradle.kts index d0d023ac3..dc85b19b2 100644 --- a/feature-search/build.gradle.kts +++ b/feature-search/build.gradle.kts @@ -29,39 +29,39 @@ android { } dependencies { - implementation(project(deps.local.commonDomain)) - implementation(project(deps.local.commonData)) - implementation(project(deps.local.core)) - implementation(project(deps.local.commonUi)) - implementation(project(deps.local.commonUiWidgets)) + implementation(project(libs.versions.localCommonDomain.get())) + implementation(project(libs.versions.localCommonData.get())) + implementation(project(libs.versions.localCore.get())) + implementation(project(libs.versions.localCommonUi.get())) + implementation(project(libs.versions.localCommonUiWidgets.get())) - implementation(deps.kotlin.coroutines) + implementation(libs.coroutines) - implementation(deps.compose.ui) - implementation(deps.compose.tooling) - implementation(deps.compose.foundation) - implementation(deps.compose.material) - implementation(deps.compose.runtime) - implementation(deps.compose.hilt) + implementation(libs.composeUi) + implementation(libs.composeTooling) + implementation(libs.composeFoundation) + implementation(libs.composeMaterial) + implementation(libs.composeRuntime) + implementation(libs.composeHilt) - implementation(deps.commons.core) - implementation(deps.commons.ktx) + implementation(libs.commonsCore) + implementation(libs.commonsKtx) - implementation(deps.misc.kotlinResult) + implementation(libs.kotlinResult) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(project(deps.local.commonTesting)) - testImplementation(deps.testing.jUnit) - testImplementation(deps.testing.truth) - testImplementation(deps.testing.mockk) - testImplementation(deps.testing.coroutines) - testImplementation(deps.testing.turbine) + testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(libs.jUnit) + testImplementation(libs.truth) + testImplementation(libs.mockk) + testImplementation(libs.coroutinesTesting) + testImplementation(libs.turbine) - androidTestImplementation(deps.testing.testRunner) - androidTestImplementation(deps.testing.jUnitExt) + androidTestImplementation(libs.testRunner) + androidTestImplementation(libs.jUnitExt) } diff --git a/feature-settings/build.gradle.kts b/feature-settings/build.gradle.kts index 1d42b292f..5fae344f5 100644 --- a/feature-settings/build.gradle.kts +++ b/feature-settings/build.gradle.kts @@ -33,7 +33,7 @@ android { protobuf { protoc { - artifact = deps.google.protobufCompiler + artifact = libs.protobufCompiler.get().toString() } generateProtoTasks { @@ -48,40 +48,40 @@ protobuf { } dependencies { - implementation(project(deps.local.commonDomain)) - implementation(project(deps.local.core)) - implementation(project(deps.local.commonUi)) - implementation(project(deps.local.commonUiWidgets)) + implementation(project(libs.versions.localCommonDomain.get())) + implementation(project(libs.versions.localCore.get())) + implementation(project(libs.versions.localCommonUi.get())) + implementation(project(libs.versions.localCommonUiWidgets.get())) - implementation(deps.androidX.protoDataStore) + implementation(libs.protoDataStore) - implementation(deps.kotlin.coroutines) + implementation(libs.coroutines) - implementation(deps.compose.ui) - implementation(deps.compose.tooling) - implementation(deps.compose.foundation) - implementation(deps.compose.material) - implementation(deps.compose.runtime) - implementation(deps.compose.hilt) + implementation(libs.composeUi) + implementation(libs.composeTooling) + implementation(libs.composeFoundation) + implementation(libs.composeMaterial) + implementation(libs.composeRuntime) + implementation(libs.composeHilt) - implementation(deps.commons.core) - implementation(deps.commons.ktx) + implementation(libs.commonsCore) + implementation(libs.commonsKtx) - implementation(deps.google.protobuf) + implementation(libs.protobuf) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(project(deps.local.commonTesting)) - testImplementation(deps.testing.jUnit) - testImplementation(deps.testing.truth) - testImplementation(deps.testing.mockk) - testImplementation(deps.testing.coroutines) - testImplementation(deps.testing.turbine) + testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(libs.jUnit) + testImplementation(libs.truth) + testImplementation(libs.mockk) + testImplementation(libs.coroutinesTesting) + testImplementation(libs.turbine) - androidTestImplementation(deps.testing.testRunner) - androidTestImplementation(deps.testing.jUnitExt) + androidTestImplementation(libs.testRunner) + androidTestImplementation(libs.jUnitExt) } diff --git a/gamespot-api/build.gradle.kts b/gamespot-api/build.gradle.kts index 884ab42b2..7072157fe 100644 --- a/gamespot-api/build.gradle.kts +++ b/gamespot-api/build.gradle.kts @@ -40,34 +40,34 @@ android { } dependencies { - api(project(deps.local.commonApi)) - implementation(project(deps.local.core)) + api(project(libs.versions.localCommonApi.get())) + implementation(project(libs.versions.localCore.get())) - implementation(deps.kotlin.coroutines) - implementation(deps.kotlin.serialization) + implementation(libs.coroutines) + implementation(libs.kotlinxSerialization) - implementation(deps.square.retrofit) - implementation(deps.square.retrofitKotlinxSerializationConverter) + implementation(libs.retrofit) + implementation(libs.retrofitKotlinxSerializationConverter) - implementation(deps.misc.kotlinResult) + implementation(libs.kotlinResult) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(project(deps.local.commonTesting)) - testImplementation(deps.testing.jUnit) - testImplementation(deps.testing.truth) - testImplementation(deps.testing.mockk) - testImplementation(deps.testing.coroutines) + testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(libs.jUnit) + testImplementation(libs.truth) + testImplementation(libs.mockk) + testImplementation(libs.coroutinesTesting) - androidTestImplementation(deps.testing.testRunner) - androidTestImplementation(deps.testing.jUnitExt) - androidTestImplementation(deps.testing.truth) - androidTestImplementation(deps.testing.mockWebServer) + androidTestImplementation(libs.testRunner) + androidTestImplementation(libs.jUnitExt) + androidTestImplementation(libs.truth) + androidTestImplementation(libs.mockWebServer) - androidTestImplementation(deps.testing.daggerHilt) - kaptAndroidTest(deps.google.daggerHiltAndroidCompiler) + androidTestImplementation(libs.daggerHiltTesting) + kaptAndroidTest(libs.daggerHiltAndroidCompiler) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 254e6e7d9..dd36655b2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,6 @@ kotlin = "2.0.10" daggerHilt = "2.52" ktlint = "1.3.1" -coroutines = "1.8.1" room = "2.6.1" # Plugins @@ -13,7 +12,31 @@ gradleVersionsPlugin = "0.51.0" detektPlugin = "1.23.6" ktlintPlugin = "12.1.1" -# Kotlix +# Local +localCore = ":core" +localDatabase = ":database" +localIgdbApi = ":igdb-api" +localIgdbApicalypse = ":igdb-apicalypse" +localGamespotApi = ":gamespot-api" +localCommonDomain = ":common-domain" +localCommonData = ":common-data" +localCommonUi = ":common-ui" +localCommonUiWidgets = ":common-ui-widgets" +localCommonApi = ":common-api" +localCommonTestingDomain = ":common-testing-domain" +localCommonTesting = ":common-testing" + +localFeatureCategory = ":feature-category" +localFeatureDiscovery = ":feature-discovery" +localFeatureInfo = ":feature-info" +localFeatureImageViewer = ":feature-image-viewer" +localFeatureLikes = ":feature-likes" +localFeatureNews = ":feature-news" +localFeatureSearch = ":feature-search" +localFeatureSettings = ":feature-settings" + +# Kotlin +coroutines = "1.8.1" serialization = "1.7.1" # AndroidX @@ -27,7 +50,7 @@ compose = "1.6.8" activity = "1.9.1" navigation = "2.7.7" constraintLayout = "1.1.0-alpha13" -hilt = "1.2.0" +composeHilt = "1.2.0" accompanist = "0.34.0" # Google @@ -40,13 +63,13 @@ retrofit = "2.11.0" retrofitKotlinxSerializationConverter = "1.0.0" # Commons -core = "1.0.4" -ktx = "1.0.4" -network = "1.0.3" -windowAnims = "1.0.2" +commonsCore = "1.0.4" +commonsKtx = "1.0.4" +commonsNetwork = "1.0.3" +commonsWindowAnims = "1.0.2" # Misc -desugaredLibs = "2.0.4" +desugaredJdk = "2.0.4" kotlinResult = "2.0.0" hiltBinder = "1.1.3" coil = "2.7.0" @@ -80,8 +103,81 @@ gamedgeAndroid = { id = "com.paulrybitskyi.gamedge.android" } gamedgeProtobuf = { id = "com.paulrybitskyi.gamedge.protobuf" } [libraries] +# Plugins androidPlugin = { module = "com.android.tools.build:gradle", version.ref = "androidPlugin" } kotlinPlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } protobufPlugin = { module = "com.google.protobuf:protobuf-gradle-plugin", version.ref = "protobufPlugin" } +# Kotlin +coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" } +kotlinxSerialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization" } + +# AndroidX +splash = { module = "androidx.core:core-splashscreen", version.ref = "splash" } +browser = { module = "androidx.browser:browser", version.ref = "browser" } +room = { module = "androidx.room:room-runtime", version.ref = "room" } +roomKtx = { module = "androidx.room:room-ktx", version.ref = "room" } +roomCompiler = { module = "androidx.room:room-compiler", version.ref = "room" } +prefsDataStore = { module = "androidx.datastore:datastore-preferences", version.ref = "dataStore" } +protoDataStore = { module = "androidx.datastore:datastore", version.ref = "dataStore" } + +# Compose +composeUi = { module = "androidx.compose.ui:ui", version.ref = "compose" } +composeTooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose" } +composeAnimation = { module = "androidx.compose.animation:animation-graphics", version.ref = "compose" } +composeFoundation = { module = "androidx.compose.foundation:foundation", version.ref = "compose" } +composeMaterial = { module = "androidx.compose.material:material", version.ref = "compose" } +composeRuntime = { module = "androidx.compose.runtime:runtime", version.ref = "compose" } + +composeActivity = { module = "androidx.activity:activity-compose", version.ref = "activity" } +composeNavigation = { module = "androidx.navigation:navigation-compose", version.ref = "navigation" } +composeConstraintLayout = { module = "androidx.constraintlayout:constraintlayout-compose", version.ref = "constraintLayout" } +composeHilt = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "composeHilt" } + +accompanistSwipeRefresh = { module = "com.google.accompanist:accompanist-swiperefresh", version.ref = "accompanist" } +accompanistFlowLayout = { module = "com.google.accompanist:accompanist-flowlayout", version.ref = "accompanist" } +accompanistPager = { module = "com.google.accompanist:accompanist-pager", version.ref = "accompanist" } +accompanistSystemUi = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanist" } +accompanistNavigationAnimations = { module = "com.google.accompanist:accompanist-navigation-animation", version.ref = "accompanist" } + +# Google +daggerHiltCore = { module = "com.google.dagger:hilt-core", version.ref = "daggerHilt" } +daggerHiltCoreCompiler = { module = "com.google.dagger:hilt-compiler", version.ref = "daggerHilt" } +daggerHiltAndroid = { module = "com.google.dagger:hilt-android", version.ref = "daggerHilt" } +daggerHiltAndroidCompiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "daggerHilt" } +protobuf = { module = "com.google.protobuf:protobuf-javalite", version.ref = "protobuf" } +protobufCompiler = { module = "com.google.protobuf:protoc", version.ref = "protobuf" } + +# Square +okHttpLoggingInterceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okHttp" } +retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" } +retrofitScalarsConverter = { module = "com.squareup.retrofit2:converter-scalars", version.ref = "retrofit" } +retrofitKotlinxSerializationConverter = { module = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter", version.ref = "retrofitKotlinxSerializationConverter" } javaPoet = { module = "com.squareup:javapoet", version.ref = "javaPoet" } + +# Commons +commonsCore = { module = "com.paulrybitskyi.commons:commons-core", version.ref = "commonsCore" } +commonsKtx = { module = "com.paulrybitskyi.commons:commons-ktx", version.ref = "commonsKtx" } +commonsNetwork = { module = "com.paulrybitskyi.commons:commons-network", version.ref = "commonsNetwork" } +commonsWindowAnims = { module = "com.paulrybitskyi.commons:commons-window-anims", version.ref = "commonsWindowAnims" } + +# Misc +desugaredJdk = { module = "com.android.tools:desugar_jdk_libs", version.ref = "desugaredJdk" } +kotlinResult = { module = "com.michael-bull.kotlin-result:kotlin-result", version.ref = "kotlinResult" } +hiltBinder = { module = "com.paulrybitskyi:hilt-binder", version.ref = "hiltBinder" } +hiltBinderCompiler = { module = "com.paulrybitskyi:hilt-binder-compiler", version.ref = "hiltBinder" } +coil = { module = "io.coil-kt:coil-compose", version.ref = "coil" } +zoomable = { module = "com.mxalbert.zoomable:zoomable", version.ref = "zoomable" } + +# Testing +jUnit = { module = "junit:junit", version.ref = "jUnit" } +jUnitExt = { module = "androidx.test.ext:junit", version.ref = "jUnitExt" } +truth = { module = "com.google.truth:truth", version.ref = "truth" } +mockk = { module = "io.mockk:mockk", version.ref = "mockk" } +coroutinesTesting = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" } +turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" } +testRunner = { module = "androidx.test:runner", version.ref = "testRunner" } +archCore = { module = "androidx.arch.core:core-testing", version.ref = "archCore" } +daggerHiltTesting = { module = "com.google.dagger:hilt-android-testing", version.ref = "daggerHilt" } +roomTesting = { module = "androidx.room:room-testing", version.ref = "room" } +mockWebServer = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "mockWebServer" } diff --git a/igdb-api/build.gradle.kts b/igdb-api/build.gradle.kts index 124cddec2..7b60b067e 100644 --- a/igdb-api/build.gradle.kts +++ b/igdb-api/build.gradle.kts @@ -41,35 +41,35 @@ android { } dependencies { - api(project(deps.local.commonApi)) - implementation(project(deps.local.igdbApicalypse)) - implementation(project(deps.local.core)) + api(project(libs.versions.localCommonApi.get())) + implementation(project(libs.versions.localIgdbApicalypse.get())) + implementation(project(libs.versions.localCore.get())) - implementation(deps.kotlin.coroutines) - implementation(deps.kotlin.serialization) + implementation(libs.coroutines) + implementation(libs.kotlinxSerialization) - implementation(deps.square.retrofit) - implementation(deps.square.retrofitScalarsConverter) + implementation(libs.retrofit) + implementation(libs.retrofitScalarsConverter) - implementation(deps.misc.kotlinResult) + implementation(libs.kotlinResult) - implementation(deps.google.daggerHiltAndroid) - kapt(deps.google.daggerHiltAndroidCompiler) + implementation(libs.daggerHiltAndroid) + kapt(libs.daggerHiltAndroidCompiler) - implementation(deps.misc.hiltBinder) - ksp(deps.misc.hiltBinderCompiler) + implementation(libs.hiltBinder) + ksp(libs.hiltBinderCompiler) - testImplementation(project(deps.local.commonTesting)) - testImplementation(deps.testing.jUnit) - testImplementation(deps.testing.truth) - testImplementation(deps.testing.mockk) - testImplementation(deps.testing.coroutines) + testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(libs.jUnit) + testImplementation(libs.truth) + testImplementation(libs.mockk) + testImplementation(libs.coroutinesTesting) - androidTestImplementation(deps.testing.testRunner) - androidTestImplementation(deps.testing.jUnitExt) - androidTestImplementation(deps.testing.truth) - androidTestImplementation(deps.testing.mockWebServer) + androidTestImplementation(libs.testRunner) + androidTestImplementation(libs.jUnitExt) + androidTestImplementation(libs.truth) + androidTestImplementation(libs.mockWebServer) - androidTestImplementation(deps.testing.daggerHilt) - kaptAndroidTest(deps.google.daggerHiltAndroidCompiler) + androidTestImplementation(libs.daggerHiltTesting) + kaptAndroidTest(libs.daggerHiltAndroidCompiler) } diff --git a/igdb-apicalypse/build.gradle.kts b/igdb-apicalypse/build.gradle.kts index 89f405f58..3ef0423b2 100644 --- a/igdb-apicalypse/build.gradle.kts +++ b/igdb-apicalypse/build.gradle.kts @@ -19,6 +19,6 @@ plugins { } dependencies { - testImplementation(deps.testing.jUnit) - testImplementation(deps.testing.truth) + testImplementation(libs.jUnit) + testImplementation(libs.truth) } From 2a6c30a1141cbfd343492f55d5e03c926d522d60 Mon Sep 17 00:00:00 2001 From: mars885 Date: Sun, 18 Aug 2024 01:05:05 +0300 Subject: [PATCH 4/6] FIx incorrect library import --- common-domain/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-domain/build.gradle.kts b/common-domain/build.gradle.kts index 949c11f48..eaa6ce6c1 100644 --- a/common-domain/build.gradle.kts +++ b/common-domain/build.gradle.kts @@ -30,6 +30,6 @@ dependencies { testImplementation(libs.jUnit) testImplementation(libs.truth) testImplementation(libs.mockk) - testImplementation(libs.coroutines) + testImplementation(libs.coroutinesTesting) testImplementation(libs.turbine) } From 37d00d66ab4893f181b393089f5db159a99cf093 Mon Sep 17 00:00:00 2001 From: mars885 Date: Sun, 18 Aug 2024 01:30:11 +0300 Subject: [PATCH 5/6] Migrate app config to use version catalogs --- build.gradle.kts | 2 +- buildSrc/src/main/java/Dependencies.kt | 34 ------------------- .../gamedge/plugins/GamedgeAndroidPlugin.kt | 25 ++++++++------ gradle/libs.versions.toml | 11 ++++-- 4 files changed, 24 insertions(+), 48 deletions(-) delete mode 100644 buildSrc/src/main/java/Dependencies.kt diff --git a/build.gradle.kts b/build.gradle.kts index a677efabd..b269cf80e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -97,7 +97,7 @@ allprojects { subprojects { plugins.withId(rootProject.libs.plugins.kotlinJvm.get().pluginId) { extensions.findByType()?.run { - jvmToolchain(appConfig.jvmToolchainVersion) + jvmToolchain(rootProject.libs.versions.jvmToolchain.get().toInt()) } } diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt deleted file mode 100644 index 36736df2e..000000000 --- a/buildSrc/src/main/java/Dependencies.kt +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2020 Paul Rybitskyi, paul.rybitskyi.work@gmail.com - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -@file:Suppress("ClassName") - -import org.gradle.api.JavaVersion - -object appConfig { - - const val compileSdkVersion = 34 - const val targetSdkVersion = 34 - const val minSdkVersion = 21 - const val applicationId = "com.paulrybitskyi.gamedge" - const val versionCode = 1 - const val versionName = "1.0.0" - const val instrumentationRunner = "com.paulrybitskyi.gamedge.common.testing.GamedgeTestRunner" - - const val jvmToolchainVersion = 17 - - val javaCompatibilityVersion = JavaVersion.VERSION_17 -} diff --git a/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeAndroidPlugin.kt b/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeAndroidPlugin.kt index a24b0df19..e93140616 100644 --- a/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeAndroidPlugin.kt +++ b/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeAndroidPlugin.kt @@ -16,10 +16,10 @@ package com.paulrybitskyi.gamedge.plugins -import appConfig import com.android.build.gradle.BaseExtension import com.android.build.gradle.internal.dsl.BaseAppModuleExtension import com.paulrybitskyi.gamedge.extensions.libs +import org.gradle.api.JavaVersion import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.findByType @@ -28,6 +28,7 @@ import java.util.Properties class GamedgeAndroidPlugin : Plugin { private companion object { + const val APPLICATION_ID = "com.paulrybitskyi.gamedge" const val BUILD_TYPE_DEBUG = "debug" const val BUILD_TYPE_RELEASE = "release" const val SIGNING_CONFIG_RELEASE = "release" @@ -51,15 +52,15 @@ class GamedgeAndroidPlugin : Plugin { private fun Project.configureAndroidCommonInfo() { extensions.findByType()?.run { - compileSdkVersion(appConfig.compileSdkVersion) + compileSdkVersion(libs.versions.compileSdk.get().toInt()) defaultConfig { - minSdk = appConfig.minSdkVersion - targetSdk = appConfig.targetSdkVersion - versionCode = appConfig.versionCode - versionName = appConfig.versionName + minSdk = libs.versions.minSdk.get().toInt() + targetSdk = libs.versions.targetSdk.get().toInt() + versionCode = libs.versions.appVersionCode.get().toInt() + versionName = libs.versions.appVersionName.get() - testInstrumentationRunner = appConfig.instrumentationRunner + testInstrumentationRunner = "com.paulrybitskyi.gamedge.common.testing.GamedgeTestRunner" } buildTypes { @@ -94,8 +95,10 @@ class GamedgeAndroidPlugin : Plugin { } compileOptions { - sourceCompatibility = appConfig.javaCompatibilityVersion - targetCompatibility = appConfig.javaCompatibilityVersion + val javaVersion = JavaVersion.toVersion(libs.versions.jvmToolchain.get().toInt()) + + sourceCompatibility = javaVersion + targetCompatibility = javaVersion isCoreLibraryDesugaringEnabled = true } @@ -119,10 +122,10 @@ class GamedgeAndroidPlugin : Plugin { private fun Project.configureAndroidApplicationId() { plugins.withId(libs.plugins.androidApplication.get().pluginId) { extensions.findByType()?.run { - namespace = appConfig.applicationId + namespace = APPLICATION_ID defaultConfig { - applicationId = appConfig.applicationId + applicationId = APPLICATION_ID } signingConfigs { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index dd36655b2..b27dcbc3a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,8 +1,13 @@ [versions] +compileSdk = "34" +targetSdk = "34" +minSdk = "21" +appVersionCode = "1" +appVersionName = "1.0.0" +jvmToolchain = "17" + kotlin = "2.0.10" daggerHilt = "2.52" -ktlint = "1.3.1" -room = "2.6.1" # Plugins androidPlugin = "8.3.1" @@ -43,6 +48,7 @@ serialization = "1.7.1" splash = "1.0.1" viewModel = "2.5.1" # to be deleted when the linked issue at use site is fixed browser = "1.8.0" +room = "2.6.1" dataStore = "1.1.1" # Compose @@ -74,6 +80,7 @@ kotlinResult = "2.0.0" hiltBinder = "1.1.3" coil = "2.7.0" zoomable = "1.6.1" +ktlint = "1.3.1" # Testing jUnit = "4.13.2" From 0b4f125df278c0d4e050773b60ede857d4d359c4 Mon Sep 17 00:00:00 2001 From: mars885 Date: Sun, 18 Aug 2024 02:14:21 +0300 Subject: [PATCH 6/6] Extract local modules into a central place --- app/build.gradle.kts | 32 ++++++------- buildSrc/src/main/java/LocalModules.kt | 45 +++++++++++++++++++ .../gamedge/plugins/GamedgeAndroidPlugin.kt | 2 +- common-api/build.gradle.kts | 2 +- common-data/build.gradle.kts | 10 ++--- common-domain/build.gradle.kts | 2 +- common-testing-domain/build.gradle.kts | 2 +- common-testing/build.gradle.kts | 6 +-- common-ui-widgets/build.gradle.kts | 6 +-- common-ui/build.gradle.kts | 2 +- core/build.gradle.kts | 4 +- database/build.gradle.kts | 4 +- feature-category/build.gradle.kts | 10 ++--- feature-discovery/build.gradle.kts | 10 ++--- feature-image-viewer/build.gradle.kts | 10 ++--- feature-info/build.gradle.kts | 12 ++--- feature-likes/build.gradle.kts | 12 ++--- feature-news/build.gradle.kts | 16 +++---- feature-search/build.gradle.kts | 12 ++--- feature-settings/build.gradle.kts | 10 ++--- gamespot-api/build.gradle.kts | 6 +-- gradle/libs.versions.toml | 23 ---------- igdb-api/build.gradle.kts | 8 ++-- 23 files changed, 134 insertions(+), 112 deletions(-) create mode 100644 buildSrc/src/main/java/LocalModules.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index dcd4dabb0..d68bf7585 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -25,22 +25,22 @@ plugins { } dependencies { - implementation(project(libs.versions.localCommonDomain.get())) - implementation(project(libs.versions.localCommonData.get())) - implementation(project(libs.versions.localCore.get())) - implementation(project(libs.versions.localCommonUi.get())) - implementation(project(libs.versions.localCommonUiWidgets.get())) - implementation(project(libs.versions.localIgdbApi.get())) - implementation(project(libs.versions.localGamespotApi.get())) - implementation(project(libs.versions.localDatabase.get())) - implementation(project(libs.versions.localFeatureCategory.get())) - implementation(project(libs.versions.localFeatureDiscovery.get())) - implementation(project(libs.versions.localFeatureInfo.get())) - implementation(project(libs.versions.localFeatureImageViewer.get())) - implementation(project(libs.versions.localFeatureLikes.get())) - implementation(project(libs.versions.localFeatureNews.get())) - implementation(project(libs.versions.localFeatureSearch.get())) - implementation(project(libs.versions.localFeatureSettings.get())) + implementation(project(localModules.commonDomain)) + implementation(project(localModules.commonData)) + implementation(project(localModules.core)) + implementation(project(localModules.commonUi)) + implementation(project(localModules.commonUiWidgets)) + implementation(project(localModules.igdbApi)) + implementation(project(localModules.gamespotApi)) + implementation(project(localModules.database)) + implementation(project(localModules.featureCategory)) + implementation(project(localModules.featureDiscovery)) + implementation(project(localModules.featureInfo)) + implementation(project(localModules.featureImageViewer)) + implementation(project(localModules.featureLikes)) + implementation(project(localModules.featureNews)) + implementation(project(localModules.featureSearch)) + implementation(project(localModules.featureSettings)) implementation(libs.splash) diff --git a/buildSrc/src/main/java/LocalModules.kt b/buildSrc/src/main/java/LocalModules.kt new file mode 100644 index 000000000..24b85f928 --- /dev/null +++ b/buildSrc/src/main/java/LocalModules.kt @@ -0,0 +1,45 @@ +/* + * Copyright 2020 Paul Rybitskyi, paul.rybitskyi.work@gmail.com + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress("ClassName", "ConstPropertyName") + +/*** + * A central place to declare every local module. In case of a + * rename, the name should be changed here only. + */ +object localModules { + const val core = ":core" + const val database = ":database" + const val igdbApi = ":igdb-api" + const val igdbApicalypse = ":igdb-apicalypse" + const val gamespotApi = ":gamespot-api" + const val commonDomain = ":common-domain" + const val commonData = ":common-data" + const val commonUi = ":common-ui" + const val commonUiWidgets = ":common-ui-widgets" + const val commonApi = ":common-api" + const val commonTestingDomain = ":common-testing-domain" + const val commonTesting = ":common-testing" + + const val featureCategory = ":feature-category" + const val featureDiscovery = ":feature-discovery" + const val featureInfo = ":feature-info" + const val featureImageViewer = ":feature-image-viewer" + const val featureLikes = ":feature-likes" + const val featureNews = ":feature-news" + const val featureSearch = ":feature-search" + const val featureSettings = ":feature-settings" +} diff --git a/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeAndroidPlugin.kt b/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeAndroidPlugin.kt index e93140616..75146ac7e 100644 --- a/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeAndroidPlugin.kt +++ b/buildSrc/src/main/java/com/paulrybitskyi/gamedge/plugins/GamedgeAndroidPlugin.kt @@ -169,6 +169,6 @@ class GamedgeAndroidPlugin : Plugin { private fun Project.addDependencies() { dependencies.add("coreLibraryDesugaring", libs.desugaredJdk.get()) - dependencies.add("androidTestImplementation", project(libs.versions.localCommonTesting.get())) + dependencies.add("androidTestImplementation", project(localModules.commonTesting)) } } diff --git a/common-api/build.gradle.kts b/common-api/build.gradle.kts index 1b3df347a..e792eae24 100644 --- a/common-api/build.gradle.kts +++ b/common-api/build.gradle.kts @@ -31,7 +31,7 @@ android { } dependencies { - implementation(project(libs.versions.localCore.get())) + implementation(project(localModules.core)) implementation(libs.kotlinxSerialization) diff --git a/common-data/build.gradle.kts b/common-data/build.gradle.kts index 4a140f3f0..e76328b69 100644 --- a/common-data/build.gradle.kts +++ b/common-data/build.gradle.kts @@ -46,10 +46,10 @@ protobuf { } dependencies { - implementation(project(libs.versions.localCommonDomain.get())) - implementation(project(libs.versions.localCore.get())) - implementation(project(libs.versions.localIgdbApi.get())) - implementation(project(libs.versions.localDatabase.get())) + implementation(project(localModules.commonDomain)) + implementation(project(localModules.core)) + implementation(project(localModules.igdbApi)) + implementation(project(localModules.database)) implementation(libs.coroutines) @@ -65,7 +65,7 @@ dependencies { implementation(libs.hiltBinder) ksp(libs.hiltBinderCompiler) - testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(project(localModules.commonTesting)) testImplementation(libs.jUnit) testImplementation(libs.truth) testImplementation(libs.mockk) diff --git a/common-domain/build.gradle.kts b/common-domain/build.gradle.kts index eaa6ce6c1..da2842609 100644 --- a/common-domain/build.gradle.kts +++ b/common-domain/build.gradle.kts @@ -26,7 +26,7 @@ dependencies { implementation(libs.daggerHiltCore) kapt(libs.daggerHiltCoreCompiler) - testImplementation(project(libs.versions.localCommonTestingDomain.get())) + testImplementation(project(localModules.commonTestingDomain)) testImplementation(libs.jUnit) testImplementation(libs.truth) testImplementation(libs.mockk) diff --git a/common-testing-domain/build.gradle.kts b/common-testing-domain/build.gradle.kts index 5f72bde15..b0387505b 100644 --- a/common-testing-domain/build.gradle.kts +++ b/common-testing-domain/build.gradle.kts @@ -19,7 +19,7 @@ plugins { } dependencies { - implementation(project(libs.versions.localCommonDomain.get())) + implementation(project(localModules.commonDomain)) implementation(libs.jUnit) implementation(libs.mockk) diff --git a/common-testing/build.gradle.kts b/common-testing/build.gradle.kts index 143298caa..1599b41fa 100644 --- a/common-testing/build.gradle.kts +++ b/common-testing/build.gradle.kts @@ -25,9 +25,9 @@ android { } dependencies { - api(project(libs.versions.localCommonTestingDomain.get())) - implementation(project(libs.versions.localCore.get())) - implementation(project(libs.versions.localCommonApi.get())) + api(project(localModules.commonTestingDomain)) + implementation(project(localModules.core)) + implementation(project(localModules.commonApi)) // Unit tests implementation(libs.jUnit) diff --git a/common-ui-widgets/build.gradle.kts b/common-ui-widgets/build.gradle.kts index a2e0011f6..5f1ee05ce 100644 --- a/common-ui-widgets/build.gradle.kts +++ b/common-ui-widgets/build.gradle.kts @@ -29,9 +29,9 @@ android { } dependencies { - implementation(project(libs.versions.localCommonDomain.get())) - implementation(project(libs.versions.localCore.get())) - implementation(project(libs.versions.localCommonUi.get())) + implementation(project(localModules.commonDomain)) + implementation(project(localModules.core)) + implementation(project(localModules.commonUi)) implementation(libs.composeUi) implementation(libs.composeTooling) diff --git a/common-ui/build.gradle.kts b/common-ui/build.gradle.kts index 1d90e6414..f12507a21 100644 --- a/common-ui/build.gradle.kts +++ b/common-ui/build.gradle.kts @@ -28,7 +28,7 @@ android { } dependencies { - implementation(project(libs.versions.localCore.get())) + implementation(project(localModules.core)) implementation(libs.composeUi) implementation(libs.composeTooling) diff --git a/core/build.gradle.kts b/core/build.gradle.kts index eb80adebc..304936d51 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -27,7 +27,7 @@ android { } dependencies { - implementation(project(libs.versions.localCommonDomain.get())) + implementation(project(localModules.commonDomain)) implementation(libs.coroutines) implementation(libs.kotlinxSerialization) @@ -47,7 +47,7 @@ dependencies { implementation(libs.hiltBinder) ksp(libs.hiltBinderCompiler) - testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(project(localModules.commonTesting)) testImplementation(libs.jUnit) testImplementation(libs.truth) testImplementation(libs.mockk) diff --git a/database/build.gradle.kts b/database/build.gradle.kts index ade9effb9..3bde06e1f 100644 --- a/database/build.gradle.kts +++ b/database/build.gradle.kts @@ -44,7 +44,7 @@ ksp { } dependencies { - implementation(project(libs.versions.localCore.get())) + implementation(project(localModules.core)) implementation(libs.coroutines) implementation(libs.kotlinxSerialization) @@ -59,7 +59,7 @@ dependencies { implementation(libs.hiltBinder) ksp(libs.hiltBinderCompiler) - testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(project(localModules.commonTesting)) testImplementation(libs.jUnit) testImplementation(libs.truth) testImplementation(libs.mockk) diff --git a/feature-category/build.gradle.kts b/feature-category/build.gradle.kts index ef0516259..01cf79b22 100644 --- a/feature-category/build.gradle.kts +++ b/feature-category/build.gradle.kts @@ -29,10 +29,10 @@ android { } dependencies { - implementation(project(libs.versions.localCommonDomain.get())) - implementation(project(libs.versions.localCore.get())) - implementation(project(libs.versions.localCommonUi.get())) - implementation(project(libs.versions.localCommonUiWidgets.get())) + implementation(project(localModules.commonDomain)) + implementation(project(localModules.core)) + implementation(project(localModules.commonUi)) + implementation(project(localModules.commonUiWidgets)) implementation(libs.coroutines) @@ -54,7 +54,7 @@ dependencies { implementation(libs.hiltBinder) ksp(libs.hiltBinderCompiler) - implementation(project(libs.versions.localCommonTesting.get())) + testImplementation(project(localModules.commonTesting)) testImplementation(libs.jUnit) testImplementation(libs.truth) testImplementation(libs.mockk) diff --git a/feature-discovery/build.gradle.kts b/feature-discovery/build.gradle.kts index faa622907..9c6eb8315 100644 --- a/feature-discovery/build.gradle.kts +++ b/feature-discovery/build.gradle.kts @@ -29,10 +29,10 @@ android { } dependencies { - implementation(project(libs.versions.localCommonDomain.get())) - implementation(project(libs.versions.localCore.get())) - implementation(project(libs.versions.localCommonUi.get())) - implementation(project(libs.versions.localCommonUiWidgets.get())) + implementation(project(localModules.commonDomain)) + implementation(project(localModules.core)) + implementation(project(localModules.commonUi)) + implementation(project(localModules.commonUiWidgets)) implementation(libs.coroutines) @@ -55,7 +55,7 @@ dependencies { implementation(libs.hiltBinder) ksp(libs.hiltBinderCompiler) - testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(project(localModules.commonTesting)) testImplementation(libs.jUnit) testImplementation(libs.truth) testImplementation(libs.mockk) diff --git a/feature-image-viewer/build.gradle.kts b/feature-image-viewer/build.gradle.kts index bf802c406..47e3697cc 100644 --- a/feature-image-viewer/build.gradle.kts +++ b/feature-image-viewer/build.gradle.kts @@ -29,10 +29,10 @@ android { } dependencies { - implementation(project(libs.versions.localCommonDomain.get())) - implementation(project(libs.versions.localCore.get())) - implementation(project(libs.versions.localCommonUi.get())) - implementation(project(libs.versions.localCommonUiWidgets.get())) + implementation(project(localModules.commonDomain)) + implementation(project(localModules.core)) + implementation(project(localModules.commonUi)) + implementation(project(localModules.commonUiWidgets)) implementation(libs.coroutines) @@ -58,7 +58,7 @@ dependencies { implementation(libs.hiltBinder) ksp(libs.hiltBinderCompiler) - testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(project(localModules.commonTesting)) testImplementation(libs.jUnit) testImplementation(libs.truth) testImplementation(libs.mockk) diff --git a/feature-info/build.gradle.kts b/feature-info/build.gradle.kts index 792b31c98..e64f119e8 100644 --- a/feature-info/build.gradle.kts +++ b/feature-info/build.gradle.kts @@ -29,11 +29,11 @@ android { } dependencies { - implementation(project(libs.versions.localCommonDomain.get())) - implementation(project(libs.versions.localCommonData.get())) - implementation(project(libs.versions.localCore.get())) - implementation(project(libs.versions.localCommonUi.get())) - implementation(project(libs.versions.localCommonUiWidgets.get())) + implementation(project(localModules.commonDomain)) + implementation(project(localModules.commonData)) + implementation(project(localModules.core)) + implementation(project(localModules.commonUi)) + implementation(project(localModules.commonUiWidgets)) implementation(libs.coroutines) @@ -60,7 +60,7 @@ dependencies { implementation(libs.hiltBinder) ksp(libs.hiltBinderCompiler) - testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(project(localModules.commonTesting)) testImplementation(libs.jUnit) testImplementation(libs.truth) testImplementation(libs.mockk) diff --git a/feature-likes/build.gradle.kts b/feature-likes/build.gradle.kts index adfee6ab7..faa4c0b90 100644 --- a/feature-likes/build.gradle.kts +++ b/feature-likes/build.gradle.kts @@ -29,11 +29,11 @@ android { } dependencies { - implementation(project(libs.versions.localCommonDomain.get())) - implementation(project(libs.versions.localCommonData.get())) - implementation(project(libs.versions.localCore.get())) - implementation(project(libs.versions.localCommonUi.get())) - implementation(project(libs.versions.localCommonUiWidgets.get())) + implementation(project(localModules.commonDomain)) + implementation(project(localModules.commonData)) + implementation(project(localModules.core)) + implementation(project(localModules.commonUi)) + implementation(project(localModules.commonUiWidgets)) implementation(libs.coroutines) @@ -53,7 +53,7 @@ dependencies { implementation(libs.hiltBinder) ksp(libs.hiltBinderCompiler) - testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(project(localModules.commonTesting)) testImplementation(libs.jUnit) testImplementation(libs.truth) testImplementation(libs.mockk) diff --git a/feature-news/build.gradle.kts b/feature-news/build.gradle.kts index c1dc011c6..5210741a7 100644 --- a/feature-news/build.gradle.kts +++ b/feature-news/build.gradle.kts @@ -29,13 +29,13 @@ android { } dependencies { - implementation(project(libs.versions.localCommonDomain.get())) - implementation(project(libs.versions.localCommonData.get())) - implementation(project(libs.versions.localCore.get())) - implementation(project(libs.versions.localCommonUi.get())) - implementation(project(libs.versions.localCommonUiWidgets.get())) - implementation(project(libs.versions.localGamespotApi.get())) - implementation(project(libs.versions.localDatabase.get())) + implementation(project(localModules.commonDomain)) + implementation(project(localModules.commonData)) + implementation(project(localModules.core)) + implementation(project(localModules.commonUi)) + implementation(project(localModules.commonUiWidgets)) + implementation(project(localModules.gamespotApi)) + implementation(project(localModules.database)) implementation(libs.prefsDataStore) @@ -60,7 +60,7 @@ dependencies { implementation(libs.hiltBinder) ksp(libs.hiltBinderCompiler) - testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(project(localModules.commonTesting)) testImplementation(libs.jUnit) testImplementation(libs.truth) testImplementation(libs.mockk) diff --git a/feature-search/build.gradle.kts b/feature-search/build.gradle.kts index dc85b19b2..da9e00bce 100644 --- a/feature-search/build.gradle.kts +++ b/feature-search/build.gradle.kts @@ -29,11 +29,11 @@ android { } dependencies { - implementation(project(libs.versions.localCommonDomain.get())) - implementation(project(libs.versions.localCommonData.get())) - implementation(project(libs.versions.localCore.get())) - implementation(project(libs.versions.localCommonUi.get())) - implementation(project(libs.versions.localCommonUiWidgets.get())) + implementation(project(localModules.commonDomain)) + implementation(project(localModules.commonData)) + implementation(project(localModules.core)) + implementation(project(localModules.commonUi)) + implementation(project(localModules.commonUiWidgets)) implementation(libs.coroutines) @@ -55,7 +55,7 @@ dependencies { implementation(libs.hiltBinder) ksp(libs.hiltBinderCompiler) - testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(project(localModules.commonTesting)) testImplementation(libs.jUnit) testImplementation(libs.truth) testImplementation(libs.mockk) diff --git a/feature-settings/build.gradle.kts b/feature-settings/build.gradle.kts index 5fae344f5..b0bffc494 100644 --- a/feature-settings/build.gradle.kts +++ b/feature-settings/build.gradle.kts @@ -48,10 +48,10 @@ protobuf { } dependencies { - implementation(project(libs.versions.localCommonDomain.get())) - implementation(project(libs.versions.localCore.get())) - implementation(project(libs.versions.localCommonUi.get())) - implementation(project(libs.versions.localCommonUiWidgets.get())) + implementation(project(localModules.commonDomain)) + implementation(project(localModules.core)) + implementation(project(localModules.commonUi)) + implementation(project(localModules.commonUiWidgets)) implementation(libs.protoDataStore) @@ -75,7 +75,7 @@ dependencies { implementation(libs.hiltBinder) ksp(libs.hiltBinderCompiler) - testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(project(localModules.commonTesting)) testImplementation(libs.jUnit) testImplementation(libs.truth) testImplementation(libs.mockk) diff --git a/gamespot-api/build.gradle.kts b/gamespot-api/build.gradle.kts index 7072157fe..c359c7e64 100644 --- a/gamespot-api/build.gradle.kts +++ b/gamespot-api/build.gradle.kts @@ -40,8 +40,8 @@ android { } dependencies { - api(project(libs.versions.localCommonApi.get())) - implementation(project(libs.versions.localCore.get())) + api(project(localModules.commonApi)) + implementation(project(localModules.core)) implementation(libs.coroutines) implementation(libs.kotlinxSerialization) @@ -57,7 +57,7 @@ dependencies { implementation(libs.hiltBinder) ksp(libs.hiltBinderCompiler) - testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(project(localModules.commonTesting)) testImplementation(libs.jUnit) testImplementation(libs.truth) testImplementation(libs.mockk) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b27dcbc3a..65c015396 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,29 +17,6 @@ gradleVersionsPlugin = "0.51.0" detektPlugin = "1.23.6" ktlintPlugin = "12.1.1" -# Local -localCore = ":core" -localDatabase = ":database" -localIgdbApi = ":igdb-api" -localIgdbApicalypse = ":igdb-apicalypse" -localGamespotApi = ":gamespot-api" -localCommonDomain = ":common-domain" -localCommonData = ":common-data" -localCommonUi = ":common-ui" -localCommonUiWidgets = ":common-ui-widgets" -localCommonApi = ":common-api" -localCommonTestingDomain = ":common-testing-domain" -localCommonTesting = ":common-testing" - -localFeatureCategory = ":feature-category" -localFeatureDiscovery = ":feature-discovery" -localFeatureInfo = ":feature-info" -localFeatureImageViewer = ":feature-image-viewer" -localFeatureLikes = ":feature-likes" -localFeatureNews = ":feature-news" -localFeatureSearch = ":feature-search" -localFeatureSettings = ":feature-settings" - # Kotlin coroutines = "1.8.1" serialization = "1.7.1" diff --git a/igdb-api/build.gradle.kts b/igdb-api/build.gradle.kts index 7b60b067e..f894b757b 100644 --- a/igdb-api/build.gradle.kts +++ b/igdb-api/build.gradle.kts @@ -41,9 +41,9 @@ android { } dependencies { - api(project(libs.versions.localCommonApi.get())) - implementation(project(libs.versions.localIgdbApicalypse.get())) - implementation(project(libs.versions.localCore.get())) + api(project(localModules.commonApi)) + implementation(project(localModules.igdbApicalypse)) + implementation(project(localModules.core)) implementation(libs.coroutines) implementation(libs.kotlinxSerialization) @@ -59,7 +59,7 @@ dependencies { implementation(libs.hiltBinder) ksp(libs.hiltBinderCompiler) - testImplementation(project(libs.versions.localCommonTesting.get())) + testImplementation(project(localModules.commonTesting)) testImplementation(libs.jUnit) testImplementation(libs.truth) testImplementation(libs.mockk)