From 7d0a3f1f3ba4f2eefba18b90d1e853b4560a30c9 Mon Sep 17 00:00:00 2001 From: Anton Sviridov Date: Sat, 4 Oct 2025 11:29:28 +0100 Subject: [PATCH 1/5] Update SBT, Scala.js, Scala Native, and plugins --- build.sbt | 2 +- project/build.properties | 2 +- project/plugins.sbt | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build.sbt b/build.sbt index 114d51a0..b7292bac 100644 --- a/build.sbt +++ b/build.sbt @@ -5,7 +5,7 @@ lazy val munitVersion = "1.1.1" lazy val scalametaVersion = "4.9.9" lazy val defaultScala212 = "2.12.20" lazy val defaultScala213 = "2.13.16" -lazy val defaultScala3 = "3.3.0" +lazy val defaultScala3 = "3.3.6" lazy val bin212 = Seq( defaultScala212, diff --git a/project/build.properties b/project/build.properties index c8fcab54..5e6884d3 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.6.2 +sbt.version=1.11.6 diff --git a/project/plugins.sbt b/project/plugins.sbt index f7c4b4b7..e44ed774 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,10 +1,10 @@ -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.19.0") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.20.1") addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.2") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.7") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.8") addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % "1.3.2") -addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.9.3") +addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.11.2") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.4") From fb8c35c63dc07637ed0758f3f050fd41c6925b11 Mon Sep 17 00:00:00 2001 From: Anton Sviridov Date: Sun, 5 Oct 2025 11:15:48 +0100 Subject: [PATCH 2/5] Hack cross versions and allow unsafe scala upgrade --- build.sbt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index b7292bac..470c9d18 100644 --- a/build.sbt +++ b/build.sbt @@ -107,9 +107,12 @@ lazy val runtime = CrossProject( .withoutSuffixFor(JVMPlatform) .settings( name := "scalac-scoverage-runtime", - crossScalaVersions := Seq(defaultScala212, defaultScala213), + crossScalaVersions := bin212 ++ bin213, crossTarget := target.value / s"scala-${scalaVersion.value}", - sharedSettings + sharedSettings, + publish / skip := !List(defaultScala212, defaultScala213) + .contains(scalaVersion.value), + publishLocal / skip := (publish / skip).value ) .jvmSettings( Test / fork := true @@ -139,7 +142,8 @@ lazy val plugin = crossScalaVersions := bin212 ++ bin213, crossVersion := CrossVersion.full, libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value % Provided, - sharedSettings + sharedSettings, + allowUnsafeScalaLibUpgrade := true ) .settings( Test / unmanagedSourceDirectories += (Test / sourceDirectory).value / "scala-2.12+", From 1bbf83f24d44850e3e5eb98d224ccf8f2e2eba68 Mon Sep 17 00:00:00 2001 From: Tomasz Godzik Date: Fri, 17 Oct 2025 12:50:30 +0200 Subject: [PATCH 3/5] bugfix: Ignore SIP-51 in build.sbt --- build.sbt | 1 + 1 file changed, 1 insertion(+) diff --git a/build.sbt b/build.sbt index 470c9d18..0bdaf5f2 100644 --- a/build.sbt +++ b/build.sbt @@ -108,6 +108,7 @@ lazy val runtime = CrossProject( .settings( name := "scalac-scoverage-runtime", crossScalaVersions := bin212 ++ bin213, + allowUnsafeScalaLibUpgrade := true, crossTarget := target.value / s"scala-${scalaVersion.value}", sharedSettings, publish / skip := !List(defaultScala212, defaultScala213) From 91927cb3a5b26aee321c21838ed1971948a4ad2f Mon Sep 17 00:00:00 2001 From: Tomasz Godzik Date: Fri, 17 Oct 2025 13:49:06 +0200 Subject: [PATCH 4/5] chore: Further adjsutments to sbt build --- build.sbt | 27 +++++++++++++++---- .../scala/scoverage/ScoverageCompiler.scala | 2 +- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/build.sbt b/build.sbt index 0bdaf5f2..26797973 100644 --- a/build.sbt +++ b/build.sbt @@ -1,10 +1,10 @@ import sbtcrossproject.CrossProject import sbtcrossproject.CrossType -lazy val munitVersion = "1.1.1" +lazy val latestMunitVersion = "1.2.1" lazy val scalametaVersion = "4.9.9" -lazy val defaultScala212 = "2.12.20" -lazy val defaultScala213 = "2.13.16" +lazy val defaultScala212 = "2.12.16" +lazy val defaultScala213 = "2.13.11" lazy val defaultScala3 = "3.3.6" lazy val bin212 = Seq( @@ -78,7 +78,18 @@ lazy val sharedSettings = List( scalacOptions.value } }, - libraryDependencies += "org.scalameta" %%% "munit" % munitVersion % Test + libraryDependencies += { + val munitVersion = scalaVersion.value match { + case "2.13.11" => "1.0.0-M10" + case "2.13.12" => "1.0.0-M11" + case "2.13.13" => "1.0.0" + case "2.13.14" => "1.0.2" + case "2.13.15" => "1.0.4" + case "2.13.16" => "1.2.0" + case _ => latestMunitVersion + } + "org.scalameta" %%% "munit" % munitVersion % Test + } ) lazy val root = Project("scalac-scoverage", file(".")) @@ -144,6 +155,8 @@ lazy val plugin = crossVersion := CrossVersion.full, libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value % Provided, sharedSettings, + buildInfoPackage := "scoverage", + buildInfoKeys := Seq[BuildInfoKey](scalaVersion), allowUnsafeScalaLibUpgrade := true ) .settings( @@ -162,7 +175,11 @@ lazy val reporter = project .settings( name := "scalac-scoverage-reporter", - libraryDependencies += "org.scala-lang.modules" %% "scala-xml" % "2.3.0", + libraryDependencies += { + if (scalaVersion.value == "2.13.11" || scalaVersion.value == "2.13.12") + "org.scala-lang.modules" %% "scala-xml" % "2.2.0" + else "org.scala-lang.modules" %% "scala-xml" % "2.3.0" + }, sharedSettings, crossScalaVersions := Seq(defaultScala212, defaultScala213, defaultScala3) ) diff --git a/plugin/src/test/scala/scoverage/ScoverageCompiler.scala b/plugin/src/test/scala/scoverage/ScoverageCompiler.scala index 09b41e85..0f766474 100644 --- a/plugin/src/test/scala/scoverage/ScoverageCompiler.scala +++ b/plugin/src/test/scala/scoverage/ScoverageCompiler.scala @@ -16,7 +16,7 @@ import scoverage.reporter.IOUtils private[scoverage] object ScoverageCompiler { - val ScalaVersion: String = scala.util.Properties.versionNumberString + val ScalaVersion: String = BuildInfo.scalaVersion val ShortScalaVersion: String = (ScalaVersion split "[.]").toList match { case init :+ last if last forall (_.isDigit) => init mkString "." case _ => ScalaVersion From 5ae0c21911ee4f5d367ad59c40fbb74496fa7a45 Mon Sep 17 00:00:00 2001 From: Tomasz Godzik Date: Fri, 17 Oct 2025 14:12:52 +0200 Subject: [PATCH 5/5] chore: Drop versions before 2.13.16 --- .github/workflows/ci.yml | 2 -- build.sbt | 36 ++++++++++-------------------------- 2 files changed, 10 insertions(+), 28 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 55bd48aa..994e983c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,8 +23,6 @@ jobs: { version: '2.12.19' }, { version: '2.12.18' }, { version: '2.13.16' }, - { version: '2.13.15' }, - { version: '2.13.14' } ] steps: - name: checkout the repo diff --git a/build.sbt b/build.sbt index 26797973..37d36e9b 100644 --- a/build.sbt +++ b/build.sbt @@ -3,8 +3,8 @@ import sbtcrossproject.CrossType lazy val latestMunitVersion = "1.2.1" lazy val scalametaVersion = "4.9.9" -lazy val defaultScala212 = "2.12.16" -lazy val defaultScala213 = "2.13.11" +lazy val defaultScala212 = "2.12.20" +lazy val defaultScala213 = "2.13.16" lazy val defaultScala3 = "3.3.6" lazy val bin212 = Seq( @@ -16,12 +16,7 @@ lazy val bin212 = ) lazy val bin213 = Seq( - defaultScala213, - "2.13.15", - "2.13.14", - "2.13.13", - "2.13.12", - "2.13.11" + defaultScala213 ) inThisBuild( @@ -79,16 +74,11 @@ lazy val sharedSettings = List( } }, libraryDependencies += { - val munitVersion = scalaVersion.value match { - case "2.13.11" => "1.0.0-M10" - case "2.13.12" => "1.0.0-M11" - case "2.13.13" => "1.0.0" - case "2.13.14" => "1.0.2" - case "2.13.15" => "1.0.4" - case "2.13.16" => "1.2.0" - case _ => latestMunitVersion - } - "org.scalameta" %%% "munit" % munitVersion % Test + val munitVersion = scalaVersion.value match { + case "2.13.16" => "1.2.0" + case _ => latestMunitVersion + } + "org.scalameta" %%% "munit" % munitVersion % Test } ) @@ -119,7 +109,6 @@ lazy val runtime = CrossProject( .settings( name := "scalac-scoverage-runtime", crossScalaVersions := bin212 ++ bin213, - allowUnsafeScalaLibUpgrade := true, crossTarget := target.value / s"scala-${scalaVersion.value}", sharedSettings, publish / skip := !List(defaultScala212, defaultScala213) @@ -156,8 +145,7 @@ lazy val plugin = libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value % Provided, sharedSettings, buildInfoPackage := "scoverage", - buildInfoKeys := Seq[BuildInfoKey](scalaVersion), - allowUnsafeScalaLibUpgrade := true + buildInfoKeys := Seq[BuildInfoKey](scalaVersion) ) .settings( Test / unmanagedSourceDirectories += (Test / sourceDirectory).value / "scala-2.12+", @@ -175,11 +163,7 @@ lazy val reporter = project .settings( name := "scalac-scoverage-reporter", - libraryDependencies += { - if (scalaVersion.value == "2.13.11" || scalaVersion.value == "2.13.12") - "org.scala-lang.modules" %% "scala-xml" % "2.2.0" - else "org.scala-lang.modules" %% "scala-xml" % "2.3.0" - }, + libraryDependencies += "org.scala-lang.modules" %% "scala-xml" % "2.3.0", sharedSettings, crossScalaVersions := Seq(defaultScala212, defaultScala213, defaultScala3) )