Skip to content

Commit 8fa475f

Browse files
committed
perf: update libs
1 parent e3c94bc commit 8fa475f

File tree

3 files changed

+45
-26
lines changed

3 files changed

+45
-26
lines changed

build.gradle.kts

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import nl.littlerobots.vcu.plugin.versionSelector
12
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
23

34
ext {
@@ -22,14 +23,27 @@ plugins {
2223
alias(libs.plugins.kotlinx.atomicfu) apply false
2324
alias(libs.plugins.rikka.refine) apply false
2425
alias(libs.plugins.loc) apply false
25-
alias(libs.plugins.benmanes.version)
2626
alias(libs.plugins.littlerobots.version)
2727
}
2828

29-
val normalVersionRegex by lazy { "^[0-9\\.]+".toRegex() }
29+
// ./gradlew versionCatalogUpdate --interactive
30+
versionCatalogUpdate {
31+
versionSelector {
32+
val a = it.currentVersion
33+
val b = it.candidate.version
34+
isSameTypeVersion(a, b) && isNewerVersion(a, b)
35+
}
36+
}
37+
projectDir.resolve("./gradle/libs.versions.updates.toml").apply {
38+
if (exists()) {
39+
delete()
40+
}
41+
}
42+
43+
val versionReg = "^[0-9\\.]+".toRegex()
3044
fun isSameTypeVersion(currentVersion: String, newVersion: String): Boolean {
31-
if (normalVersionRegex.matches(currentVersion)) {
32-
return normalVersionRegex.matches(newVersion)
45+
if (versionReg.matches(currentVersion)) {
46+
return versionReg.matches(newVersion)
3347
}
3448
arrayOf("alpha", "beta", "dev", "rc").forEach { v ->
3549
if (currentVersion.contains(v, true)) {
@@ -38,14 +52,20 @@ fun isSameTypeVersion(currentVersion: String, newVersion: String): Boolean {
3852
}
3953
throw IllegalArgumentException("Unknown version type: $currentVersion -> $newVersion")
4054
}
41-
tasks.withType<com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask> {
42-
rejectVersionIf {
43-
!isSameTypeVersion(currentVersion, candidate.version)
44-
}
45-
}
46-
// ./gradlew versionCatalogUpdate --interactive
47-
projectDir.resolve("./gradle/libs.versions.updates.toml").apply {
48-
if (exists()) {
49-
delete()
55+
56+
val numberReg = "\\d+".toRegex()
57+
fun isNewerVersion(currentVersion: String, newVersion: String): Boolean {
58+
val currentParts = numberReg.findAll(currentVersion).map { it.value.toInt() }.toList()
59+
val newParts = numberReg.findAll(newVersion).map { it.value.toInt() }.toList()
60+
val length = maxOf(currentParts.size, newParts.size)
61+
for (i in 0 until length) {
62+
val currentPart = currentParts.getOrNull(i) ?: 0
63+
val newPart = newParts.getOrNull(i) ?: 0
64+
if (currentPart < newPart) {
65+
return true
66+
} else if (currentPart > newPart) {
67+
return false
68+
}
5069
}
70+
return false
5171
}

gradle/libs.versions.toml

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
[versions]
2-
kotlin = "2.3.10"
2+
kotlin = "2.3.20"
33
serialization = "1.10.0"
4-
ksp = "2.3.5"
5-
agp = "9.0.0"
6-
compose = "1.10.3"
4+
ksp = "2.3.6"
5+
agp = "9.1.0"
6+
compose = "1.10.5"
77
nav3 = "1.0.1"
88
room = "2.8.4"
9-
paging = "3.4.1"
10-
ktor = "3.4.0"
9+
paging = "3.4.2"
10+
ktor = "3.4.1"
1111
atomicfu = "0.31.0"
12-
coil = "3.3.0"
12+
coil = "3.4.0"
1313
refine = "4.4.0"
1414
shizuku = "13.1.5"
1515
loc = "0.5.4"
@@ -36,14 +36,14 @@ compose-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "co
3636
compose-junit4 = { module = "androidx.compose.ui:ui-test-junit4", version.ref = "compose" }
3737
compose-icons = "androidx.compose.material:material-icons-extended:1.7.8"
3838
compose-material3 = "androidx.compose.material3:material3:1.4.0"
39-
compose-activity = "androidx.activity:activity-compose:1.12.4"
39+
compose-activity = "androidx.activity:activity-compose:1.13.0"
4040
androidx-appcompat = "androidx.appcompat:appcompat:1.7.1"
41-
androidx-core-ktx = "androidx.core:core-ktx:1.17.0"
41+
androidx-core-ktx = "androidx.core:core-ktx:1.18.0"
4242
androidx-lifecycle-runtime-ktx = "androidx.lifecycle:lifecycle-runtime-ktx:2.10.0"
4343
androidx-lifecycle-service = "androidx.lifecycle:lifecycle-service:2.10.0"
4444
androidx-navigation3-runtime = { module = "androidx.navigation3:navigation3-runtime", version.ref = "nav3" }
4545
androidx-navigation3-ui = { module = "androidx.navigation3:navigation3-ui", version.ref = "nav3" }
46-
androidx-material3-adaptive-navigation3 = "androidx.compose.material3.adaptive:adaptive-navigation3:1.3.0-alpha08"
46+
androidx-material3-adaptive-navigation3 = "androidx.compose.material3.adaptive:adaptive-navigation3:1.3.0-alpha09"
4747
androidx-lifecycle-viewmodel-navigation3 = "androidx.lifecycle:lifecycle-viewmodel-navigation3:2.10.0"
4848
androidx-junit = "androidx.test.ext:junit:1.3.0"
4949
androidx-annotation = "androidx.annotation:annotation:1.9.1"
@@ -87,5 +87,4 @@ androidx-room = { id = "androidx.room", version.ref = "room" }
8787
google-ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
8888
rikka-refine = { id = "dev.rikka.tools.refine", version.ref = "refine" }
8989
loc = { id = "li.songe.loc", version.ref = "loc" }
90-
benmanes-version = "com.github.ben-manes.versions:0.53.0"
91-
littlerobots-version = "nl.littlerobots.version-catalog-update:1.0.1"
90+
littlerobots-version = "nl.littlerobots.version-catalog-update:1.1.0"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
2-
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
2+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip
33
distributionPath=wrapper/dists
44
zipStorePath=wrapper/dists
55
zipStoreBase=GRADLE_USER_HOME

0 commit comments

Comments
 (0)