From 6a9b24bb4f80623335bf8cb134073bfa48db3fc6 Mon Sep 17 00:00:00 2001 From: Michal Pawlik Date: Mon, 1 Sep 2025 17:07:30 +0200 Subject: [PATCH 01/11] Update libs for Scala Native 0.5.x --- build.sbt | 26 +++++++++++++------------- project/plugins.sbt | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/build.sbt b/build.sbt index 644b8663..6823ab15 100644 --- a/build.sbt +++ b/build.sbt @@ -21,16 +21,16 @@ import xerial.sbt.Sonatype.sonatypeCentralHost val scala212 = "2.12.20" val scala213 = "2.13.16" val scala3 = "3.3.6" -val fs2Version = "3.12.0" -val circeVersion = "0.14.8" +val fs2Version = "3.13.0-M6" +val circeVersion = "0.14.14" val circeExtrasVersion = "0.14.2" val playVersion = "3.0.5" -val shapeless2Version = "2.3.11" -val shapeless3Version = "3.4.1" +val shapeless2Version = "2.3.13" +val shapeless3Version = "3.5.0" val scalaJavaTimeVersion = "2.6.0" val diffsonVersion = "4.6.0" -val literallyVersion = "1.1.0" -val weaverVersion = "0.8.4" +val literallyVersion = "1.2.0" +val weaverVersion = "0.10-c027a6c-SNAPSHOT" ThisBuild / tlBaseVersion := "1.12" @@ -54,14 +54,14 @@ val commonSettings = List( versionScheme := Some("early-semver"), libraryDependencies ++= List( "co.fs2" %%% "fs2-core" % fs2Version, - "org.scala-lang.modules" %%% "scala-collection-compat" % "2.11.0", + "org.scala-lang.modules" %%% "scala-collection-compat" % "2.13.0", "io.circe" %%% "circe-parser" % circeVersion % "test", "io.circe" %%% "circe-jawn" % circeVersion % "test", "io.circe" %%% "circe-generic" % circeVersion % "test", "co.fs2" %%% "fs2-io" % fs2Version % "test", - "com.disneystreaming" %%% "weaver-cats" % weaverVersion % "test", - "com.disneystreaming" %%% "weaver-scalacheck" % weaverVersion % Test, - "com.eed3si9n.expecty" %%% "expecty" % "0.16.0" % "test", + "org.typelevel" %%% "weaver-cats" % weaverVersion % "test", + "org.typelevel" %%% "weaver-scalacheck" % weaverVersion % Test, + "com.eed3si9n.expecty" %%% "expecty" % "0.17.0" % "test", "org.portable-scala" %%% "portable-scala-reflect" % "1.1.3" cross CrossVersion.for3Use2_13 ) ++ PartialFunction .condOpt(CrossVersion.partialVersion(scalaVersion.value)) { case Some((2, _)) => @@ -126,7 +126,7 @@ lazy val text = crossProject(JVMPlatform, JSPlatform, NativePlatform) name := "fs2-data-text", description := "Utilities for textual data format", libraryDependencies ++= List( - "org.typelevel" %%% "cats-collections-core" % "0.9.8" + "org.typelevel" %%% "cats-collections-core" % "0.9.10" ), mimaBinaryIssueFilters ++= List( // private class @@ -278,7 +278,7 @@ lazy val json = crossProject(JVMPlatform, JSPlatform, NativePlatform) description := "Streaming JSON manipulation library", libraryDependencies ++= List( "org.typelevel" %%% "literally" % literallyVersion, - "org.typelevel" %%% "cats-parse" % "1.0.0" + "org.typelevel" %%% "cats-parse" % "1.1.0" ) ++ PartialFunction .condOpt(CrossVersion.partialVersion(scalaVersion.value)) { case Some((2, _)) => "org.scala-lang" % "scala-reflect" % scalaVersion.value @@ -436,7 +436,7 @@ lazy val scalaXml = crossProject(JVMPlatform, JSPlatform, NativePlatform) .settings( name := "fs2-data-xml-scala", description := "Support for Scala XML ASTs", - libraryDependencies += "org.scala-lang.modules" %%% "scala-xml" % "2.2.0", + libraryDependencies += "org.scala-lang.modules" %%% "scala-xml" % "2.4.0", tlVersionIntroduced := Map("3" -> "1.4.0", "2.13" -> "1.4.0", "2.12" -> "1.4.0"), mimaBinaryIssueFilters ++= List( // Changed from implicit object to implicit val, seems impossible to stub. Second is Scala 3 only diff --git a/project/plugins.sbt b/project/plugins.sbt index 7ebeda30..dcb021d6 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -6,7 +6,7 @@ addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.7") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.19.0") addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.2") -addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.17") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.5.8") addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % "1.3.2") addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.3.1") From 3fe4c6bc83c76a83a13d21006f65b733d941dfbd Mon Sep 17 00:00:00 2001 From: Michal Pawlik Date: Tue, 2 Sep 2025 09:18:40 +0200 Subject: [PATCH 02/11] confirm local build with snapshot diffson and disabled exampleJq --- build.sbt | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/build.sbt b/build.sbt index 6823ab15..d85c6bfd 100644 --- a/build.sbt +++ b/build.sbt @@ -28,7 +28,7 @@ val playVersion = "3.0.5" val shapeless2Version = "2.3.13" val shapeless3Version = "3.5.0" val scalaJavaTimeVersion = "2.6.0" -val diffsonVersion = "4.6.0" +val diffsonVersion = "4.6-f7ab2a1-20250902T065807Z-SNAPSHOT" val literallyVersion = "1.2.0" val weaverVersion = "0.10-c027a6c-SNAPSHOT" @@ -534,7 +534,9 @@ lazy val benchmarks = crossProject(JVMPlatform) ) .dependsOn(csv, scalaXml, jsonCirce, msgpack) -lazy val exampleJq = crossProject(JVMPlatform, NativePlatform, JSPlatform) +// NOTE: cross build disabled for NativePlatform due to decline-effect missing on native +// lazy val exampleJq = crossProject(JVMPlatform, NativePlatform, JSPlatform) +lazy val exampleJq = crossProject(JVMPlatform, JSPlatform) .crossType(CrossType.Pure) .in(file("examples/jqlike")) .enablePlugins(NoPublishPlugin) @@ -543,18 +545,18 @@ lazy val exampleJq = crossProject(JVMPlatform, NativePlatform, JSPlatform) name := "jq-like", libraryDependencies ++= List( "co.fs2" %%% "fs2-io" % fs2Version, - "com.monovore" %%% "decline-effect" % "2.4.1" + "com.monovore" %%% "decline-effect" % "2.5.0" ) ) .jvmSettings( assembly / mainClass := Some("fs2.data.example.jqlike.JqLike"), assembly / assemblyJarName := "jq-like.jar" ) - .nativeSettings(nativeConfig ~= { - _.withLTO(LTO.thin) - .withMode(Mode.releaseFast) - .withGC(GC.immix) - }) + // .nativeSettings(nativeConfig ~= { + // _.withLTO(LTO.thin) + // .withMode(Mode.releaseFast) + // .withGC(GC.immix) + // }) .jsSettings( scalaJSUseMainModuleInitializer := true, scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.CommonJSModule)) From 525f535bf2e326d109b2b48818be5039761de032 Mon Sep 17 00:00:00 2001 From: Michal Pawlik Date: Tue, 2 Sep 2025 16:53:17 +0200 Subject: [PATCH 03/11] update weaver-test to published version --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index d85c6bfd..b8776e7c 100644 --- a/build.sbt +++ b/build.sbt @@ -30,7 +30,7 @@ val shapeless3Version = "3.5.0" val scalaJavaTimeVersion = "2.6.0" val diffsonVersion = "4.6-f7ab2a1-20250902T065807Z-SNAPSHOT" val literallyVersion = "1.2.0" -val weaverVersion = "0.10-c027a6c-SNAPSHOT" +val weaverVersion = "0.11-b0644b4-SNAPSHOT" ThisBuild / tlBaseVersion := "1.12" From 956770567340e205b4d24205c97cb7836f95b9ca Mon Sep 17 00:00:00 2001 From: Michal Pawlik Date: Wed, 17 Sep 2025 17:53:49 +0200 Subject: [PATCH 04/11] update diffson --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b8776e7c..920f732e 100644 --- a/build.sbt +++ b/build.sbt @@ -28,7 +28,7 @@ val playVersion = "3.0.5" val shapeless2Version = "2.3.13" val shapeless3Version = "3.5.0" val scalaJavaTimeVersion = "2.6.0" -val diffsonVersion = "4.6-f7ab2a1-20250902T065807Z-SNAPSHOT" +val diffsonVersion = "5.0-8cf53fd-SNAPSHOT" val literallyVersion = "1.2.0" val weaverVersion = "0.11-b0644b4-SNAPSHOT" From 86ca3c700ead7dc38cec63cc035d321c2ca67c8f Mon Sep 17 00:00:00 2001 From: Michal Pawlik Date: Wed, 17 Sep 2025 18:13:00 +0200 Subject: [PATCH 05/11] add snapshots resolver --- build.sbt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.sbt b/build.sbt index 920f732e..ab3b9acf 100644 --- a/build.sbt +++ b/build.sbt @@ -50,6 +50,8 @@ ThisBuild / tlJdkRelease := Some(11) ThisBuild / sonatypeCredentialHost := sonatypeCentralHost ThisBuild / githubWorkflowJavaVersions := Seq(JavaSpec.temurin("11")) +ThisBuild / resolvers += Resolver.sonatypeCentralSnapshots + val commonSettings = List( versionScheme := Some("early-semver"), libraryDependencies ++= List( From 4a3979460dbbf625489fbe361b9cb1fe3cadd4cc Mon Sep 17 00:00:00 2001 From: Michal Pawlik Date: Wed, 17 Sep 2025 18:18:22 +0200 Subject: [PATCH 06/11] regenerate workflows --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d1c3688a..aab97a81 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -274,7 +274,7 @@ jobs: - name: Submit Dependencies uses: scalacenter/sbt-dependency-submission@v2 with: - modules-ignore: rootjs_2.12 rootjs_2.13 rootjs_3 fs2-data-msgpack_2.12 fs2-data-msgpack_2.13 fs2-data-msgpack_3 site_2.12 site_2.13 site_3 jq-like_2.12 jq-like_2.13 jq-like_3 benchmarks_2.12 benchmarks_2.13 benchmarks_3 fs2-data-msgpack_native0.4_2.12 fs2-data-msgpack_native0.4_2.13 fs2-data-msgpack_native0.4_3 rootjvm_2.12 rootjvm_2.13 rootjvm_3 rootnative_2.12 rootnative_2.13 rootnative_3 jq-like_sjs1_2.12 jq-like_sjs1_2.13 jq-like_sjs1_3 fs2-data-msgpack_sjs1_2.12 fs2-data-msgpack_sjs1_2.13 fs2-data-msgpack_sjs1_3 jq-like_native0.4_2.12 jq-like_native0.4_2.13 jq-like_native0.4_3 + modules-ignore: rootjs_2.12 rootjs_2.13 rootjs_3 fs2-data-msgpack_2.12 fs2-data-msgpack_2.13 fs2-data-msgpack_3 site_2.12 site_2.13 site_3 jq-like_2.12 jq-like_2.13 jq-like_3 benchmarks_2.12 benchmarks_2.13 benchmarks_3 fs2-data-msgpack_native0.5_2.12 fs2-data-msgpack_native0.5_2.13 fs2-data-msgpack_native0.5_3 rootjvm_2.12 rootjvm_2.13 rootjvm_3 rootnative_2.12 rootnative_2.13 rootnative_3 jq-like_sjs1_2.12 jq-like_sjs1_2.13 jq-like_sjs1_3 fs2-data-msgpack_sjs1_2.12 fs2-data-msgpack_sjs1_2.13 fs2-data-msgpack_sjs1_3 configs-ignore: test scala-tool scala-doc-tool test-internal validate-steward: From c677a84456251a60ff5fb8d795012a4fdc15b5b2 Mon Sep 17 00:00:00 2001 From: Michal Pawlik Date: Wed, 17 Sep 2025 18:23:17 +0200 Subject: [PATCH 07/11] update fs2, update sbt comment on exampleJq --- build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index ab3b9acf..f3d5c028 100644 --- a/build.sbt +++ b/build.sbt @@ -21,7 +21,7 @@ import xerial.sbt.Sonatype.sonatypeCentralHost val scala212 = "2.12.20" val scala213 = "2.13.16" val scala3 = "3.3.6" -val fs2Version = "3.13.0-M6" +val fs2Version = "3.13.0-M7" val circeVersion = "0.14.14" val circeExtrasVersion = "0.14.2" val playVersion = "3.0.5" @@ -537,7 +537,6 @@ lazy val benchmarks = crossProject(JVMPlatform) .dependsOn(csv, scalaXml, jsonCirce, msgpack) // NOTE: cross build disabled for NativePlatform due to decline-effect missing on native -// lazy val exampleJq = crossProject(JVMPlatform, NativePlatform, JSPlatform) lazy val exampleJq = crossProject(JVMPlatform, JSPlatform) .crossType(CrossType.Pure) .in(file("examples/jqlike")) @@ -554,6 +553,7 @@ lazy val exampleJq = crossProject(JVMPlatform, JSPlatform) assembly / mainClass := Some("fs2.data.example.jqlike.JqLike"), assembly / assemblyJarName := "jq-like.jar" ) + // Uncomment when decline-effect is available for SN 0.5.x // .nativeSettings(nativeConfig ~= { // _.withLTO(LTO.thin) // .withMode(Mode.releaseFast) From 274a638d923d0c661075b7f4947e49177dade2e6 Mon Sep 17 00:00:00 2001 From: Michal Pawlik Date: Fri, 19 Sep 2025 11:03:22 +0200 Subject: [PATCH 08/11] enforce munit-diff update --- build.sbt | 1 + 1 file changed, 1 insertion(+) diff --git a/build.sbt b/build.sbt index f3d5c028..60892723 100644 --- a/build.sbt +++ b/build.sbt @@ -62,6 +62,7 @@ val commonSettings = List( "io.circe" %%% "circe-generic" % circeVersion % "test", "co.fs2" %%% "fs2-io" % fs2Version % "test", "org.typelevel" %%% "weaver-cats" % weaverVersion % "test", + "org.scalameta" %%% "munit-diff" % "1.2.0" % Test, "org.typelevel" %%% "weaver-scalacheck" % weaverVersion % Test, "com.eed3si9n.expecty" %%% "expecty" % "0.17.0" % "test", "org.portable-scala" %%% "portable-scala-reflect" % "1.1.3" cross CrossVersion.for3Use2_13 From cb6c596b530e3a6461af8b2a2aa971ee36948694 Mon Sep 17 00:00:00 2001 From: Michal Pawlik Date: Fri, 19 Sep 2025 12:40:20 +0200 Subject: [PATCH 09/11] update weaver, drop munit override --- build.sbt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 60892723..2b503a6c 100644 --- a/build.sbt +++ b/build.sbt @@ -30,7 +30,7 @@ val shapeless3Version = "3.5.0" val scalaJavaTimeVersion = "2.6.0" val diffsonVersion = "5.0-8cf53fd-SNAPSHOT" val literallyVersion = "1.2.0" -val weaverVersion = "0.11-b0644b4-SNAPSHOT" +val weaverVersion = "0.11-ddd6eba-SNAPSHOT" ThisBuild / tlBaseVersion := "1.12" @@ -62,7 +62,6 @@ val commonSettings = List( "io.circe" %%% "circe-generic" % circeVersion % "test", "co.fs2" %%% "fs2-io" % fs2Version % "test", "org.typelevel" %%% "weaver-cats" % weaverVersion % "test", - "org.scalameta" %%% "munit-diff" % "1.2.0" % Test, "org.typelevel" %%% "weaver-scalacheck" % weaverVersion % Test, "com.eed3si9n.expecty" %%% "expecty" % "0.17.0" % "test", "org.portable-scala" %%% "portable-scala-reflect" % "1.1.3" cross CrossVersion.for3Use2_13 From e885ab6548bad22f2fe009f0afd44ad2d5dc963d Mon Sep 17 00:00:00 2001 From: Michal Pawlik Date: Mon, 22 Sep 2025 09:12:29 +0200 Subject: [PATCH 10/11] update scalajs --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index dcb021d6..8b21ce1f 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -3,7 +3,7 @@ addSbtPlugin("org.typelevel" % "sbt-typelevel-site" % "0.7.7") addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.7") -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.8") From 481aab184307e308e1527012f8eab0683d747609 Mon Sep 17 00:00:00 2001 From: Michal Pawlik Date: Tue, 23 Sep 2025 15:03:33 +0200 Subject: [PATCH 11/11] add explicit dependency on munit to fix native tests --- build.sbt | 1 + 1 file changed, 1 insertion(+) diff --git a/build.sbt b/build.sbt index 2b503a6c..a1a80972 100644 --- a/build.sbt +++ b/build.sbt @@ -63,6 +63,7 @@ val commonSettings = List( "co.fs2" %%% "fs2-io" % fs2Version % "test", "org.typelevel" %%% "weaver-cats" % weaverVersion % "test", "org.typelevel" %%% "weaver-scalacheck" % weaverVersion % Test, + "org.scalameta" %%% "munit-diff" % "1.2.0" % Test, // added explicitly to overcome https://github.com/typelevel/weaver-test/issues/208 "com.eed3si9n.expecty" %%% "expecty" % "0.17.0" % "test", "org.portable-scala" %%% "portable-scala-reflect" % "1.1.3" cross CrossVersion.for3Use2_13 ) ++ PartialFunction