Skip to content

Commit b9d5558

Browse files
Kotlin 2 support and drop Kotlin 1 support (#799)
Also, Kotlin multiplatform test is removed – I couldn't get it to work with the changes and deprecations introduced by the new KGP – we can revisit if we get actionable feedback from customers using KMP.
1 parent ac4b5c7 commit b9d5558

File tree

7 files changed

+53
-56
lines changed

7 files changed

+53
-56
lines changed

build.sbt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ lazy val V =
2323
val scala3 = "3.3.3"
2424
val metals = "1.2.2"
2525
val scalameta = "4.9.3"
26-
val semanticdbKotlinc = "0.4.0"
26+
val semanticdbKotlin = "0.5.0"
2727
val testcontainers = "0.39.3"
2828
val requests = "0.8.0"
2929
val minimalMillVersion = "0.10.0"
@@ -138,7 +138,7 @@ lazy val gradlePlugin = project
138138
"sbtSourcegraphVersion" ->
139139
com.sourcegraph.sbtsourcegraph.BuildInfo.version,
140140
"semanticdbVersion" -> V.scalameta,
141-
"semanticdbKotlincVersion" -> V.semanticdbKotlinc,
141+
"semanticdbKotlincVersion" -> V.semanticdbKotlin,
142142
"mtagsVersion" -> V.metals,
143143
"scala211" -> V.scala211,
144144
"scala212" -> V.scala212,
@@ -266,7 +266,7 @@ lazy val cli = project
266266
"sbtSourcegraphVersion" ->
267267
com.sourcegraph.sbtsourcegraph.BuildInfo.version,
268268
"semanticdbVersion" -> V.scalameta,
269-
"semanticdbKotlincVersion" -> V.semanticdbKotlinc,
269+
"semanticdbKotlincVersion" -> V.semanticdbKotlin,
270270
"mtagsVersion" -> V.metals,
271271
"scala211" -> V.scala211,
272272
"scala212" -> V.scala212,

project/build.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
sbt.version=1.10.10
1+
sbt.version=1.11.2

project/plugins.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
addSbtPlugin("org.xerial.sbt" % "sbt-pack" % "0.14")
22
addSbtPlugin("se.marcuslonnberg" % "sbt-docker" % "1.9.0")
3-
addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.5.10")
3+
addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.11.1")
44
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.10.0")
55
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6")
66
addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.5.2")

scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/GradleBuildTool.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,6 @@ class GradleBuildTool(index: IndexCommand) extends BuildTool("Gradle", index) {
100100
val pluginpath = Embedded.semanticdbJar(tmp)
101101
val gradlePluginPath = Embedded.gradlePluginJar(tmp)
102102
val dependenciesPath = targetroot.resolve("dependencies.txt")
103-
val kotlinSemanticdbVersion = BuildInfo.semanticdbKotlincVersion
104103
Files.deleteIfExists(dependenciesPath)
105104

106105
val script =

semanticdb-gradle-plugin/src/main/scala/SemanticdbGradlePlugin.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,7 @@ class SemanticdbGradlePlugin extends Plugin[Project] {
333333
def getKotlinOptions(): {
334334
def getFreeCompilerArgs(): ju.List[String]
335335
def setFreeCompilerArgs(args: ju.List[String]): Unit
336+
// def getLanguageVersion(): Any
336337
}
337338
}
338339
]

tests/buildTools/src/test/scala/tests/GradleBuildToolSuite.scala

Lines changed: 46 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -361,10 +361,10 @@ abstract class GradleBuildToolSuite(gradle: Tool.Gradle)
361361
tools = List(Scala2_12_12)
362362
)
363363
checkGradleBuild(
364-
"kotlin",
364+
"kotlin2",
365365
"""|/build.gradle
366366
|plugins {
367-
| id 'org.jetbrains.kotlin.jvm' version '1.8.0'
367+
| id 'org.jetbrains.kotlin.jvm' version '2.1.20'
368368
|}
369369
|repositories {
370370
| mavenCentral()
@@ -383,7 +383,7 @@ abstract class GradleBuildToolSuite(gradle: Tool.Gradle)
383383
|class ExampleSuite {}
384384
|""".stripMargin,
385385
expectedSemanticdbFiles = 4,
386-
gradleVersions = List(Gradle6, Gradle7)
386+
gradleVersions = List(Gradle8)
387387
)
388388

389389
checkGradleBuild(
@@ -438,7 +438,7 @@ abstract class GradleBuildToolSuite(gradle: Tool.Gradle)
438438
s"""|/build.gradle
439439
|plugins {
440440
| id 'java'
441-
| id 'org.jetbrains.kotlin.jvm' version '1.8.0'
441+
| id 'org.jetbrains.kotlin.jvm' version '2.1.20'
442442
|}
443443
|java {
444444
| toolchain {
@@ -451,54 +451,51 @@ abstract class GradleBuildToolSuite(gradle: Tool.Gradle)
451451
|object Example {}
452452
|""".stripMargin,
453453
expectedSemanticdbFiles = 1,
454-
// Older Kotlin gradle plugins don't support Gradle 8:
455-
// https://youtrack.jetbrains.com/issue/KT-55704/Cannot-use-TaskAction-annotation-on-method-AbstractKotlinCompile.execute-error-while-using-Gradle-8.0-rc-with-KGP-1.5.32
456-
gradleVersions = List(Gradle6, Gradle7)
454+
gradleVersions = List(Gradle8)
457455
)
458456
}
459457

