diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 44c5d35..db92e48 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,9 +23,8 @@ jobs: strategy: matrix: os: [ubuntu-latest] - scala: [2_13, 3_0] + scala: [all] java: [temurin@11] - scalaPlatform: [jvm] runs-on: ${{ matrix.os }} steps: - name: Checkout current branch (full) diff --git a/build.sbt b/build.sbt index 92faaa5..66e8620 100644 --- a/build.sbt +++ b/build.sbt @@ -16,8 +16,7 @@ val isScala3 = Def.setting { } val mainScalaVersion = Build.Scala213 -val jvmScalaVersions = Seq(Build.Scala213, Build.Scala3) -val jsScalaVersions = Seq(Build.Scala213, Build.Scala3) +val scalaCrossVersions = Seq(Build.Scala213, Build.Scala3) inThisBuild( List( @@ -65,15 +64,16 @@ lazy val core = projectMatrix Seq(file) }.taskValue, ) - .jvmPlatform(jvmScalaVersions) + .jvmPlatform(scalaCrossVersions) .jsPlatform( - jsScalaVersions, + scalaCrossVersions, settings = Seq( libraryDependencies ++= Seq( - "org.scala-js" %%% "scalajs-dom" % "2.8.1", // We need dom.intl.NumberFormat + "org.scala-js" %%% "scalajs-dom" % "2.8.1", ), ), ) + .nativePlatform(scalaCrossVersions) lazy val munit = projectMatrix .in(file("modules/munit")) @@ -85,8 +85,9 @@ lazy val munit = projectMatrix "org.scalameta" %%% "munit" % munitVersion, ), ) - .jvmPlatform(jvmScalaVersions) - .jsPlatform(jsScalaVersions) + .jvmPlatform(scalaCrossVersions) + .jsPlatform(scalaCrossVersions) + .nativePlatform(scalaCrossVersions) lazy val scalatest = projectMatrix .in(file("modules/scalatest")) @@ -98,7 +99,9 @@ lazy val scalatest = projectMatrix "org.scalatest" %%% "scalatest-core" % scalatestVersion, ), ) - .jvmPlatform(jvmScalaVersions) + .jvmPlatform(scalaCrossVersions) + .jsPlatform(scalaCrossVersions) + .nativePlatform(scalaCrossVersions) lazy val weaver = projectMatrix .in(file("modules/weaver")) @@ -110,8 +113,9 @@ lazy val weaver = projectMatrix "org.typelevel" %%% "weaver-core" % weaverVersion, ), ) - .jvmPlatform(jvmScalaVersions) - .jsPlatform(jsScalaVersions) + .jvmPlatform(scalaCrossVersions) + .jsPlatform(scalaCrossVersions) + .nativePlatform(scalaCrossVersions) lazy val cats = projectMatrix .in(file("modules/cats")) @@ -126,8 +130,9 @@ lazy val cats = projectMatrix "org.typelevel" %%% "cats-laws" % catsVersion, ).map(_ % Test), ) - .jvmPlatform(jvmScalaVersions) - .jsPlatform(jsScalaVersions) + .jvmPlatform(scalaCrossVersions) + .jsPlatform(scalaCrossVersions) + .nativePlatform(scalaCrossVersions) lazy val coretest = projectMatrix .in(file("modules/coretest")) @@ -144,8 +149,9 @@ lazy val coretest = projectMatrix "org.scalameta" %%% "munit-scalacheck" % munitScalacheckVersion, ).map(_ % Test), ) - .jvmPlatform(jvmScalaVersions) - .jsPlatform(jsScalaVersions) + .jvmPlatform(scalaCrossVersions) + .jsPlatform(scalaCrossVersions) + .nativePlatform(scalaCrossVersions) lazy val docs: ProjectMatrix = projectMatrix .dependsOn(core, coretest, cats, munit, scalatest, weaver) @@ -189,7 +195,7 @@ lazy val benchmarks = projectMatrix .enablePlugins(JmhPlugin) .settings(commonSettings) .settings(noPublishSettings) - .jvmPlatform(jvmScalaVersions) + .jvmPlatform(scalaCrossVersions) lazy val commonSettings = Seq( versionScheme := Some("early-semver"), @@ -241,9 +247,7 @@ ThisBuild / githubWorkflowPublish := Seq( ), ) -ThisBuild / githubWorkflowBuildMatrixAdditions += ("scalaPlatform", List("jvm")) - -ThisBuild / githubWorkflowScalaVersions := Seq("2_13", "3_0") +ThisBuild / githubWorkflowScalaVersions := Seq("all") ThisBuild / githubWorkflowBuildSbtStepPreamble := Seq.empty diff --git a/modules/core/src/main/scalanative/difflicious/DifferPlatform.scala b/modules/core/src/main/scalanative/difflicious/DifferPlatform.scala new file mode 100644 index 0000000..72c5421 --- /dev/null +++ b/modules/core/src/main/scalanative/difflicious/DifferPlatform.scala @@ -0,0 +1,11 @@ +package difflicious + +import difflicious.differ.NumericDiffer + +trait DifferPlatform { + implicit val doubleDiffer: NumericDiffer[Double] = + NumericDiffer.make[Double](_.toString) + + implicit val floatDiffer: NumericDiffer[Float] = + NumericDiffer.make[Float](_.toString) +} diff --git a/modules/core/src/main/scalanative/difflicious/DifferTimeInstances.scala b/modules/core/src/main/scalanative/difflicious/DifferTimeInstances.scala new file mode 100644 index 0000000..009475d --- /dev/null +++ b/modules/core/src/main/scalanative/difflicious/DifferTimeInstances.scala @@ -0,0 +1,4 @@ +package difflicious + +trait DifferTimeInstancesPlatform { +} diff --git a/project/plugins.sbt b/project/plugins.sbt index d0d83d2..1fe4c97 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -7,6 +7,7 @@ addSbtPlugin("com.github.sbt" % "sbt-github-actions" % "0.29.0") addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.9.0") // override mdoc version from microsite addSbtPlugin("com.eed3si9n" % "sbt-projectmatrix" % "0.11.0") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.21.0") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.11") // addSbtPlugin("com.47deg" % "sbt-microsites" % "1.4.4") // There are conflicts with scala-xml 1.0 vs 2.0 with microsites enabled