From e520f3761844185413b0913482239aa0581a1eb5 Mon Sep 17 00:00:00 2001 From: Anton Sviridov Date: Mon, 25 Sep 2023 11:11:13 +0100 Subject: [PATCH 1/4] Fix trailing SBT args and add tests --- .../scip_java/buildtools/SbtBuildTool.scala | 8 +++++- .../test/scala/tests/SbtBuildToolSuite.scala | 27 ++++++++++++++++--- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/SbtBuildTool.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/SbtBuildTool.scala index bc2d6ee1..0a275449 100644 --- a/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/SbtBuildTool.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/SbtBuildTool.scala @@ -43,8 +43,14 @@ class SbtBuildTool(index: IndexCommand) extends BuildTool("sbt", index) { private def unconditionallyGenerateScip(): Int = Using.resource(sourcegraphSbtPluginFile()) { _ => + val buildCommand = + if (index.buildCommand.isEmpty) + List("sourcegraphScip") + else + index.buildCommand + val sourcegraphScip = index - .process(List("sbt", "sourcegraphEnable", "sourcegraphScip")) + .process(List("sbt", "sourcegraphEnable") ++ buildCommand) val inputDump = index .workingDirectory .resolve("target") diff --git a/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala b/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala index 9eea1f6f..f9827b6f 100644 --- a/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala +++ b/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala @@ -1,6 +1,6 @@ package tests -abstract class SbtBuildToolSuite(sbtVersion: String) +abstract class SbtBuildToolSuite(val sbtVersion: String) extends BaseBuildToolSuite { List("2.11.9", "2.12.18", "2.13.11", "3.3.0").foreach { scalaVersion => checkBuild( @@ -9,7 +9,7 @@ abstract class SbtBuildToolSuite(sbtVersion: String) |scalaVersion := "$scalaVersion" |libraryDependencies += "junit" % "junit" % "4.13.2" |/project/build.properties - |sbt.version=1.5.2 + |sbt.version=$sbtVersion |/src/main/java/example/ExampleJava.java |package example; |import org.junit.Assert; @@ -29,8 +29,29 @@ abstract class SbtBuildToolSuite(sbtVersion: String) targetRoot = Some("target") ) } +} +class Sbt_1_BuildToolSuite extends SbtBuildToolSuite("1.5.2") { + checkBuild( + s"custom-sbt-command=$sbtVersion", + s"""|/build.sbt + |lazy val bla = project.in(file("bla")) + |lazy val blaJS = project.in(file("bla-js")).enablePlugins(ScalaJSPlugin) + |/project/plugins.sbt + |addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.14.0") + |/project/build.properties + |sbt.version=$sbtVersion + |/bla/src/main/scala/example/ExampleScala.scala + |package example + |class ExampleScala() + |/bla-js/src/main/scala/example/ExampleScala.scala + |package example + |class ExampleScala!!!() // this file is intentionally broken + |""".stripMargin, + expectedSemanticdbFiles = 1, + extraArguments = List("--", "bla/compile"), + targetRoot = Some("bla/target") + ) } -class Sbt_1_BuildToolSuite extends SbtBuildToolSuite("1.5.2") class Sbt_013_BuildToolSuite extends SbtBuildToolSuite("0.13.17") From 0938b3df0c50018f247c8541321fee518713919a Mon Sep 17 00:00:00 2001 From: Anton Sviridov Date: Mon, 25 Sep 2023 11:35:33 +0100 Subject: [PATCH 2/4] Don't run Scala 3 tests on SBT 0.13.x --- .../src/test/scala/tests/SbtBuildToolSuite.scala | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala b/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala index f9827b6f..908b320b 100644 --- a/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala +++ b/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala @@ -2,7 +2,18 @@ package tests abstract class SbtBuildToolSuite(val sbtVersion: String) extends BaseBuildToolSuite { - List("2.11.9", "2.12.18", "2.13.11", "3.3.0").foreach { scalaVersion => + val scala2Versions = List("2.11.9", "2.12.18", "2.13.11") + val scala3Versions = List("3.3.1") + + val versions = + sbtVersion match { + case s"0.13.$any" => + scala2Versions + case s"1.$any" => + scala2Versions ++ scala3Versions + } + + versions.foreach { scalaVersion => checkBuild( s"basic-sbt=$sbtVersion-scala=$scalaVersion", s"""|/build.sbt From 6237d589f76ef27c29d958ae506280482c3ba519 Mon Sep 17 00:00:00 2001 From: Anton Sviridov Date: Mon, 25 Sep 2023 15:19:08 +0100 Subject: [PATCH 3/4] Reuse index.finalBuildCommand --- .../sourcegraph/scip_java/buildtools/SbtBuildTool.scala | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/SbtBuildTool.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/SbtBuildTool.scala index 0a275449..4633bc92 100644 --- a/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/SbtBuildTool.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/SbtBuildTool.scala @@ -43,19 +43,17 @@ class SbtBuildTool(index: IndexCommand) extends BuildTool("sbt", index) { private def unconditionallyGenerateScip(): Int = Using.resource(sourcegraphSbtPluginFile()) { _ => - val buildCommand = - if (index.buildCommand.isEmpty) - List("sourcegraphScip") - else - index.buildCommand + val buildCommand = index.finalBuildCommand(List("sourcegraphScip")) val sourcegraphScip = index .process(List("sbt", "sourcegraphEnable") ++ buildCommand) + val inputDump = index .workingDirectory .resolve("target") .resolve("sbt-sourcegraph") .resolve("index.scip") + if (sourcegraphScip.exitCode == 0 && Files.isRegularFile(inputDump)) { val outputDump = index.workingDirectory.resolve(index.output) Files.copy(inputDump, outputDump, StandardCopyOption.REPLACE_EXISTING) From 2a61b0493fabe335a53461a4587f00e4ba3af046 Mon Sep 17 00:00:00 2001 From: Anton Sviridov Date: Mon, 25 Sep 2023 15:19:54 +0100 Subject: [PATCH 4/4] Drop SBT 0.13 tests --- .../src/test/scala/tests/SbtBuildToolSuite.scala | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala b/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala index 908b320b..2f97a72f 100644 --- a/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala +++ b/tests/buildTools/src/test/scala/tests/SbtBuildToolSuite.scala @@ -5,15 +5,7 @@ abstract class SbtBuildToolSuite(val sbtVersion: String) val scala2Versions = List("2.11.9", "2.12.18", "2.13.11") val scala3Versions = List("3.3.1") - val versions = - sbtVersion match { - case s"0.13.$any" => - scala2Versions - case s"1.$any" => - scala2Versions ++ scala3Versions - } - - versions.foreach { scalaVersion => + (scala2Versions ++ scala3Versions).foreach { scalaVersion => checkBuild( s"basic-sbt=$sbtVersion-scala=$scalaVersion", s"""|/build.sbt @@ -64,5 +56,3 @@ class Sbt_1_BuildToolSuite extends SbtBuildToolSuite("1.5.2") { targetRoot = Some("bla/target") ) } - -class Sbt_013_BuildToolSuite extends SbtBuildToolSuite("0.13.17")