460-
List("jvm()" -> 2, "jvm { withJava() }" -> 4).foreach {
461-
case (jvmSettings, expectedSemanticdbFiles) =>
462-
checkGradleBuild(
463-
s"kotlin-multiplatform-$jvmSettings",
464-
s"""|/build.gradle
465-
|plugins {
466-
| id 'org.jetbrains.kotlin.multiplatform' version '1.8.0'
467-
|}
468-
|repositories {
469-
| mavenCentral()
470-
|}
471-
|kotlin {
472-
| ${jvmSettings}
473-
| sourceSets {
474-
| jvmTest {
475-
| dependencies {
476-
| implementation kotlin("test-junit")
477-
| }
478-
| }
479-
| }
480-
|}
481-
|/gradle.properties
482-
|kotlin.mpp.stability.nowarn=true
483-
|/src/jvmMain/java/foo/ExampleJ.java
484-
|package foo;
485-
|public class ExampleJ {} // ignored by multiplatform
486-
|/src/jvmMain/kotlin/foo/Example.kt
487-
|package foo
488-
|object Example {}
489-
|/src/jvmTest/java/foo/ExampleJSuite.java
490-
|package foo;
491-
|class ExampleJSuite {} // ignored by multiplatform
492-
|/src/commonTest/kotlin/foo/ExampleJvmSuite.kt
493-
|package foo
494-
|class ExampleJvmSuite {}
495-
|""".stripMargin,
496-
expectedSemanticdbFiles = expectedSemanticdbFiles,
497-
// Older Kotlin gradle plugins don't support Gradle 8:
498-
// https://youtrack.jetbrains.com/issue/KT-55704/Cannot-use-TaskAction-annotation-on-method-AbstractKotlinCompile.execute-error-while-using-Gradle-8.0-rc-with-KGP-1.5.32
499-
gradleVersions = List(Gradle6, Gradle7)
500-
)
501-
}
458+
/*
459+
* TODO: Fixing this test for Kotlin 2.1 proved to be difficult.
460+
There are some related deprecations in https://www.jetbrains.com/help/kotlin-multiplatform-dev/multiplatform-compatibility-guide.html#kotlin-2-0-0-and-later
461+
but the test doesn't behave as expected.
462+
*/
463+
// List("jvm()" -> 4, "jvm { withJava() }" -> 4).foreach {
464+
// case (jvmSettings, expectedSemanticdbFiles) =>
465+
// checkGradleBuild(
466+
// s"kotlin-multiplatform-$jvmSettings",
467+
// s"""|/build.gradle
468+
// |plugins {
469+
// | id 'org.jetbrains.kotlin.multiplatform' version '2.1.20'
470+
// |}
471+
// |repositories {
472+
// | mavenCentral()
473+
// |}
474+
// |kotlin {
475+
// | ${jvmSettings}
476+
// |}
477+
// |/gradle.properties
478+
// |kotlin.mpp.stability.nowarn=true
479+
// |kotlin.jvm.target.validation.mode=ignore
480+
// |/src/jvmMain/java/foo/ExampleJ.java
481+
// |package foo;
482+
// |public class ExampleJ {} // ignored by multiplatform
483+
// |/src/jvmMain/kotlin/foo/Example.kt
484+
// |package foo
485+
// |object Example {}
486+
// |/src/jvmTest/java/foo/ExampleJSuite.java
487+
// |package foo;
488+
// |class ExampleJSuite {} // ignored by multiplatform
489+
// |/src/commonTest/kotlin/foo/ExampleJvmSuite.kt
490+
// |package foo
491+
// |class ExampleJvmSuite {}
492+
// |""".stripMargin,
493+
// expectedSemanticdbFiles = expectedSemanticdbFiles,
494+
// // Older Kotlin gradle plugins don't support Gradle 8:
495+
// // https://youtrack.jetbrains.com/issue/KT-55704/Cannot-use-TaskAction-annotation-on-method-AbstractKotlinCompile.execute-error-while-using-Gradle-8.0-rc-with-KGP-1.5.32
496+
// gradleVersions = List(Gradle7, Gradle8)
497+
// )
498+
// }
502499

503500
checkGradleBuild(
504501
"legacy",

tests/buildTools/src/test/scala/tests/Tool.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ object Tool {
3535
sealed abstract class Gradle(version: String, support: JVMSupport)
3636
extends Tool("gradle", version, support)
3737
case object Gradle8 extends Gradle("8.7", atMostJava(21))
38-
case object Gradle7 extends Gradle("7.6.1", atMostJava(17))
38+
case object Gradle7 extends Gradle("7.6.3", atMostJava(17))
3939
case object Gradle6 extends Gradle("6.8.3", atMostJava(11))
4040
case object Gradle5 extends Gradle("5.6.4", atMostJava(11))
4141
case object Gradle3 extends Gradle("3.3", atMostJava(8))

0 commit comments

Comments
 (0)