diff --git a/.github/workflows/manual-release.yml b/.github/workflows/release-expression-compiler.yml similarity index 97% rename from .github/workflows/manual-release.yml rename to .github/workflows/release-expression-compiler.yml index 24bf6a965..543f4e030 100644 --- a/.github/workflows/manual-release.yml +++ b/.github/workflows/release-expression-compiler.yml @@ -1,4 +1,4 @@ -name: Manual Release +name: Release Expression Compiler (manual) on: workflow_dispatch: inputs: diff --git a/.github/workflows/release.yml b/.github/workflows/release-full.yml similarity index 66% rename from .github/workflows/release.yml rename to .github/workflows/release-full.yml index f3a4656ee..8ce2a02fe 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release-full.yml @@ -1,8 +1,10 @@ -name: Release +name: Full Release (manual) on: workflow_dispatch: - push: - tags: ["*"] + inputs: + java-debug-version: + required: true + description: 'Go find next version at https://repo1.maven.org/maven2/ch/epfl/scala/com-microsoft-java-debug-core/' jobs: publish: runs-on: ubuntu-latest @@ -16,6 +18,7 @@ jobs: jvm: 'adopt:1.8.0-292' - run: sbt ci-release env: + JAVA_DEBUG_VERSION: ${{ inputs.java-debug-version }} PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} PGP_SECRET: ${{ secrets.PGP_SECRET }} SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} diff --git a/build.sbt b/build.sbt index 50bb411d0..44b945e1d 100644 --- a/build.sbt +++ b/build.sbt @@ -59,7 +59,7 @@ lazy val javaDebug = project "com.github.sbt" % "junit-interface" % "0.13.3" % Test ), Test / fork := true, - version := (if (isRelease) "0.34.0+12" else "0.34.0+12-SNAPSHOT") + version := Option(System.getenv("JAVA_DEBUG_VERSION")).getOrElse("0.34.0-SNAPSHOT") ) lazy val core212 = core.jvm(Dependencies.scala212) diff --git a/modules/core/src/main/scala/ch/epfl/scala/debugadapter/ScalaVersion.scala b/modules/core/src/main/scala/ch/epfl/scala/debugadapter/ScalaVersion.scala index de23708bf..a422b138a 100644 --- a/modules/core/src/main/scala/ch/epfl/scala/debugadapter/ScalaVersion.scala +++ b/modules/core/src/main/scala/ch/epfl/scala/debugadapter/ScalaVersion.scala @@ -11,6 +11,8 @@ case class ScalaVersion(value: String) { def binaryVersion: String = if (isScala3) "3" else if (isScala213) "2.13" else "2.12" + def isRelease: Boolean = !value.contains("-") + override def toString: String = value } diff --git a/modules/tests/src/test/scala/ch/epfl/scala/debugadapter/ScalaEvaluationTests.scala b/modules/tests/src/test/scala/ch/epfl/scala/debugadapter/ScalaEvaluationTests.scala index 0670872c8..537c55aa1 100644 --- a/modules/tests/src/test/scala/ch/epfl/scala/debugadapter/ScalaEvaluationTests.scala +++ b/modules/tests/src/test/scala/ch/epfl/scala/debugadapter/ScalaEvaluationTests.scala @@ -3,7 +3,47 @@ package ch.epfl.scala.debugadapter import ch.epfl.scala.debugadapter.testfmk.* class Scala212EvaluationTests extends Scala2EvaluationTests(ScalaVersion.`2.12`) -class Scala213EvaluationTests extends Scala2EvaluationTests(ScalaVersion.`2.13`) +class Scala213EvaluationTests extends Scala2EvaluationTests(ScalaVersion.`2.13`) { + if (ScalaVersion.`3.1+`.isRelease) { + test("should use tasty-reader") { + val scala2Source = + """|package example + | + |trait Msg + | + |object Sender { + | def send(msg: Msg): Unit = { + | println(msg) + | } + |} + |""".stripMargin + + val scala2Debugee = TestingDebuggee.mainClass(scala2Source, "example.Sender", scalaVersion) + val scala3Source = + """|package example + | + |case class Scala3Msg(msg: String) extends Msg: + | override def toString: String = msg + | + |object Main: + | def main(args: Array[String]): Unit = + | Sender.send(Scala3Msg("Hello")) + |""".stripMargin + + implicit val debuggee: TestingDebuggee = TestingDebuggee.mainClass( + scala3Source, + "example.Main", + ScalaVersion.`3.1+`, + Seq.empty, + Seq(scala2Debugee.mainModule) + ) + check( + Breakpoint(scala2Debugee.sourceFiles.head, 7), + Evaluation.success("msg.asInstanceOf[Scala3Msg].msg", "Hello") + ) + } + } +} class Scala30EvaluationTests extends Scala3EvaluationTests(ScalaVersion.`3.0`) class Scala31PlusEvaluationTests extends Scala3EvaluationTests(ScalaVersion.`3.1+`) @@ -1906,7 +1946,7 @@ abstract class ScalaEvaluationTests(scalaVersion: ScalaVersion) extends DebugTes } } -abstract class Scala2EvaluationTests(scalaVersion: ScalaVersion) extends ScalaEvaluationTests(scalaVersion) { +abstract class Scala2EvaluationTests(val scalaVersion: ScalaVersion) extends ScalaEvaluationTests(scalaVersion) { test("should use -Xsource:3") { val source = """|package example @@ -1931,44 +1971,6 @@ abstract class Scala2EvaluationTests(scalaVersion: ScalaVersion) extends ScalaEv Evaluation.success("""m(Seq("a", "b")*)""", "a, b") ) } - - test("should use tasty-reader") { - val scala2Source = - """|package example - | - |trait Msg - | - |object Sender { - | def send(msg: Msg): Unit = { - | println(msg) - | } - |} - |""".stripMargin - - val scala2Debugee = TestingDebuggee.mainClass(scala2Source, "example.Sender", scalaVersion) - val scala3Source = - """|package example - | - |case class Scala3Msg(msg: String) extends Msg: - | override def toString: String = msg - | - |object Main: - | def main(args: Array[String]): Unit = - | Sender.send(Scala3Msg("Hello")) - |""".stripMargin - - implicit val debuggee: TestingDebuggee = TestingDebuggee.mainClass( - scala3Source, - "example.Main", - ScalaVersion.`3.1+`, - Seq.empty, - Seq(scala2Debugee.mainModule) - ) - check( - Breakpoint(scala2Debugee.sourceFiles.head, 7), - Evaluation.success("msg.asInstanceOf[Scala3Msg].msg", "Hello") - ) - } } abstract class Scala3EvaluationTests(scalaVersion: ScalaVersion) extends ScalaEvaluationTests(scalaVersion) {