@@ -42,6 +42,10 @@ lazy val root = project
4242 coreJVM,
4343 coreJS,
4444 // coreNative,
45+ kyoJVM,
46+ kyoJS,
47+ kyoBatchJVM,
48+ kyoBatchJS,
4549 zqueryJVM,
4650 zqueryJS,
4751 fetchJVM,
@@ -77,8 +81,14 @@ lazy val core = crossProject(JSPlatform, JVMPlatform)
7781 )
7882 )
7983
80- lazy val coreJVM = core.jvm
81- lazy val coreJS = core.js
84+ lazy val coreJVM = core.jvm.settings(
85+ crossScalaVersions := Seq (V .scala213, V .scala3LTS),
86+ scalaVersion := V .scala213
87+ )
88+ lazy val coreJS = core.js.settings(
89+ crossScalaVersions := Seq (V .scala213, V .scala3LTS),
90+ scalaVersion := V .scala213
91+ )
8292
8393// /////////////////////// Haxl based datatypes
8494
@@ -105,8 +115,14 @@ lazy val zquery = crossProject(JSPlatform, JVMPlatform)
105115 )
106116 .dependsOn(core)
107117
108- lazy val zqueryJVM = zquery.jvm
109- lazy val zqueryJS = zquery.js
118+ lazy val zqueryJVM = zquery.jvm.settings(
119+ crossScalaVersions := Seq (V .scala213, V .scala3LTS),
120+ scalaVersion := V .scala213
121+ )
122+ lazy val zqueryJS = zquery.js.settings(
123+ crossScalaVersions := Seq (V .scala213, V .scala3LTS),
124+ scalaVersion := V .scala213
125+ )
110126
111127lazy val fetch = crossProject(JSPlatform , JVMPlatform )
112128 .crossType(CrossType .Pure )
@@ -129,8 +145,40 @@ lazy val fetch = crossProject(JSPlatform, JVMPlatform)
129145 )
130146 .dependsOn(cats)
131147
132- lazy val fetchJVM = fetch.jvm.settings(crossScalaVersions := V .scalaAll)
133- lazy val fetchJS = fetch.js.settings(crossScalaVersions := List (V .scala213))
148+ lazy val fetchJVM = fetch.jvm.settings(
149+ crossScalaVersions := Seq (V .scala213, V .scala3LTS),
150+ scalaVersion := V .scala213
151+ )
152+ lazy val fetchJS = fetch.js.settings(
153+ crossScalaVersions := Seq (V .scala213),
154+ scalaVersion := V .scala213
155+ )
156+
157+ lazy val kyoBatch = crossProject(JSPlatform , JVMPlatform )
158+ .crossType(CrossType .Pure )
159+ .withoutSuffixFor(JVMPlatform )
160+ .in(file(" kyo-batch" ))
161+ .enablePlugins(BuildInfoPlugin )
162+ .settings(name := " decrel-kyo-batch" )
163+ .settings(commonSettings)
164+ .settings(
165+ buildInfoKeys := Seq [BuildInfoKey ](
166+ " scalaPartialVersion" -> CrossVersion .partialVersion(scalaVersion.value)
167+ ),
168+ buildInfoPackage := " decrel.kyo.batch" ,
169+ buildInfoObject := " BuildInfo"
170+ )
171+ .settings(
172+ libraryDependencies ++= Seq (
173+ " io.getkyo" %%% " kyo-prelude" % V .kyo
174+ )
175+ )
176+ .dependsOn(kyo)
177+
178+ lazy val kyoBatchJVM =
179+ kyoBatch.jvm.settings(crossScalaVersions := List (V .scala3Next), scalaVersion := V .scala3Next)
180+ lazy val kyoBatchJS =
181+ kyoBatch.js.settings(crossScalaVersions := List (V .scala3Next), scalaVersion := V .scala3Next)
134182
135183// /////////////////////// Generator datatypes
136184
@@ -156,8 +204,14 @@ lazy val ziotest = crossProject(JSPlatform, JVMPlatform)
156204 )
157205 .dependsOn(core)
158206
159- lazy val ziotestJVM = ziotest.jvm
160- lazy val ziotestJS = ziotest.js
207+ lazy val ziotestJVM = ziotest.jvm.settings(
208+ crossScalaVersions := Seq (V .scala213, V .scala3LTS),
209+ scalaVersion := V .scala213
210+ )
211+ lazy val ziotestJS = ziotest.js.settings(
212+ crossScalaVersions := Seq (V .scala213, V .scala3LTS),
213+ scalaVersion := V .scala213
214+ )
161215
162216lazy val scalacheck = crossProject(JSPlatform , JVMPlatform )
163217 .withoutSuffixFor(JVMPlatform )
@@ -180,8 +234,14 @@ lazy val scalacheck = crossProject(JSPlatform, JVMPlatform)
180234 )
181235 .dependsOn(core)
182236
183- lazy val scalacheckJVM = scalacheck.jvm
184- lazy val scalacheckJS = scalacheck.js
237+ lazy val scalacheckJVM = scalacheck.jvm.settings(
238+ crossScalaVersions := Seq (V .scala213, V .scala3LTS),
239+ scalaVersion := V .scala213
240+ )
241+ lazy val scalacheckJS = scalacheck.js.settings(
242+ crossScalaVersions := Seq (V .scala213, V .scala3LTS),
243+ scalaVersion := V .scala213
244+ )
185245
186246// /////////////////////// General purpose datatypes
187247
@@ -206,8 +266,44 @@ lazy val cats = crossProject(JSPlatform, JVMPlatform)
206266 )
207267 .dependsOn(core)
208268
209- lazy val catsJVM = cats.jvm
210- lazy val catsJS = cats.js
269+ lazy val catsJVM = cats.jvm.settings(
270+ crossScalaVersions := Seq (V .scala213, V .scala3LTS),
271+ scalaVersion := V .scala213
272+ )
273+ lazy val catsJS = cats.js.settings(
274+ crossScalaVersions := Seq (V .scala213, V .scala3LTS),
275+ scalaVersion := V .scala213
276+ )
277+
278+ lazy val kyo = crossProject(JSPlatform , JVMPlatform )
279+ .withoutSuffixFor(JVMPlatform )
280+ .crossType(CrossType .Pure )
281+ .in(file(" kyo" ))
282+ .enablePlugins(BuildInfoPlugin )
283+ .settings(name := " decrel-kyo" )
284+ .settings(commonSettings)
285+ .settings(
286+ buildInfoKeys := Seq [BuildInfoKey ](
287+ " scalaPartialVersion" -> CrossVersion .partialVersion(scalaVersion.value)
288+ ),
289+ buildInfoPackage := " decrel.kyo" ,
290+ buildInfoObject := " BuildInfo"
291+ )
292+ .settings(
293+ libraryDependencies ++= Seq (
294+ " io.getkyo" %%% " kyo-prelude" % V .kyo
295+ )
296+ )
297+ .dependsOn(core)
298+
299+ lazy val kyoJVM = kyo.jvm.settings(
300+ scalaVersion := V .scala3Next,
301+ crossScalaVersions := Seq (V .scala3Next)
302+ )
303+ lazy val kyoJS = kyo.js.settings(
304+ scalaVersion := V .scala3Next,
305+ crossScalaVersions := Seq (V .scala3Next)
306+ )
211307
212308// /////////////////////// docs
213309
@@ -251,8 +347,8 @@ lazy val commonSettings = Def.settings(
251347 " -language:existentials" ,
252348 " -unchecked" ,
253349 " -Xfatal-warnings"
254- ) ++ (CrossVersion .partialVersion( scalaVersion.value) match {
255- case Some (( 2 , 13 )) =>
350+ ) ++ (scalaVersion.value match {
351+ case V .scala213 =>
256352 Seq (
257353 " -Xsource:3" ,
258354 " -Xlint:-byname-implicit" ,
@@ -261,12 +357,16 @@ lazy val commonSettings = Def.settings(
261357 " -Vtype-diffs" ,
262358 " -P:kind-projector:underscore-placeholders"
263359 )
264- case Some (( 3 , _)) =>
360+ case V .scala3LTS =>
265361 Seq (
266362 " -no-indent" ,
267363 " -Ykind-projector"
268364 )
269- case _ => Nil
365+ case V .scala3Next =>
366+ Seq (
367+ " -no-indent" ,
368+ " -Xkind-projector"
369+ )
270370 }),
271371 Test / fork := false ,
272372 run / fork := true ,
@@ -279,11 +379,13 @@ lazy val commonSettings = Def.settings(
279379)
280380
281381lazy val V = new {
282- val scala213 = " 2.13.16"
283- val scala3 = " 3.3.6"
284- val scalaAll = scala213 :: scala3 :: Nil
382+ val scala213 = " 2.13.16"
383+ val scala3LTS = " 3.3.6"
384+ val scala3Next = " 3.7.1"
385+ val scalaAll = scala213 :: scala3LTS :: scala3Next :: Nil
285386
286387 val cats = " 2.13.0"
388+ val kyo = " 0.19.0"
287389 val zio = " 2.1.19"
288390 val zioQuery = " 0.7.7"
289391 val fetch = " 3.1.2"
@@ -294,7 +396,7 @@ lazy val V = new {
294396
295397lazy val ciSettings = List (
296398 githubWorkflowPublishTargetBranches := List (RefPredicate .Equals (Ref .Branch (" master" ))),
297- githubWorkflowJavaVersions := Seq (JavaSpec .temurin( " 11 " )),
399+ githubWorkflowJavaVersions := Seq (JavaSpec .zulu( " 17 " )),
298400 githubWorkflowUseSbtThinClient := false ,
299401 githubWorkflowBuild := Seq (WorkflowStep .Sbt (List (" ++${{ matrix.scala }} test" ))),
300402 githubWorkflowPublishTargetBranches += RefPredicate .StartsWith (Ref .Tag (" v" )),
@@ -311,7 +413,8 @@ lazy val ciSettings = List(
311413 )
312414 ),
313415 githubWorkflowGeneratedUploadSteps := {
314- val skipCache = List (" fetch/.js" , " jsdocs" , " mdoc" )
416+ val skipCache =
417+ List (" fetch/.js" , " jsdocs" , " mdoc" , " kyo/.js" , " kyo/.jvm" , " kyo-batch/.js" , " kyo-batch/.jvm" )
315418
316419 githubWorkflowGeneratedUploadSteps.value match {
317420 case (run : WorkflowStep .Run ) :: t if run.commands.head.startsWith(" tar cf" ) =>
@@ -325,5 +428,5 @@ lazy val ciSettings = List(
325428 ) :: t
326429 case l => l
327430 }
328- },
431+ }
329432)
0 commit comments