diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5d76a123..3e9487f9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,13 +6,26 @@ on: - main pull_request: jobs: + compile: + name: Compile + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + submodules: true + - uses: olafurpg/setup-scala@v12 + with: + java-version: "adopt@1.8" + - run: sbt +test:compile # ensuring metabrowse compiles for all Scala versions + unit: name: Tests runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - scala: [2.12.10] + scala: [2.12.15, 2.13.6] os: [ubuntu-latest] java: [11, 8] steps: diff --git a/.github/workflows/launchers.yml b/.github/workflows/launchers.yml index 1bc9e321..6c7d59a8 100644 --- a/.github/workflows/launchers.yml +++ b/.github/workflows/launchers.yml @@ -2,8 +2,7 @@ name: Launchers on: push: branches: - - main - - server-bin + - master pull_request: jobs: generate-launchers: @@ -19,6 +18,7 @@ jobs: - 2.12.12 - 2.12.13 - 2.12.14 + - 2.12.15 - 2.13.1 - 2.13.2 - 2.13.3 diff --git a/build.sbt b/build.sbt index 456ee390..c9ce63a4 100644 --- a/build.sbt +++ b/build.sbt @@ -6,9 +6,11 @@ import scalajsbundler.util.JSON._ import sbtcrossproject.{crossProject, CrossType} lazy val Version = new { - def scala213 = "2.13.6" - def scala212 = "2.12.14" - def scalameta = "4.4.24" + val scala213Versions = (0 to 6).map(p => s"2.13.$p") + val scala212Versions = (8 to 15).map(p => s"2.12.$p") + def scala213 = scala213Versions.last + def scala212 = scala212Versions.last + def scalameta = "4.4.33" def extraScala = Seq("2.13.5", "2.13.4", "2.12.13", "2.12.12") } @@ -56,6 +58,11 @@ inThisBuild( (publish / skip) := true crossScalaVersions := Nil +lazy val fullCrossVersionSettings = Def.settings( + crossVersion := CrossVersion.full, + crossScalaVersions := Version.scala213Versions ++ Version.scala212Versions +) + def addPaigesLikeSourceDirs(config: Configuration, srcName: String) = Def.settings( config / unmanagedSourceDirectories ++= { @@ -157,6 +164,7 @@ lazy val server = project .in(file("metabrowse-server")) .settings( moduleName := "metabrowse-server", + fullCrossVersionSettings, resolvers += Resolver.sonatypeRepo("releases"), resolvers += Resolver.sonatypeRepo("snapshots"), libraryDependencies ++= { @@ -167,7 +175,7 @@ lazy val server = project "org.slf4j" % "slf4j-api" % "1.8.0-beta4", if (needsPatchedWildfly) xnio.exclude("org.wildfly.common", "wildfly-common") else xnio, "org.scalameta" % "semanticdb-scalac-core" % Version.scalameta cross CrossVersion.full, - ("org.scalameta" %% "mtags" % "0.10.5").cross(CrossVersion.full) + ("org.scalameta" %% "mtags" % "0.10.9").cross(CrossVersion.full) ) }, maybeAddPatchedWildfly, @@ -178,7 +186,8 @@ lazy val server = project import java.util.zip._ import scala.collection.JavaConverters._ val base = (Compile / packageBin).value - val updated = base.getParentFile / s"${base.getName.stripSuffix(".jar")}-with-resources.jar" + val updated = + base.getParentFile / s"${base.getName.stripSuffix(".jar")}-with-resources.jar" val fos = new FileOutputStream(updated) val zos = new ZipOutputStream(fos) @@ -345,6 +354,7 @@ lazy val cli = project .in(file("metabrowse-cli")) .settings( moduleName := "metabrowse-cli", + fullCrossVersionSettings, (assembly / mainClass) := Some("metabrowse.cli.MetabrowseCli"), (assembly / assemblyJarName) := "metabrowse.jar", scalacOptions ++= { @@ -356,7 +366,7 @@ lazy val cli = project } }, libraryDependencies ++= List( - "com.thesamet.scalapb" %% "scalapb-json4s" % "0.11.1", + "com.thesamet.scalapb" %% "scalapb-json4s" % "0.12.0", "com.github.alexarchambault" %% "case-app" % "2.0.0-M9", "com.github.pathikrit" %% "better-files" % "3.9.1" ), @@ -489,6 +499,7 @@ lazy val tests = project .in(file("metabrowse-tests")) .configs(IntegrationTest) .settings( + fullCrossVersionSettings, (publish / skip) := true, Defaults.itSettings, run / baseDirectory := (ThisBuild / baseDirectory).value, diff --git a/metabrowse-tests/src/test/scala/metabrowse/tests/MetabrowseCliSuite.scala b/metabrowse-tests/src/test/scala/metabrowse/tests/MetabrowseCliSuite.scala index b6d1e525..2ada954c 100644 --- a/metabrowse-tests/src/test/scala/metabrowse/tests/MetabrowseCliSuite.scala +++ b/metabrowse-tests/src/test/scala/metabrowse/tests/MetabrowseCliSuite.scala @@ -51,12 +51,18 @@ class MetabrowseCliSuite extends BaseMetabrowseCliSuite { } .sorted .mkString("\n") - val extra = + val extraLazyListStuff = if (is212) """org/typelevel/paiges/ScalaVersionCompat.LazyList# |org/typelevel/paiges/ScalaVersionCompat.LazyList. |""".stripMargin else "" + val extraPi213Stuff = + if (is212) "" + else + """org/typelevel/paiges/ColorTest#TwoPi. + |org/typelevel/paiges/ColorTest#TwoThirdsPi. + |""".stripMargin val expected = s"""|org/typelevel/paiges/Chunk. |org/typelevel/paiges/Chunk.best(). @@ -66,7 +72,7 @@ class MetabrowseCliSuite extends BaseMetabrowseCliSuite { |org/typelevel/paiges/Chunk.makeIndentStr(). |org/typelevel/paiges/ColorTest# |org/typelevel/paiges/ColorTest#Quote. - |org/typelevel/paiges/ColorTest#``(). + |${extraPi213Stuff}org/typelevel/paiges/ColorTest#``(). |org/typelevel/paiges/ColorTest#bg(). |org/typelevel/paiges/ColorTest#fg(). |org/typelevel/paiges/ColorTest#fromAngle(). @@ -317,7 +323,7 @@ class MetabrowseCliSuite extends BaseMetabrowseCliSuite { |org/typelevel/paiges/PaigesTest.slowRenderTrim(). |org/typelevel/paiges/PaigesTest.twoRightAssociated(). |org/typelevel/paiges/ScalaVersionCompat. - |${extra}org/typelevel/paiges/ScalaVersionCompat.lazyListFromIterator(). + |${extraLazyListStuff}org/typelevel/paiges/ScalaVersionCompat.lazyListFromIterator(). |org/typelevel/paiges/Style# |org/typelevel/paiges/Style#`++`(). |org/typelevel/paiges/Style#``(). diff --git a/native/build.sc b/native/build.sc index e99be303..2d4b7f30 100644 --- a/native/build.sc +++ b/native/build.sc @@ -11,7 +11,7 @@ import mill._ import scala.util.Properties -def scala212Versions = (8 to 14).map("2.12." + _) +def scala212Versions = (8 to 15).map("2.12." + _) def scala213Versions = (1 to 6).map("2.13." + _) def scalaVersions = scala212Versions ++ scala213Versions diff --git a/project/plugins.sbt b/project/plugins.sbt index 20b0f82d..46710e1f 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,8 +1,8 @@ addSbtPlugin("ch.epfl.scala" % "sbt-scalajs-bundler" % "0.20.0") addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.9") addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.10.0") -addSbtPlugin("com.thesamet" % "sbt-protoc" % "1.0.4") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.5.1") +addSbtPlugin("com.thesamet" % "sbt-protoc" % "1.0.5") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.7.0") addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.1.0") addSbtPlugin("com.geirsson" % "sbt-ci-release" % "1.5.3")