Skip to content

Commit 28e1611

Browse files
authored
Update to Kotlin 2.3.20 (#122)
* Update to Kotlin 2.3.20 * Disable checking for dependencies
1 parent c2127df commit 28e1611

5 files changed

Lines changed: 41 additions & 13 deletions

File tree

gradle/libs.versions.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[versions]
2-
kgp = "2.3.0"
2+
kgp = "2.3.20"
33
nmcp = "1.4.3"
44
nmcp-build-time = "1.4.4-SNAPSHOT-7b0410ef4061d1249c7b161698764b8194838354"
55
mosaic = "0.19.0-gradleup.0"
@@ -20,10 +20,10 @@ gradle-api = "dev.gradleplugins:gradle-api:8.8"
2020
gratatouille-gradle-plugin = "com.gradleup.gratatouille:com.gradleup.gratatouille.gradle.plugin:0.2.2"
2121
jsonpath = "com.eygraber:jsonpathkt-kotlinx:3.0.2"
2222
jsonpathkt = "com.eygraber:jsonpathkt-kotlinx:3.0.2"
23-
kgp-compile-only = "org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.20-Beta1"
23+
kgp-compile-only = "org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.20"
2424
kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kgp" }
2525
ksp-gradle-plugin = "com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin:2.3.3"
26-
librarian-gradle-plugin = "com.gradleup.librarian:librarian-gradle-plugin:0.2.2-SNAPSHOT-05f300b66924ec4c98ed4afcc6eed459fd08806b"
26+
librarian-gradle-plugin = "com.gradleup.librarian:librarian-gradle-plugin:0.2.2-SNAPSHOT-c2127df7d03b2946fc025bf67d31cac3e2c5a397"
2727
maven-sympathy = "com.gradleup.maven-sympathy:maven-sympathy:0.0.2"
2828
mockserver = "com.apollographql.mockserver:apollo-mockserver:0.0.3"
2929
# forked for https://github.com/JakeWharton/mosaic/pull/1100

librarian-core/api/librarian-core.api

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ public final class com/gradleup/librarian/core/tooling/SemverKt {
101101
public static final fun nextPatch (Lcom/gradleup/librarian/core/tooling/SemVer;)Lcom/gradleup/librarian/core/tooling/SemVer;
102102
public static final fun nextPrerelease (Lcom/gradleup/librarian/core/tooling/SemVer;)Lcom/gradleup/librarian/core/tooling/SemVer;
103103
public static final fun semVerOrNull (Ljava/lang/String;)Lcom/gradleup/librarian/core/tooling/SemVer;
104+
public static final fun semVerOrThrow (Ljava/lang/String;)Lcom/gradleup/librarian/core/tooling/SemVer;
104105
}
105106

106107
public final class com/gradleup/librarian/core/tooling/Tag_and_bumpKt {

librarian-core/src/main/kotlin/com/gradleup/librarian/core/tooling/semver.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,9 @@ fun SemVer.next(): SemVer {
194194
}
195195
}
196196
}
197+
fun String.semVerOrThrow(): SemVer {
198+
return semVerOrNull() ?: error("Cannot parse $this as a SemVer string")
199+
}
197200

198201
fun String.semVerOrNull(): SemVer? {
199202
val regex1 = Regex("([0-9]+)\\.([0-9]+)\\.([0-9]+)(.*)")

librarian-gradle-plugin/src/main/kotlin/com/gradleup/librarian/gradle/bcv.kt

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1+
@file:OptIn(ExperimentalAbiValidation::class)
2+
13
package com.gradleup.librarian.gradle
24

5+
import com.gradleup.librarian.core.tooling.semVerOrThrow
36
import org.gradle.api.Project
47
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
58
import org.jetbrains.kotlin.gradle.dsl.abi.AbiValidationExtension
69
import org.jetbrains.kotlin.gradle.dsl.abi.AbiValidationMultiplatformExtension
710
import org.jetbrains.kotlin.gradle.dsl.abi.ExperimentalAbiValidation
811
import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
912

10-
@OptIn(ExperimentalAbiValidation::class)
1113
fun Project.configureBcv(
1214
warnIfMissing: Boolean = true,
1315
excludePatterns: List<String> = emptyList(),
@@ -29,20 +31,38 @@ fun Project.configureBcv(
2931
it.exclude.byNames.addAll(excludePatterns)
3032
}
3133
}
32-
else -> error("Librarian: unknown abiValidation extension type: '${abiValidation.javaClass.name}'")
34+
else -> error("Librarian: unknown abiValidation extension type: '${abiValidation.javaClass.name}'")
3335
}
3436

35-
tasks.named("build") {
36-
it.dependsOn("checkLegacyAbi")
37-
}
37+
// See https://kotlinlang.org/docs/whatsnew2320.html#improvements-to-binary-compatibility-validation-in-kgp
38+
val kgpVersion = this@configureBcv.getKotlinPluginVersion().semVerOrThrow()
39+
3840
/**
3941
* Compatibility tasks to not break the brain muscle
4042
*/
41-
tasks.register("apiDump") {
42-
it.dependsOn("updateLegacyAbi")
43-
}
44-
tasks.register("apiCheck") {
45-
it.dependsOn("checkLegacyAbi")
43+
if (kgpVersion >= "2.3.20".semVerOrThrow()) {
44+
tasks.register("apiDump") {
45+
it.dependsOn("updateKotlinAbi")
46+
it.doLast {
47+
println("`apiDump` is deprecated. Use `updateKotlinAbi` instead")
48+
}
49+
}
50+
tasks.register("apiCheck") {
51+
it.dependsOn("checkKotlinAbi")
52+
it.doLast {
53+
println("`apiCheck` is deprecated. Use `updateKotlinAbi` instead")
54+
}
55+
}
56+
} else {
57+
tasks.named("build") {
58+
it.dependsOn("checkLegacyAbi")
59+
}
60+
tasks.register("apiDump") {
61+
it.dependsOn("updateLegacyAbi")
62+
}
63+
tasks.register("apiCheck") {
64+
it.dependsOn("checkLegacyAbi")
65+
}
4666
}
4767
} else {
4868
if (warnIfMissing) {

librarian.root.properties

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,7 @@ pom.license=MIT
1313

1414
gcs.bucket=gradleup
1515
gcs.prefix=m2
16+
17+
# nmcp exposes kotlin-stdlib 2.2 in the compile classpath
18+
# xmlutil exposes kotlin-stdlib 2.3 in the runtime classpath
19+
checkDependenciesCompatibility=false

0 commit comments

Comments
 (0)