Skip to content

Commit 9dd59b2

Browse files
authored
Tidied up and updated the versions for the generated catalog. (#32)
1 parent 95e2159 commit 9dd59b2

File tree

7 files changed

+108
-84
lines changed

7 files changed

+108
-84
lines changed

core/src/main/kotlin/com/mitteloupe/cag/core/content/AppGradleBuilder.kt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,21 @@ fun buildAppGradleScript(
6565
val aliasTestAndroidxEspressoCore = catalog.getResolvedLibraryAliasForModule(LibraryConstants.TEST_ANDROIDX_ESPRESSO_CORE).asAccessor
6666
val result =
6767
"""
68+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
69+
6870
plugins {
6971
alias(libs.plugins.$aliasAndroidApplication)
7072
alias(libs.plugins.$aliasKotlinAndroid)
7173
alias(libs.plugins.$aliasKsp)
7274
alias(libs.plugins.$aliasPluginHilt)$composePlugins
7375
}
7476
77+
kotlin {
78+
compilerOptions {
79+
jvmTarget.set(JvmTarget.JVM_17)
80+
}
81+
}
82+
7583
android {
7684
namespace = "$packageName"
7785
compileSdk = libs.versions.compileSdk.get().toInt()
@@ -98,9 +106,6 @@ fun buildAppGradleScript(
98106
compileOptions {
99107
sourceCompatibility = JavaVersion.VERSION_17
100108
targetCompatibility = JavaVersion.VERSION_17
101-
}
102-
kotlinOptions {
103-
jvmTarget = "17"
104109
}${
105110
if (enableCompose) {
106111
"""
@@ -111,6 +116,9 @@ fun buildAppGradleScript(
111116
""
112117
}
113118
}
119+
packaging {
120+
resources.pickFirsts += "META-INF/versions/9/OSGI-INF/MANIFEST.MF"
121+
}
114122
}
115123
116124
dependencies {

core/src/main/kotlin/com/mitteloupe/cag/core/generation/versioncatalog/DependencyConfiguration.kt

Lines changed: 45 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants
99
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.ANDROIDX_CORE_KTX_VERSION
1010
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.ANDROIDX_FRAGMENT_KTX_VERSION
1111
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.ANDROIDX_LIFECYCLE_RUNTIME_KTX_VERSION
12-
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.ANDROIDX_NAVIGATION_FRAGMENT_KTX_VERSION
1312
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.ANDROIDX_RECYCLER_VIEW_VERSION
1413
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.ANDROID_GRADLE_PLUGIN_VERSION
14+
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.ANDROID_NAVIGATION_VERSION
1515
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.COMPOSE_BOM_VERSION
16-
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.COMPOSE_NAVIGATION_VERSION
1716
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.DETEKT_VERSION
17+
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.HILT_VERSION
1818
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.JUNIT4_VERSION
1919
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.KOTLINX_COROUTINES_VERSION
2020
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.KOTLIN_VERSION
@@ -24,10 +24,9 @@ import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants
2424
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.MATERIAL_VERSION
2525
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.OKHTTP3_VERSION
2626
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.RETROFIT_VERSION
27-
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.TEST_ANDROIDX_ESPRESSO_CORE_VERSION
27+
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.TEST_ANDROIDX_ESPRESSO_VERSION
2828
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.TEST_ANDROIDX_JUNIT_VERSION
2929
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.TEST_ANDROIDX_RULES_VERSION
30-
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.TEST_ANDROID_HILT_VERSION
3130
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.TEST_ANDROID_UI_AUTOMATOR_VERSION
3231
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.TEST_MOCKITO_ANDROID_VERSION
3332
import com.mitteloupe.cag.core.generation.versioncatalog.VersionCatalogConstants.TEST_MOCKITO_CORE_VERSION
@@ -41,80 +40,72 @@ data class DependencyConfiguration(
4140
)
4241

4342
object VersionCatalogConstants {
44-
internal val KOTLIN_VERSION = VersionRequirement(key = "kotlin", version = "2.2.10")
43+
internal val KOTLIN_VERSION = VersionRequirement(key = "kotlin", version = "2.2.20")
4544
internal val COMPILE_SDK_VERSION = VersionRequirement(key = "compileSdk", version = "36")
4645
internal val MIN_SDK_VERSION = VersionRequirement(key = "minSdk", version = "24")
4746
internal val TARGET_SDK_VERSION = VersionRequirement(key = "targetSdk", version = "36")
4847

49-
internal val ANDROID_GRADLE_PLUGIN_VERSION = VersionRequirement(key = "androidGradlePlugin", version = "8.12.2")
48+
internal val ANDROID_GRADLE_PLUGIN_VERSION = VersionRequirement(key = "androidGradlePlugin", version = "8.13.0")
5049

5150
internal val COMPOSE_BOM_VERSION: VersionRequirement
52-
get() = VersionRequirement(key = "composeBom", version = getVersionForKey("composeBom", "2025.08.01"))
53-
internal val COMPOSE_NAVIGATION_VERSION: VersionRequirement
54-
get() = VersionRequirement(key = "composeNavigation", version = getVersionForKey("composeNavigation", "2.9.3"))
51+
get() = versionRequirement(key = "composeBom", defaultValue = "2025.10.00")
5552

5653
internal val JUNIT4_VERSION: VersionRequirement
57-
get() = VersionRequirement(key = "junit4", version = getVersionForKey("junit4", "4.13.2"))
54+
get() = versionRequirement(key = "junit4", defaultValue = "4.13.2")
5855
internal val KSP_VERSION: VersionRequirement
59-
get() = VersionRequirement(key = "ksp", version = getVersionForKey("ksp", "2.2.10-2.0.2"))
56+
get() = versionRequirement(key = "ksp", defaultValue = "2.2.20-2.0.4")
6057

6158
internal val KTLINT_VERSION: VersionRequirement
62-
get() = VersionRequirement(key = "ktlint", version = getVersionForKey("ktlint", "13.1.0"))
59+
get() = versionRequirement(key = "ktlint", defaultValue = "13.1.0")
6360
internal val DETEKT_VERSION: VersionRequirement
64-
get() = VersionRequirement(key = "detekt", version = getVersionForKey("detekt", "1.23.6"))
61+
get() = versionRequirement(key = "detekt", defaultValue = "1.23.8")
6562

6663
internal val ANDROIDX_CORE_KTX_VERSION: VersionRequirement
67-
get() = VersionRequirement(key = "androidxCoreKtx", version = getVersionForKey("androidxCoreKtx", "1.12.0"))
64+
get() = versionRequirement(key = "androidxCoreKtx", defaultValue = "1.17.0")
6865
internal val ANDROIDX_LIFECYCLE_RUNTIME_KTX_VERSION: VersionRequirement
69-
get() = VersionRequirement(key = "androidxLifecycleRuntimeKtx", version = getVersionForKey("androidxLifecycleRuntimeKtx", "2.7.0"))
66+
get() = versionRequirement(key = "androidxLifecycleRuntimeKtx", defaultValue = "2.9.4")
7067
internal val KOTLINX_COROUTINES_VERSION: VersionRequirement
71-
get() = VersionRequirement(key = "kotlinxCoroutines", version = getVersionForKey("kotlinxCoroutines", "1.7.3"))
68+
get() = versionRequirement(key = "kotlinxCoroutines", defaultValue = "1.10.2")
7269
internal val MATERIAL_VERSION: VersionRequirement
73-
get() = VersionRequirement(key = "material", version = getVersionForKey("material", "1.11.0"))
70+
get() = versionRequirement(key = "material", defaultValue = "1.13.0")
7471
internal val OKHTTP3_VERSION: VersionRequirement
75-
get() = VersionRequirement(key = "okhttp3", version = getVersionForKey("okhttp3", "4.12.0"))
72+
get() = versionRequirement(key = "okhttp3", defaultValue = "5.2.1")
7673
internal val ANDROIDX_APPCOMPAT_VERSION: VersionRequirement
77-
get() = VersionRequirement(key = "androidxAppcompat", version = getVersionForKey("androidxAppcompat", "1.6.1"))
74+
get() = versionRequirement(key = "androidxAppcompat", defaultValue = "1.7.1")
7875
internal val HILT_VERSION: VersionRequirement
79-
get() = VersionRequirement(key = "hilt", version = getVersionForKey("hilt", "2.57.2"))
76+
get() = versionRequirement(key = "hilt", defaultValue = "2.57.2")
8077
internal val ANDROIDX_RECYCLER_VIEW_VERSION: VersionRequirement
81-
get() = VersionRequirement(key = "androidxRecyclerView", version = getVersionForKey("androidxRecyclerView", "1.3.2"))
78+
get() = versionRequirement(key = "androidxRecyclerView", defaultValue = "1.4.0")
8279
internal val ANDROIDX_FRAGMENT_KTX_VERSION: VersionRequirement
83-
get() = VersionRequirement(key = "androidxFragmentKtx", version = getVersionForKey("androidxFragmentKtx", "1.6.2"))
84-
internal val ANDROIDX_NAVIGATION_FRAGMENT_KTX_VERSION: VersionRequirement
85-
get() =
86-
VersionRequirement(
87-
key = "androidxNavigationFragmentKtx",
88-
version = getVersionForKey("androidxNavigationFragmentKtx", "2.7.6")
89-
)
80+
get() = versionRequirement(key = "androidxFragmentKtx", defaultValue = "1.8.9")
81+
internal val ANDROID_NAVIGATION_VERSION: VersionRequirement
82+
get() = versionRequirement(key = "androidNavigation", defaultValue = "2.9.5")
9083
internal val ANDROIDX_CONSTRAINT_LAYOUT_VERSION: VersionRequirement
91-
get() = VersionRequirement(key = "androidxConstraintLayout", version = getVersionForKey("androidxConstraintLayout", "2.1.4"))
84+
get() = versionRequirement(key = "androidxConstraintLayout", defaultValue = "2.2.1")
9285

9386
internal val ANDROIDX_ACTIVITY_COMPOSE_VERSION: VersionRequirement
94-
get() = VersionRequirement(key = "androidxActivityCompose", version = getVersionForKey("androidxActivityCompose", "1.8.2"))
87+
get() = versionRequirement(key = "androidxActivityCompose", defaultValue = "1.11.0")
9588

9689
internal val KTOR_VERSION: VersionRequirement
97-
get() = VersionRequirement(key = "ktor", version = getVersionForKey("ktor", "3.0.3"))
90+
get() = versionRequirement(key = "ktor", defaultValue = "3.3.1")
9891
internal val RETROFIT_VERSION: VersionRequirement
99-
get() = VersionRequirement(key = "retrofit", version = getVersionForKey("retrofit", "2.11.0"))
92+
get() = versionRequirement(key = "retrofit", defaultValue = "3.0.0")
10093

10194
internal val TEST_MOCKITO_CORE_VERSION: VersionRequirement
102-
get() = VersionRequirement(key = "mockitoCore", version = getVersionForKey("mockitoCore", "5.20.0"))
95+
get() = versionRequirement(key = "mockitoCore", defaultValue = "5.20.0")
10396
internal val TEST_MOCKITO_KOTLIN_VERSION: VersionRequirement
104-
get() = VersionRequirement(key = "mockitoKotlin", version = getVersionForKey("mockitoKotlin", "6.0.0"))
97+
get() = versionRequirement(key = "mockitoKotlin", defaultValue = "6.1.0")
10598
internal val TEST_MOCKITO_ANDROID_VERSION: VersionRequirement
106-
get() = VersionRequirement(key = "mockitoAndroid", version = getVersionForKey("mockitoAndroid", "2.28.6"))
99+
get() = versionRequirement(key = "mockitoAndroid", defaultValue = "2.28.6")
107100

108101
internal val TEST_ANDROIDX_JUNIT_VERSION: VersionRequirement
109-
get() = VersionRequirement(key = "androidxJunit", version = getVersionForKey("androidxJunit", "1.1.5"))
110-
internal val TEST_ANDROIDX_ESPRESSO_CORE_VERSION: VersionRequirement
111-
get() = VersionRequirement(key = "androidxEspressoCore", version = getVersionForKey("androidxEspressoCore", "3.5.1"))
112-
internal val TEST_ANDROID_HILT_VERSION: VersionRequirement
113-
get() = VersionRequirement(key = "androidHilt", version = getVersionForKey("androidHilt", "2.48"))
102+
get() = versionRequirement(key = "androidxJunit", defaultValue = "1.3.0")
103+
internal val TEST_ANDROIDX_ESPRESSO_VERSION: VersionRequirement
104+
get() = versionRequirement(key = "androidxEspresso", defaultValue = "3.7.0")
114105
internal val TEST_ANDROID_UI_AUTOMATOR_VERSION: VersionRequirement
115-
get() = VersionRequirement(key = "androidxUiautomator", version = getVersionForKey("androidxUiautomator", "2.2.0"))
106+
get() = versionRequirement(key = "androidxUiautomator", defaultValue = "2.3.0")
116107
internal val TEST_ANDROIDX_RULES_VERSION: VersionRequirement
117-
get() = VersionRequirement(key = "androidxTestRules", version = getVersionForKey("androidxTestRules", "1.5.0"))
108+
get() = versionRequirement(key = "androidxTestRules", defaultValue = "1.7.0")
118109

119110
val ANDROID_VERSIONS =
120111
listOf(
@@ -123,6 +114,11 @@ object VersionCatalogConstants {
123114
TARGET_SDK_VERSION,
124115
ANDROID_GRADLE_PLUGIN_VERSION
125116
)
117+
118+
private fun versionRequirement(
119+
key: String,
120+
defaultValue: String
121+
) = VersionRequirement(key = key, version = getVersionForKey(key, defaultValue))
126122
}
127123

128124
object LibraryConstants {
@@ -199,7 +195,7 @@ object LibraryConstants {
199195
LibraryRequirement(
200196
key = "compose-navigation",
201197
module = "androidx.navigation:navigation-compose",
202-
version = COMPOSE_NAVIGATION_VERSION
198+
version = ANDROID_NAVIGATION_VERSION
203199
)
204200

205201
val TEST_JUNIT: LibraryRequirement
@@ -223,15 +219,15 @@ object LibraryConstants {
223219
LibraryRequirement(
224220
key = "test-androidx-espresso-core",
225221
module = "androidx.test.espresso:espresso-core",
226-
version = TEST_ANDROIDX_ESPRESSO_CORE_VERSION
222+
version = TEST_ANDROIDX_ESPRESSO_VERSION
227223
)
228224

229225
val TEST_ANDROID_HILT: LibraryRequirement
230226
get() =
231227
LibraryRequirement(
232228
key = "test-android-hilt",
233229
module = "com.google.dagger:hilt-android-testing",
234-
version = TEST_ANDROID_HILT_VERSION
230+
version = HILT_VERSION
235231
)
236232

237233
val TEST_ANDROID_UI_AUTOMATOR: LibraryRequirement
@@ -286,15 +282,15 @@ object LibraryConstants {
286282
LibraryRequirement(
287283
key = "hilt-android",
288284
module = "com.google.dagger:hilt-android",
289-
version = VersionCatalogConstants.HILT_VERSION
285+
version = HILT_VERSION
290286
)
291287

292288
val HILT_ANDROID_COMPILER: LibraryRequirement
293289
get() =
294290
LibraryRequirement(
295291
key = "hilt-android-compiler",
296292
module = "com.google.dagger:hilt-android-compiler",
297-
version = VersionCatalogConstants.HILT_VERSION
293+
version = HILT_VERSION
298294
)
299295

300296
val ANDROIDX_APPCOMPAT: LibraryRequirement
@@ -326,7 +322,7 @@ object LibraryConstants {
326322
LibraryRequirement(
327323
key = "androidx-navigation-fragment-ktx",
328324
module = "androidx.navigation:navigation-fragment-ktx",
329-
version = ANDROIDX_NAVIGATION_FRAGMENT_KTX_VERSION
325+
version = ANDROID_NAVIGATION_VERSION
330326
)
331327

332328
val ANDROIDX_UI_TOOLING: LibraryRequirement
@@ -521,7 +517,7 @@ object PluginConstants {
521517
PluginRequirement(
522518
key = "hilt",
523519
id = "com.google.dagger.hilt.android",
524-
version = VersionCatalogConstants.HILT_VERSION
520+
version = HILT_VERSION
525521
)
526522

527523
val COMPOSE_COMPILER: PluginRequirement

core/src/test/kotlin/com/mitteloupe/cag/core/GeneratorTest.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -468,10 +468,10 @@ class GeneratorTest {
468468
[versions]
469469
$existingVersions
470470
targetSdk = "36"
471-
androidGradlePlugin = "8.12.2"
472-
composeBom = "2025.08.01"
473-
composeNavigation = "2.9.3"
474-
androidxActivityCompose = "1.8.2"
471+
androidGradlePlugin = "8.13.0"
472+
composeBom = "2025.10.00"
473+
androidNavigation = "2.9.5"
474+
androidxActivityCompose = "1.11.0"
475475
476476
[libraries]
477477
$existingLibraries
@@ -480,7 +480,7 @@ class GeneratorTest {
480480
compose-ui-graphics = { module = "androidx.compose.ui:ui-graphics" }
481481
compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" }
482482
compose-material3 = { module = "androidx.compose.material3:material3" }
483-
compose-navigation = { module = "androidx.navigation:navigation-compose", version.ref = "composeNavigation" }
483+
compose-navigation = { module = "androidx.navigation:navigation-compose", version.ref = "androidNavigation" }
484484
compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" }
485485
compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest" }
486486
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidxActivityCompose" }
@@ -527,9 +527,9 @@ class GeneratorTest {
527527
val expectedContent =
528528
"""
529529
[versions]
530-
kotlin = "2.2.10"
531-
ksp = "2.2.10-2.0.2"
532-
androidGradlePlugin = "8.12.2"
530+
kotlin = "2.2.20"
531+
ksp = "2.2.20-2.0.4"
532+
androidGradlePlugin = "8.13.0"
533533
compileSdk = "36"
534534
minSdk = "24"
535535
targetSdk = "36"
@@ -589,7 +589,7 @@ class GeneratorTest {
589589
[versions]
590590
$existingVersions
591591
targetSdk = "36"
592-
androidGradlePlugin = "8.12.2"
592+
androidGradlePlugin = "8.13.0"
593593
594594
[libraries]
595595
$existingLibraries

core/src/test/kotlin/com/mitteloupe/cag/core/generation/GradleFileCreatorTest.kt

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,21 @@ class GradleFileCreatorTest {
9797
val catalog = VersionCatalogUpdater(fileCreator)
9898
val expectedContent =
9999
"""
100+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
101+
100102
plugins {
101103
alias(libs.plugins.android.application)
102104
alias(libs.plugins.kotlin.android)
103105
alias(libs.plugins.ksp)
104106
alias(libs.plugins.hilt)
105107
}
106108
109+
kotlin {
110+
compilerOptions {
111+
jvmTarget.set(JvmTarget.JVM_17)
112+
}
113+
}
114+
107115
android {
108116
namespace = "com.brand.app"
109117
compileSdk = libs.versions.compileSdk.get().toInt()
@@ -131,8 +139,8 @@ class GradleFileCreatorTest {
131139
sourceCompatibility = JavaVersion.VERSION_17
132140
targetCompatibility = JavaVersion.VERSION_17
133141
}
134-
kotlinOptions {
135-
jvmTarget = "17"
142+
packaging {
143+
resources.pickFirsts += "META-INF/versions/9/OSGI-INF/MANIFEST.MF"
136144
}
137145
}
138146
@@ -185,6 +193,8 @@ class GradleFileCreatorTest {
185193
val catalog = VersionCatalogUpdater(fileCreator)
186194
val expectedContent =
187195
"""
196+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
197+
188198
plugins {
189199
alias(libs.plugins.android.application)
190200
alias(libs.plugins.kotlin.android)
@@ -193,6 +203,12 @@ class GradleFileCreatorTest {
193203
alias(libs.plugins.compose.compiler)
194204
}
195205
206+
kotlin {
207+
compilerOptions {
208+
jvmTarget.set(JvmTarget.JVM_17)
209+
}
210+
}
211+
196212
android {
197213
namespace = "com.awesome.app"
198214
compileSdk = libs.versions.compileSdk.get().toInt()
@@ -220,12 +236,12 @@ class GradleFileCreatorTest {
220236
sourceCompatibility = JavaVersion.VERSION_17
221237
targetCompatibility = JavaVersion.VERSION_17
222238
}
223-
kotlinOptions {
224-
jvmTarget = "17"
225-
}
226239
buildFeatures {
227240
compose = true
228241
}
242+
packaging {
243+
resources.pickFirsts += "META-INF/versions/9/OSGI-INF/MANIFEST.MF"
244+
}
229245
}
230246
231247
dependencies {

0 commit comments

Comments
 (0)