11import sbtcrossproject .{crossProject , CrossType }
22
3- val Scala212 = " 2.12.12 "
3+ val Scala212 = " 2.12.13 "
44val Scala213 = " 2.13.5"
55
6- ThisBuild / crossScalaVersions := Seq (Scala213 , Scala212 , " 3.0.0-M2 " , " 3.0.0-M3 " )
6+ ThisBuild / crossScalaVersions := Seq (Scala213 , Scala212 , " 3.0.0-RC2 " )
77ThisBuild / scalaVersion := Scala213
88
99ThisBuild / githubWorkflowJavaVersions
:= Seq (
" [email protected] " )
1010
11- ThisBuild / githubWorkflowBuildMatrixAdditions += " platform" -> List (" jvm" , " js" )
11+ ThisBuild / githubWorkflowBuildMatrixAdditions += " platform" -> List (" jvm" , " js" , " native " )
1212
1313ThisBuild / githubWorkflowBuildMatrixExclusions ++=
1414 (ThisBuild / crossScalaVersions).value.filter(_.startsWith(" 3." )).map { dottyVersion =>
15- MatrixExclude (Map (" platform" -> " js " , " scala" -> dottyVersion))
15+ MatrixExclude (Map (" platform" -> " native " , " scala" -> dottyVersion))
1616 }
1717
1818val JvmCond = s " matrix.platform == 'jvm' "
1919val JsCond = s " matrix.platform == 'js' "
20+ val NativeCond = s " matrix.platform == 'native' "
2021
2122val Scala212Cond = s " matrix.scala == ' $Scala212' "
2223
2324ThisBuild / githubWorkflowBuild := Seq (
2425 WorkflowStep .Sbt (List (" js/checkCI" ), name = Some (" Validate JavaScript" ), cond = Some (JsCond )),
26+ WorkflowStep .Sbt (List (" native/checkCI" ), name = Some (" Validate Native" ), cond = Some (NativeCond )),
2527 WorkflowStep .Sbt (List (" jvm/checkCI" ),
2628 name = Some (" Validate JVM" ),
2729 cond = Some (JvmCond + " && " + s " matrix.scala != ' $Scala212' " )
@@ -35,7 +37,8 @@ ThisBuild / githubWorkflowBuild := Seq(
3537 name = Some (" Setup codecov" ),
3638 cond = Some (JvmCond + " && " + Scala212Cond )
3739 ),
38- WorkflowStep .Sbt (List (" coverage" , " jvm/checkCI" , " docs/mdoc" , " coverageReport" ),
40+ // Avoid coverage, see https://github.com/scoverage/sbt-scoverage/issues/319
41+ WorkflowStep .Sbt (List (/* "coverage",*/ " jvm/checkCI" , " docs/mdoc" /* , "coverageReport"*/ ),
3942 name = Some (" Validate JVM (scala 2)" ),
4043 cond = Some (JvmCond + " && " + Scala212Cond )
4144 ),
@@ -131,7 +134,12 @@ lazy val js = project
131134 .settings(noPublish)
132135 .aggregate(coreJS, catsJS)
133136
134- lazy val core = crossProject(JSPlatform , JVMPlatform )
137+ lazy val native = project
138+ .in(file(" .native" ))
139+ .settings(noPublish)
140+ .aggregate(coreNative, catsNative)
141+
142+ lazy val core = crossProject(JSPlatform , JVMPlatform , NativePlatform )
135143 .crossType(CrossType .Pure )
136144 .in(file(" core" ))
137145 .settings(
@@ -143,18 +151,20 @@ lazy val core = crossProject(JSPlatform, JVMPlatform)
143151 else previousArtifact(version.value, " core" )
144152 },
145153 libraryDependencies ++= Seq (
146- " org.scalatestplus" %%% " scalacheck-1-15" % " 3.2.3 .0" % Test ,
147- " org.scalatest" %%% " scalatest-funsuite" % " 3.2.3 " % Test
154+ " org.scalatestplus" %%% " scalacheck-1-15" % " 3.2.7 .0" % Test ,
155+ " org.scalatest" %%% " scalatest-funsuite" % " 3.2.7 " % Test
148156 )
149157 )
150158 .disablePlugins(JmhPlugin )
151159 .jsSettings(commonJsSettings)
152160 .jvmSettings(commonJvmSettings)
161+ .nativeSettings(commonNativeSettings)
153162
154163lazy val coreJVM = core.jvm
155164lazy val coreJS = core.js
165+ lazy val coreNative = core.native
156166
157- lazy val cats = crossProject(JSPlatform , JVMPlatform )
167+ lazy val cats = crossProject(JSPlatform , JVMPlatform , NativePlatform )
158168 .crossType(CrossType .Full )
159169 .in(file(" cats" ))
160170 .dependsOn(core % " compile->compile;test->test" )
@@ -163,9 +173,9 @@ lazy val cats = crossProject(JSPlatform, JVMPlatform)
163173 name := " paiges-cats" ,
164174 moduleName := " paiges-cats" ,
165175 libraryDependencies ++= Seq (
166- " org.typelevel" %%% " cats-core" % " 2.4.1 " ,
167- " org.typelevel" %%% " cats-laws" % " 2.4.1 " % Test ,
168- " org.typelevel" %%% " discipline-scalatest" % " 2.1.1 " % Test
176+ " org.typelevel" %%% " cats-core" % " 2.5.0 " ,
177+ " org.typelevel" %%% " cats-laws" % " 2.5.0 " % Test ,
178+ " org.typelevel" %%% " discipline-scalatest" % " 2.1.3 " % Test
169179 ),
170180 mimaPreviousArtifacts := {
171181 if (isDotty.value) Set .empty
@@ -175,9 +185,11 @@ lazy val cats = crossProject(JSPlatform, JVMPlatform)
175185 .disablePlugins(JmhPlugin )
176186 .jsSettings(commonJsSettings)
177187 .jvmSettings(commonJvmSettings)
188+ .nativeSettings(commonNativeSettings)
178189
179190lazy val catsJVM = cats.jvm
180191lazy val catsJS = cats.js
192+ lazy val catsNative = cats.native
181193
182194lazy val benchmark = project
183195 .in(file(" benchmark" ))
@@ -270,13 +282,17 @@ lazy val commonJvmSettings = Seq(
270282)
271283
272284lazy val commonJsSettings = Seq (
273- crossScalaVersions := crossScalaVersions.value.filter(_.startsWith(" 2." )),
274285 scalaJSStage in Global := FastOptStage ,
275286 parallelExecution := false ,
276287 jsEnv := new org.scalajs.jsenv.nodejs.NodeJSEnv (),
277288 coverageEnabled := false
278289)
279290
291+ lazy val commonNativeSettings = Seq (
292+ crossScalaVersions := crossScalaVersions.value.filter(_.startsWith(" 2." )),
293+ coverageEnabled := false
294+ )
295+
280296def previousArtifact (version : String , proj : String ) = {
281297 def mod (x : Int , y : Int , z : Int ): ModuleID =
282298 " org.typelevel" %% s " paiges- $proj" % s " $x. $y. $z"
0 commit comments