diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 23a711f5092b..69405ff3fed6 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -134,15 +134,8 @@ jobs:
check-latest: true
- name: Cache scala dependencies
uses: coursier/cache-action@v6
- - name: Test 2.12
- if: ${{ startsWith(matrix.scala, '2.12.') }}
- run: sbt -v ++${{ matrix.scala }} test${{ matrix.platform }}
- - name: Test 2.13
- if: ${{ startsWith(matrix.scala, '2.13.') }}
+ - name: Run tests
run: sbt -v ++${{ matrix.scala }} test${{ matrix.platform }}
- - name: Test 3
- if: ${{ startsWith(matrix.scala, '3.') }}
- run: sbt -v ++${{ matrix.scala }} test${{ matrix.platform }}3
- name: Upload Test Results 2.12
if: ${{ startsWith(matrix.scala, '2.12.') }}
uses: actions/upload-artifact@v3
diff --git a/benchmarks/src/main/scala-2.12/zio/GenBenchmarks.scala b/benchmarks/src/main/scala/zio/GenBenchmarks.scala
similarity index 100%
rename from benchmarks/src/main/scala-2.12/zio/GenBenchmarks.scala
rename to benchmarks/src/main/scala/zio/GenBenchmarks.scala
diff --git a/benchmarks/src/main/scala/zio/NewEncodingBenchmark.scala b/benchmarks/src/main/scala/zio/NewEncodingBenchmark.scala
index 8c5bd461fd5b..00eb43c4a5a7 100644
--- a/benchmarks/src/main/scala/zio/NewEncodingBenchmark.scala
+++ b/benchmarks/src/main/scala/zio/NewEncodingBenchmark.scala
@@ -73,7 +73,7 @@ object Classic {
cur match {
case FlatMap(first, andThen) =>
cur = first
- stack.push(andThen)
+ stack.push(andThen.asInstanceOf[ErasedK])
case Succeed(thunk) =>
val value = thunk()
diff --git a/build.sbt b/build.sbt
index 7276efbd78f2..14aa0eefefdd 100644
--- a/build.sbt
+++ b/build.sbt
@@ -1,6 +1,7 @@
import BuildHelper.*
import Dependencies.*
import MimaSettings.mimaSettings
+import _root_.scalafix.sbt.BuildInfo.scalafixVersion
import explicitdeps.ExplicitDepsPlugin.autoImport.moduleFilterRemoveValue
import sbt.Keys
@@ -48,14 +49,6 @@ addCommandAlias(
"testJVMNoBenchmarks",
";coreTestsJVM/test;stacktracerJVM/test;streamsTestsJVM/test;testTestsJVM/test;testMagnoliaTestsJVM/test;testRefinedJVM/Test/compile;testRunnerJVM/Test/run;examplesJVM/Test/compile;concurrentJVM/test;managedTestsJVM/test"
)
-addCommandAlias(
- "testJVM3",
- ";coreTestsJVM/test;stacktracerJVM/Test/compile;streamsTestsJVM/test;testTestsJVM/test;testMagnoliaTestsJVM/test;testRefinedJVM/test;testRunnerJVM/Test/run;examplesJVM/Test/compile;concurrentJVM/test;managedTestsJVM/test"
-)
-addCommandAlias(
- "testJS3",
- ";coreTestsJS/test;stacktracerJS/test;streamsTestsJS/test;testTestsJS/test;testMagnoliaTestsJS/test;testRefinedJS/test;examplesJS/Test/compile;concurrentJS/test"
-)
addCommandAlias(
"testJS",
";coreTestsJS/test;stacktracerJS/test;streamsTestsJS/test;testTestsJS/test;testMagnoliaTestsJS/test;testRefinedJS/test;examplesJS/Test/compile;macrosTestsJS/test;concurrentJS/test"
@@ -114,7 +107,7 @@ lazy val rootJVM3 = project
List[ProjectReference](
testJunitRunner,
testJunitEngine,
-// testJunitRunnerTests, TODO: fix test
+ testJunitRunnerTests,
testJunitEngineTests,
testMagnolia.jvm,
testMagnoliaTests.jvm,
@@ -151,49 +144,54 @@ lazy val root212 = project.in(file("target/root212")).settings(publish / skip :=
lazy val root213 = project
.in(file("target/root213"))
.settings(publish / skip := true)
+ .aggregate(projectsCommon.flatMap(p => List[ProjectReference](p.jvm, p.js, p.native)) *)
+ .aggregate(
+ List(
+ testScalaCheck
+ ).flatMap(p => List[ProjectReference](p.jvm, p.js, p.native)) *
+ )
.aggregate(
- (projectsCommon.flatMap(p => List[ProjectReference](p.jvm, p.js, p.native)) ++
- List(
- testScalaCheck
- ).flatMap(p => List[ProjectReference](p.jvm, p.js, p.native)) ++
- List(
- testMagnolia,
- testMagnoliaTests,
- testRefined
- ).flatMap(p => List[ProjectReference](p.jvm, p.js)) ++
- List[ProjectReference](
- benchmarks,
- scalafixTests,
- testJunitRunner,
- testJunitEngine,
- testJunitRunnerTests,
- testJunitEngineTests
- )) *
+ List(
+ testMagnolia,
+ testMagnoliaTests,
+ testRefined
+ ).flatMap(p => List[ProjectReference](p.jvm, p.js)) *
+ )
+ .aggregate(
+ List[ProjectReference](
+ benchmarks,
+ scalafixTests,
+ testJunitRunner,
+ testJunitEngine,
+ testJunitRunnerTests,
+ testJunitEngineTests
+ ) *
)
lazy val root3 = project
.in(file("target/root3"))
.settings(publish / skip := true)
+ .aggregate(projectsCommon.flatMap(p => List[ProjectReference](p.jvm, p.js, p.native)) *)
+ .aggregate(
+ List(
+ testScalaCheck
+ ).flatMap(p => List[ProjectReference](p.jvm, p.js, p.native)) *
+ )
.aggregate(
- (projectsCommon.flatMap(p => List[ProjectReference](p.jvm, p.js, p.native)) ++
- List(
- testScalaCheck
- ).flatMap(p => List[ProjectReference](p.jvm, p.js, p.native)) ++
- List(
- testMagnolia,
- testMagnoliaTests,
- testRefined
- ).flatMap(p => List[ProjectReference](p.jvm, p.js)) ++
- List[ProjectReference](
- testJunitRunner,
- testJunitEngine,
- testJunitRunnerTests,
- testJunitEngineTests
- )) *
- )
-
-val catsEffectVersion = "3.5.4"
-val fs2Version = "3.10.2"
+ List(
+ testMagnolia,
+ testMagnoliaTests,
+ testRefined
+ ).flatMap(p => List[ProjectReference](p.jvm, p.js)) *
+ )
+ .aggregate(
+ List[ProjectReference](
+ testJunitRunner,
+ testJunitEngine,
+ testJunitRunnerTests,
+ testJunitEngineTests
+ ) *
+ )
lazy val root = project
.in(file("."))
@@ -216,7 +214,7 @@ lazy val core = crossProject(JSPlatform, JVMPlatform, NativePlatform)
.settings(stdSettings("zio"))
.settings(crossProjectSettings)
.settings(buildInfoSettings("zio"))
- .settings(libraryDependencies += "dev.zio" %%% "izumi-reflect" % "2.3.10")
+ .settings(libraryDependencies += "dev.zio" %%% "izumi-reflect" % IzumiReflectVersion)
.enablePlugins(BuildInfoPlugin)
.settings(macroDefinitionSettings)
.settings(scalacOptions += "-Wconf:msg=[zio.stacktracer.TracingImplicits.disableAutoTrace]:silent")
@@ -227,9 +225,9 @@ lazy val core = crossProject(JSPlatform, JVMPlatform, NativePlatform)
.jsSettings(
jsSettings,
libraryDependencies ++= List(
- "org.scala-js" %%% "scala-js-macrotask-executor" % "1.1.1",
- ("org.scala-js" %%% "scalajs-weakreferences" % "1.0.0").cross(CrossVersion.for3Use2_13),
- "org.scala-js" %%% "scalajs-dom" % "2.8.0"
+ "org.scala-js" %%% "scala-js-macrotask-executor" % "1.1.1",
+ "org.scala-js" %%% "scalajs-weakreferences" % "1.0.0" cross CrossVersion.for3Use2_13,
+ "org.scala-js" %%% "scalajs-dom" % ScalaJsDomVersion
),
scalacOptions ++= {
if (scalaVersion.value == Scala3) {
@@ -246,17 +244,13 @@ lazy val core = crossProject(JSPlatform, JVMPlatform, NativePlatform)
lazy val coreTests = crossProject(JSPlatform, JVMPlatform, NativePlatform)
.in(file("core-tests"))
- .dependsOn(core)
- .dependsOn(tests)
+ .dependsOn(core, tests, testRunner)
.settings(stdSettings("core-tests"))
.settings(crossProjectSettings)
- .dependsOn(testRunner)
- .settings(buildInfoSettings("zio"))
.settings(publish / skip := true)
.settings(
Compile / classLoaderLayeringStrategy := ClassLoaderLayeringStrategy.Flat
)
- .enablePlugins(BuildInfoPlugin)
.jvmConfigure(_.enablePlugins(JCStressPlugin))
.jvmSettings(replSettings)
.jsSettings(
@@ -290,17 +284,13 @@ lazy val managed = crossProject(JSPlatform, JVMPlatform, NativePlatform)
lazy val managedTests = crossProject(JSPlatform, JVMPlatform, NativePlatform)
.in(file("managed-tests"))
- .dependsOn(managed)
- .dependsOn(tests)
+ .dependsOn(managed, tests, testRunner)
.settings(stdSettings("managed-tests"))
.settings(crossProjectSettings)
- .dependsOn(testRunner)
- .settings(buildInfoSettings("zio"))
.settings(publish / skip := true)
.settings(
Compile / classLoaderLayeringStrategy := ClassLoaderLayeringStrategy.Flat
)
- .enablePlugins(BuildInfoPlugin)
.jvmConfigure(_.enablePlugins(JCStressPlugin))
.jvmSettings(replSettings)
.jsSettings(
@@ -316,6 +306,7 @@ lazy val managedTests = crossProject(JSPlatform, JVMPlatform, NativePlatform)
.nativeSettings(nativeSettings)
lazy val macros = crossProject(JSPlatform, JVMPlatform, NativePlatform)
+ .crossType(CrossType.Pure)
.in(file("macros"))
.dependsOn(core, managed)
.settings(stdSettings("zio-macros"))
@@ -327,20 +318,19 @@ lazy val macros = crossProject(JSPlatform, JVMPlatform, NativePlatform)
.settings(scalacOptions += "-Wconf:msg=[@nowarn annotation does not suppress any warnings]:silent")
lazy val macrosTests = crossProject(JSPlatform, JVMPlatform, NativePlatform)
+ .crossType(CrossType.Pure)
.in(file("macros-tests"))
- .dependsOn(macros)
+ .dependsOn(macros, testRunner)
.settings(stdSettings("macros-tests"))
.settings(crossProjectSettings)
.settings(macroDefinitionSettings)
.settings(macroExpansionSettings)
- .dependsOn(testRunner)
- .settings(buildInfoSettings("zio"))
.settings(publish / skip := true)
- .enablePlugins(BuildInfoPlugin)
.jsSettings(jsSettings)
.nativeSettings(nativeSettings)
lazy val internalMacros = crossProject(JSPlatform, JVMPlatform, NativePlatform)
+ .crossType(CrossType.Pure)
.in(file("internal-macros"))
.settings(stdSettings("zio-internal-macros"))
.settings(crossProjectSettings)
@@ -366,17 +356,13 @@ lazy val streams = crossProject(JSPlatform, JVMPlatform, NativePlatform)
lazy val streamsTests = crossProject(JSPlatform, JVMPlatform, NativePlatform)
.in(file("streams-tests"))
- .dependsOn(streams)
- .dependsOn(concurrent)
+ .dependsOn(streams, concurrent, testRunner)
.settings(stdSettings("streams-tests"))
.settings(crossProjectSettings)
- .dependsOn(testRunner)
- .settings(buildInfoSettings("zio.stream"))
.settings(publish / skip := true)
.settings(
Compile / classLoaderLayeringStrategy := ClassLoaderLayeringStrategy.AllLibraryJars
)
- .enablePlugins(BuildInfoPlugin)
.jsSettings(
jsSettings,
scalacOptions ++= {
@@ -397,10 +383,7 @@ lazy val tests = crossProject(JSPlatform, JVMPlatform, NativePlatform)
.settings(macroDefinitionSettings)
.settings(macroExpansionSettings)
.settings(
- libraryDependencies ++= Seq(
- ("org.portable-scala" %%% "portable-scala-reflect" % "1.1.3")
- .cross(CrossVersion.for3Use2_13)
- )
+ libraryDependencies += "org.portable-scala" %%% "portable-scala-reflect" % "1.1.3" cross CrossVersion.for3Use2_13
)
.settings(scalacOptions += "-Wconf:msg=[zio.stacktracer.TracingImplicits.disableAutoTrace]:silent")
.settings(scalacOptions += "-Wconf:msg=[@nowarn annotation does not suppress any warnings]:silent")
@@ -408,38 +391,36 @@ lazy val tests = crossProject(JSPlatform, JVMPlatform, NativePlatform)
.jsSettings(
jsSettings,
libraryDependencies ++= List(
- "io.github.cquiroz" %%% "scala-java-time" % "2.6.0",
- "io.github.cquiroz" %%% "scala-java-time-tzdb" % "2.6.0"
+ "io.github.cquiroz" %%% "scala-java-time" % ScalaJavaTimeVersion,
+ "io.github.cquiroz" %%% "scala-java-time-tzdb" % ScalaJavaTimeVersion
)
)
.nativeSettings(
nativeSettings,
libraryDependencies ++= List(
- "io.github.cquiroz" %%% "scala-java-time" % "2.6.0",
- "io.github.cquiroz" %%% "scala-java-time-tzdb" % "2.6.0",
- "com.github.lolgab" %%% "scala-native-crypto" % "0.1.0"
+ "io.github.cquiroz" %%% "scala-java-time" % ScalaJavaTimeVersion,
+ "io.github.cquiroz" %%% "scala-java-time-tzdb" % ScalaJavaTimeVersion,
+ "com.github.lolgab" %%% "scala-native-crypto" % ScalaNativeCryptoVersion
)
)
lazy val testTests = crossProject(JSPlatform, JVMPlatform, NativePlatform)
.in(file("test-tests"))
- .dependsOn(tests)
+ .dependsOn(tests, testRunner)
.settings(stdSettings("test-tests"))
.settings(crossProjectSettings)
- .dependsOn(testRunner)
- .settings(buildInfoSettings("zio.test"))
.settings(publish / skip := true)
.settings(macroExpansionSettings)
- .enablePlugins(BuildInfoPlugin)
.jsSettings(
jsSettings,
libraryDependencies ++= List(
- ("org.scala-js" %%% "scalajs-java-securerandom" % "1.0.0").cross(CrossVersion.for3Use2_13)
+ ("org.scala-js" %%% "scalajs-java-securerandom" % ScalaSecureRandomVersion).cross(CrossVersion.for3Use2_13)
)
)
.nativeSettings(nativeSettings)
lazy val testMagnolia = crossProject(JVMPlatform, JSPlatform)
+ .crossType(CrossType.Pure)
.in(file("test-magnolia"))
.dependsOn(tests)
.settings(stdSettings("zio-test-magnolia"))
@@ -455,12 +436,12 @@ lazy val testMagnolia = crossProject(JVMPlatform, JSPlatform)
libraryDependencies ++= {
if (scalaVersion.value == Scala3)
Seq(
- ("com.softwaremill.magnolia1_3" %%% "magnolia" % "1.3.3")
+ ("com.softwaremill.magnolia1_3" %%% "magnolia" % MagnoliaScala3Version)
.exclude("org.scala-lang", "scala-compiler")
)
else
Seq(
- ("com.softwaremill.magnolia1_2" %%% "magnolia" % "1.1.6")
+ ("com.softwaremill.magnolia1_2" %%% "magnolia" % MagnoliaScala2Version)
.exclude("org.scala-lang", "scala-compiler")
)
}
@@ -468,47 +449,40 @@ lazy val testMagnolia = crossProject(JVMPlatform, JSPlatform)
.jsSettings(jsSettings)
lazy val testMagnoliaTests = crossProject(JVMPlatform, JSPlatform)
+ .crossType(CrossType.Pure)
.in(file("test-magnolia-tests"))
- .dependsOn(testMagnolia)
- .dependsOn(testTests % "test->test;compile->compile")
+ .dependsOn(testMagnolia, testTests % "test->test;compile->compile", testRunner)
.settings(stdSettings("test-magnolia-tests"))
.settings(crossProjectSettings)
- .dependsOn(testRunner)
- .settings(buildInfoSettings("zio.test"))
.settings(
publish / skip := true
)
.jsSettings(jsSettings)
- .enablePlugins(BuildInfoPlugin)
lazy val testRefined = crossProject(JVMPlatform, JSPlatform)
+ .crossType(CrossType.Pure)
.in(file("test-refined"))
.dependsOn(testMagnolia)
.settings(stdSettings("zio-test-refined"))
.settings(crossProjectSettings)
.settings(macroDefinitionSettings)
.settings(
- libraryDependencies ++=
- Seq(
- ("eu.timepit" %% "refined" % "0.11.1").cross(CrossVersion.for3Use2_13)
- )
+ libraryDependencies += "eu.timepit" %% "refined" % RefinedVersion cross CrossVersion.for3Use2_13
)
.jsSettings(jsSettings)
lazy val testScalaCheck = crossProject(JSPlatform, JVMPlatform, NativePlatform)
+ .crossType(CrossType.Pure)
.in(file("test-scalacheck"))
.dependsOn(tests)
.settings(stdSettings("zio-test-scalacheck"))
.settings(crossProjectSettings)
- .settings(
- libraryDependencies ++= Seq(
- "org.scalacheck" %%% "scalacheck" % "1.18.0"
- )
- )
+ .settings(libraryDependencies += "org.scalacheck" %%% "scalacheck" % ScalaCheckVersion)
.jsSettings(jsSettings)
.nativeSettings(nativeSettings)
lazy val stacktracer = crossProject(JSPlatform, JVMPlatform, NativePlatform)
+ .crossType(CrossType.Pure)
.in(file("stacktracer"))
.settings(stdSettings("zio-stacktracer"))
.settings(crossProjectSettings)
@@ -529,8 +503,7 @@ lazy val testRunner = crossProject(JSPlatform, JVMPlatform, NativePlatform)
.settings(Test / run / mainClass := Some("zio.test.sbt.TestMain"))
.settings(scalacOptions += "-Wconf:msg=[zio.stacktracer.TracingImplicits.disableAutoTrace]:silent")
.settings(scalacOptions += "-Wconf:msg=[@nowarn annotation does not suppress any warnings]:silent")
- .dependsOn(core)
- .dependsOn(tests)
+ .dependsOn(core, tests)
.jvmSettings(libraryDependencies ++= Seq("org.scala-sbt" % "test-interface" % "1.0"))
.jsSettings(
jsSettings,
@@ -546,51 +519,49 @@ lazy val testRunner = crossProject(JSPlatform, JVMPlatform, NativePlatform)
lazy val testJunitRunner = project.module
.in(file("test-junit"))
.settings(stdSettings("zio-test-junit"))
- .settings(libraryDependencies ++= Seq("junit" % "junit" % "4.13.2"))
+ .settings(libraryDependencies ++= Seq("junit" % "junit" % JunitVersion))
.dependsOn(tests.jvm)
+lazy val commonJunitTestSettings = Seq(
+ Test / fork := true,
+ publish / skip := true,
+ Test / javaOptions ++= Seq(
+ s"-Dproject.dir=${baseDirectory.value}",
+ s"-Dproject.version=${version.value}",
+ s"-Dscala.version=${scalaVersion.value}",
+ s"-Dscala.compat.version=${scalaBinaryVersion.value}"
+ ),
+ libraryDependencies ++= Seq(
+ "junit" % "junit" % "4.13.2" % Test,
+ "org.scala-lang.modules" %% "scala-xml" % "2.3.0" % Test,
+ "org.apache.maven" % "maven-embedder" % "3.9.9" % Test,
+ "org.apache.maven" % "maven-compat" % "3.9.9" % Test,
+ "com.google.inject" % "guice" % "6.0.0" % Test,
+ "org.eclipse.sisu" % "org.eclipse.sisu.inject" % "0.3.5" % Test,
+ "org.apache.maven.resolver" % "maven-resolver-connector-basic" % "1.9.22" % Test,
+ "org.apache.maven.resolver" % "maven-resolver-transport-http" % "1.9.22" % Test,
+ "org.codehaus.plexus" % "plexus-component-annotations" % "2.2.0" % Test,
+ "org.slf4j" % "slf4j-simple" % "2.0.16" % Test
+ )
+)
+
lazy val testJunitRunnerTests = project.module
.in(file("test-junit-tests"))
.settings(stdSettings("test-junit-tests"))
- .settings(Test / fork := true)
- .settings(Test / javaOptions ++= {
- Seq(
- s"-Dproject.dir=${baseDirectory.value}",
- s"-Dproject.version=${version.value}",
- s"-Dscala.version=${scalaVersion.value}",
- s"-Dscala.compat.version=${scalaBinaryVersion.value}"
- )
- })
- .settings(publish / skip := true)
- .settings(
- libraryDependencies ++= Seq(
- "junit" % "junit" % "4.13.2" % Test,
- "org.scala-lang.modules" %% "scala-xml" % "2.2.0" % Test,
- // required to run embedded maven in the tests
- "org.apache.maven" % "maven-embedder" % "3.9.6" % Test,
- "org.apache.maven" % "maven-compat" % "3.9.6" % Test,
- "com.google.inject" % "guice" % "4.0" % Test,
- "org.eclipse.sisu" % "org.eclipse.sisu.inject" % "0.3.5" % Test,
- "org.apache.maven.resolver" % "maven-resolver-connector-basic" % "1.9.18" % Test,
- "org.apache.maven.resolver" % "maven-resolver-transport-http" % "1.9.18" % Test,
- "org.codehaus.plexus" % "plexus-component-annotations" % "2.2.0" % Test,
- "org.slf4j" % "slf4j-simple" % "1.7.36" % Test
- )
- )
- .dependsOn(
- tests.jvm,
- testRunner.jvm
- )
+ .settings(commonJunitTestSettings)
+ .dependsOn(tests.jvm, testRunner.jvm)
// publish locally so embedded maven runs against locally compiled zio
.settings(
Test / Keys.test :=
(Test / Keys.test)
- .dependsOn(testJunitRunner / publishM2)
- .dependsOn(tests.jvm / publishM2)
- .dependsOn(core.jvm / publishM2)
- .dependsOn(internalMacros.jvm / publishM2)
- .dependsOn(streams.jvm / publishM2)
- .dependsOn(stacktracer.jvm / publishM2)
+ .dependsOn(
+ testJunitRunner / publishM2,
+ tests.jvm / publishM2,
+ core.jvm / publishM2,
+ internalMacros.jvm / publishM2,
+ streams.jvm / publishM2,
+ stacktracer.jvm / publishM2
+ )
.value
)
@@ -599,8 +570,8 @@ lazy val testJunitEngine = project.module
.settings(stdSettings("zio-test-junit-engine"))
.settings(
libraryDependencies ++= Seq(
- "org.junit.platform" % "junit-platform-engine" % "1.11.0",
- "org.scala-lang.modules" %% "scala-collection-compat" % "2.12.0"
+ "org.junit.platform" % "junit-platform-engine" % JunitPlatformEngineVersion,
+ "org.scala-lang.modules" %% "scala-collection-compat" % ScalaCollectionCompatVersion
)
)
.dependsOn(tests.jvm)
@@ -608,56 +579,31 @@ lazy val testJunitEngine = project.module
lazy val testJunitEngineTests = project.module
.in(file("test-junit-engine-tests"))
.settings(stdSettings("test-junit-engine-tests"))
- .settings(Test / fork := true)
- .settings(Test / javaOptions ++= {
- Seq(
- s"-Dproject.dir=${baseDirectory.value}",
- s"-Dproject.version=${version.value}",
- s"-Dscala.version=${scalaVersion.value}",
- s"-Dscala.compat.version=${scalaBinaryVersion.value}"
- )
- })
- .settings(publish / skip := true)
- .settings(
- libraryDependencies ++= Seq(
- "junit" % "junit" % "4.13.2" % Test,
- "org.scala-lang.modules" %% "scala-xml" % "2.2.0" % Test,
- // required to run embedded maven in the tests
- "org.apache.maven" % "maven-embedder" % "3.9.6" % Test,
- "org.apache.maven" % "maven-compat" % "3.9.6" % Test,
- "com.google.inject" % "guice" % "4.0" % Test,
- "org.eclipse.sisu" % "org.eclipse.sisu.inject" % "0.3.5" % Test,
- "org.apache.maven.resolver" % "maven-resolver-connector-basic" % "1.9.18" % Test,
- "org.apache.maven.resolver" % "maven-resolver-transport-http" % "1.9.18" % Test,
- "org.codehaus.plexus" % "plexus-component-annotations" % "2.2.0" % Test,
- "org.slf4j" % "slf4j-simple" % "1.7.36" % Test
- )
- )
- .dependsOn(
- tests.jvm,
- testRunner.jvm
- )
+ .settings(commonJunitTestSettings)
+ .dependsOn(tests.jvm, testRunner.jvm)
// publish locally so embedded maven runs against locally compiled zio
.settings(
Test / Keys.test :=
(Test / Keys.test)
- .dependsOn(testJunitEngine / publishM2)
- .dependsOn(tests.jvm / publishM2)
- .dependsOn(core.jvm / publishM2)
- .dependsOn(internalMacros.jvm / publishM2)
- .dependsOn(streams.jvm / publishM2)
- .dependsOn(stacktracer.jvm / publishM2)
+ .dependsOn(
+ testJunitEngine / publishM2,
+ tests.jvm / publishM2,
+ core.jvm / publishM2,
+ internalMacros.jvm / publishM2,
+ streams.jvm / publishM2,
+ stacktracer.jvm / publishM2
+ )
.value
)
lazy val concurrent = crossProject(JSPlatform, JVMPlatform, NativePlatform)
+ .crossType(CrossType.Pure)
.in(file("concurrent"))
- .dependsOn(core)
+ .dependsOn(core, testRunner % Test)
.settings(stdSettings("zio-concurrent"))
.settings(crossProjectSettings)
.settings(buildInfoSettings("zio.concurrent"))
.enablePlugins(BuildInfoPlugin)
- .dependsOn(testRunner % Test)
.jvmSettings(mimaSettings(failOnProblem = false))
.jsSettings(jsSettings)
.nativeSettings(nativeSettings)
@@ -688,7 +634,7 @@ lazy val examples = crossProject(JVMPlatform, JSPlatform, NativePlatform)
.jsSettings(
jsSettings,
libraryDependencies ++= List(
- ("org.scala-js" %%% "scalajs-java-securerandom" % "1.0.0").cross(CrossVersion.for3Use2_13)
+ ("org.scala-js" %%% "scalajs-java-securerandom" % ScalaSecureRandomVersion).cross(CrossVersion.for3Use2_13)
)
)
.nativeSettings(nativeSettings)
@@ -698,36 +644,28 @@ lazy val benchmarks = project.module
.enablePlugins(JmhPlugin)
.settings(replSettings)
.settings(
- crossScalaVersions --= List(Scala3),
publish / skip := true,
- libraryDependencies ++=
+ libraryDependencies ++= {
+ val nyanaVersion = if (scalaVersion.value == Scala212) "0.10.0" else "1.1.0"
Seq(
- "co.fs2" %% "fs2-core" % fs2Version,
- "com.google.code.findbugs" % "jsr305" % "3.0.2",
- "com.twitter" %% "util-core" % "23.11.0",
- "com.typesafe.akka" %% "akka-stream" % "2.8.5",
- "io.github.timwspence" %% "cats-stm" % "0.13.4",
- "io.projectreactor" % "reactor-core" % "3.6.5",
- "io.reactivex.rxjava2" % "rxjava" % "2.2.21",
- "org.jctools" % "jctools-core" % "4.0.3",
- "org.ow2.asm" % "asm" % "9.7",
- "org.scala-lang" % "scala-compiler" % scalaVersion.value % Provided,
- "org.scala-lang" % "scala-reflect" % scalaVersion.value,
- "org.typelevel" %% "cats-effect" % catsEffectVersion,
- "org.typelevel" %% "cats-effect-std" % catsEffectVersion,
- "org.scalacheck" %% "scalacheck" % "1.17.1",
- "qa.hedgehog" %% "hedgehog-core" % "0.10.1",
- "com.github.japgolly.nyaya" %% "nyaya-gen" % "0.10.0",
- "org.springframework" % "spring-core" % "6.0.19"
- ),
- unusedCompileDependenciesFilter -= libraryDependencies.value
- .map(moduleid =>
- moduleFilter(
- organization = moduleid.organization,
- name = moduleid.name
- )
+ "co.fs2" %% "fs2-core" % Fs2Version,
+ "com.twitter" %% "util-core" % "24.2.0",
+ "com.typesafe.akka" %% "akka-stream" % "2.8.8",
+ "io.github.timwspence" %% "cats-stm" % "0.13.4",
+ "io.projectreactor" % "reactor-core" % "3.7.0",
+ "io.reactivex.rxjava2" % "rxjava" % "2.2.21",
+ "org.jctools" % "jctools-core" % "4.0.5",
+ "org.typelevel" %% "cats-effect" % CatsEffectVersion,
+ "org.scalacheck" %% "scalacheck" % ScalaCheckVersion,
+ "qa.hedgehog" %% "hedgehog-core" % "0.11.0",
+ "com.github.japgolly.nyaya" %% "nyaya-gen" % nyanaVersion,
+ "org.springframework" % "spring-core" % "6.2.0"
)
- .reduce(_ | _),
+ },
+ excludeDependencies ++= {
+ if (scalaVersion.value == Scala3) List(ExclusionRule("org.scala-lang.modules", "scala-collection-compat_2.13"))
+ else Nil
+ },
Compile / console / scalacOptions := Seq(
"-language:higherKinds",
"-language:existentials",
@@ -747,15 +685,9 @@ lazy val benchmarks = project.module
)
lazy val jsdocs = project
- .settings(libraryDependencies += ("org.scala-js" %%% "scalajs-dom" % "2.8.0").cross(CrossVersion.for3Use2_13))
+ .settings(libraryDependencies += "org.scala-js" %%% "scalajs-dom" % ScalaJsDomVersion)
.enablePlugins(ScalaJSPlugin)
-val http4sV = "0.23.27"
-val doobieV = "1.0.0-RC5"
-val catsEffectV = "3.5.4"
-val zioActorsV = "0.1.0"
-val shardcakeV = "2.3.2"
-
lazy val scalafixSettings = List(
scalaVersion := Scala213,
ideSkipProject := true,
@@ -772,19 +704,22 @@ lazy val scalafixRules = project.module
.settings(
scalafixSettings,
semanticdbEnabled := true, // enable SemanticDB
- libraryDependencies += "ch.epfl.scala" %% "scalafix-core" % "0.12.1"
+ libraryDependencies += "ch.epfl.scala" %% "scalafix-core" % scalafixVersion
)
-val zio1Version = "1.0.18"
-
lazy val scalafixInput = project
.in(file("scalafix/input"))
.settings(
scalafixSettings,
- publish / skip := true,
- libraryDependencies += "dev.zio" %% "zio" % zio1Version,
- libraryDependencies += "dev.zio" %% "zio-streams" % zio1Version,
- libraryDependencies += "dev.zio" %% "zio-test" % zio1Version
+ publish / skip := true,
+ libraryDependencies ++= {
+ val zio1Version = "1.0.18"
+ Seq(
+ "dev.zio" %% "zio" % zio1Version,
+ "dev.zio" %% "zio-streams" % zio1Version,
+ "dev.zio" %% "zio-test" % zio1Version
+ )
+ }
)
lazy val scalafixOutput = project
@@ -800,7 +735,7 @@ lazy val scalafixTests = project
.settings(
scalafixSettings,
publish / skip := true,
- libraryDependencies += "ch.epfl.scala" % "scalafix-testkit" % "0.12.1" % Test cross CrossVersion.full,
+ libraryDependencies += "ch.epfl.scala" % "scalafix-testkit" % scalafixVersion % Test cross CrossVersion.full,
Compile / compile :=
(Compile / compile).dependsOn(scalafixInput / Compile / compile).value,
scalafixTestkitOutputSourceDirectories :=
@@ -816,6 +751,31 @@ lazy val scalafixTests = project
lazy val docs_make_zio_app_configurable =
project
.in(file("documentation/guides/tutorials/make-a-zio-app-configurable"))
+ .settings(
+ mdocSettings("docs", "website/docs/guides/tutorials/"),
+ fork := true,
+ publish / skip := true,
+ scalaVersion := Scala213,
+ unusedCompileDependenciesFilter -= moduleFilter("org.scalameta", "mdoc"),
+ scalacOptions -= "-Yno-imports",
+ scalacOptions -= "-Xfatal-warnings",
+ scalacOptions += "-Wconf:any:s",
+ Compile / fork := false,
+ scalacOptions ~= { _.filterNot(_.startsWith("-Ywarn")).filterNot(_.startsWith("-Xlint")) },
+ crossScalaVersions --= List(Scala212, Scala3),
+ libraryDependencies ++= Seq(
+ `zio-json`,
+ `zio-http`,
+ `zio-config`,
+ `zio-config-typesafe`,
+ `zio-config-magnolia`,
+ "io.getquill" %% "quill-zio" % QuillVersion,
+ "io.getquill" %% "quill-jdbc-zio" % QuillVersion,
+ "com.h2database" % "h2" % "2.3.232"
+ )
+ )
+ .dependsOn(core.jvm, streams.jvm)
+ .enablePlugins(MdocPlugin)
lazy val docs = project.module
.in(file("zio-docs"))
@@ -823,6 +783,7 @@ lazy val docs = project.module
publish / skip := true,
moduleName := "zio-docs",
scalaVersion := Scala213,
+ ideSkipProject := true,
unusedCompileDependenciesFilter -= moduleFilter("org.scalameta", "mdoc"),
scalacOptions -= "-Yno-imports",
scalacOptions -= "-Xfatal-warnings",
@@ -883,28 +844,28 @@ lazy val docs = project.module
`zio-zmx`,
`zio-query`,
`zio-mock`,
- "commons-io" % "commons-io" % "2.16.1" % "provided",
+ "commons-io" % "commons-io" % "2.17.0" % "provided",
"org.jsoup" % "jsoup" % "1.18.1" % "provided",
"org.reactivestreams" % "reactive-streams-examples" % "1.0.4" % "provided",
- "org.typelevel" %% "cats-effect" % catsEffectV,
- "dev.zio" %% "zio-actors" % zioActorsV,
- "io.laserdisc" %% "tamer-db" % "0.21.2",
+ "org.typelevel" %% "cats-effect" % CatsEffectVersion,
+ "dev.zio" %% "zio-actors" % ZioActorsVersion,
+ "io.laserdisc" %% "tamer-db" % "0.21.3",
"io.jaegertracing" % "jaeger-core" % "1.8.1",
"io.jaegertracing" % "jaeger-client" % "1.8.1",
"io.jaegertracing" % "jaeger-zipkin" % "1.8.1",
- "io.zipkin.reporter2" % "zipkin-reporter" % "3.4.0",
- "io.zipkin.reporter2" % "zipkin-sender-okhttp3" % "3.4.0",
+ "io.zipkin.reporter2" % "zipkin-reporter" % "3.4.2",
+ "io.zipkin.reporter2" % "zipkin-sender-okhttp3" % "3.4.2",
"org.polynote" %% "uzhttp" % "0.3.0-RC1",
- "org.tpolecat" %% "doobie-core" % doobieV,
- "org.tpolecat" %% "doobie-h2" % doobieV,
- "org.tpolecat" %% "doobie-hikari" % doobieV,
- "org.http4s" %% "http4s-blaze-server" % "0.23.16",
- "org.http4s" %% "http4s-blaze-client" % "0.23.16",
- "org.http4s" %% "http4s-dsl" % http4sV,
- "com.github.ghostdogpr" %% "caliban-quick" % "2.6.0",
- "org.scalameta" %% "munit" % "1.0.0",
- "com.github.poslegm" %% "munit-zio" % "0.2.0",
- "nl.vroste" %% "rezilience" % "0.9.4",
+ "org.tpolecat" %% "doobie-core" % DoobieVersion,
+ "org.tpolecat" %% "doobie-h2" % DoobieVersion,
+ "org.tpolecat" %% "doobie-hikari" % DoobieVersion,
+ "org.http4s" %% "http4s-ember-server" % Http4sVersion,
+ "org.http4s" %% "http4s-ember-client" % Http4sVersion,
+ "org.http4s" %% "http4s-dsl" % Http4sVersion,
+ "com.github.ghostdogpr" %% "caliban-quick" % "2.9.0",
+ "org.scalameta" %% "munit" % "1.0.2",
+ "com.github.poslegm" %% "munit-zio" % "0.3.0",
+ "nl.vroste" %% "rezilience" % "0.10.3",
"io.github.gaelrenoux" %% "tranzactio" % "4.2.0",
"io.github.neurodyne" %% "zio-arrow" % "0.2.1",
"nl.vroste" %% "zio-amqp" % "0.5.0",
@@ -913,25 +874,25 @@ lazy val docs = project.module
// "dev.zio" %% "zio-aws-elasticbeanstalk" % "5.17.102.7",
// "dev.zio" %% "zio-aws-netty" % "5.17.102.7",
"io.github.neurodyne" %% "zio-aws-s3" % "0.4.13",
- "com.coralogix" %% "zio-k8s-client" % "3.0.0",
- "com.softwaremill.sttp.client3" %% "async-http-client-backend-zio" % "3.9.7",
- "nl.vroste" %% "zio-kinesis" % "0.33.0",
+ "com.coralogix" %% "zio-k8s-client" % "3.1.0",
+ "com.softwaremill.sttp.client3" %% "async-http-client-backend-zio" % "3.10.1",
+ "nl.vroste" %% "zio-kinesis" % "0.35.0",
"com.vladkopanev" %% "zio-saga-core" % "0.6.0",
"io.scalac" %% "zio-slick-interop" % "0.6.0",
- "com.typesafe.slick" %% "slick-hikaricp" % "3.5.1",
+ "com.typesafe.slick" %% "slick-hikaricp" % "3.5.2",
"info.senia" %% "zio-test-akka-http" % "2.0.14",
- "io.getquill" %% "quill-jdbc-zio" % "4.8.3",
+ "io.getquill" %% "quill-jdbc-zio" % QuillVersion,
"com.typesafe.akka" %% "akka-http" % "10.5.2",
"com.typesafe.akka" %% "akka-cluster-typed" % "2.8.4",
"com.typesafe.akka" %% "akka-cluster-sharding-typed" % "2.8.4",
- "com.devsisters" %% "shardcake-core" % shardcakeV,
- "com.devsisters" %% "shardcake-storage-redis" % shardcakeV,
- "com.devsisters" %% "shardcake-protocol-grpc" % shardcakeV,
- "com.devsisters" %% "shardcake-entities" % shardcakeV,
- "com.devsisters" %% "shardcake-manager" % shardcakeV,
- "com.devsisters" %% "shardcake-serialization-kryo" % shardcakeV,
- "com.thesamet.scalapb.zio-grpc" %% "zio-grpc-core" % "0.6.2",
- "dev.hnaderi" %% "scala-k8s-zio" % "0.18.0"
+ "com.devsisters" %% "shardcake-core" % ShardcakeVersion,
+ "com.devsisters" %% "shardcake-storage-redis" % ShardcakeVersion,
+ "com.devsisters" %% "shardcake-protocol-grpc" % ShardcakeVersion,
+ "com.devsisters" %% "shardcake-entities" % ShardcakeVersion,
+ "com.devsisters" %% "shardcake-manager" % ShardcakeVersion,
+ "com.devsisters" %% "shardcake-serialization-kryo" % ShardcakeVersion,
+ "com.thesamet.scalapb.zio-grpc" %% "zio-grpc-core" % "0.6.3",
+ "dev.hnaderi" %% "scala-k8s-zio" % "0.20.1"
),
resolvers += "Confluent" at "https://packages.confluent.io/maven",
fork := true,
diff --git a/concurrent/shared/src/main/scala/zio/concurrent/ConcurrentMap.scala b/concurrent/src/main/scala/zio/concurrent/ConcurrentMap.scala
similarity index 100%
rename from concurrent/shared/src/main/scala/zio/concurrent/ConcurrentMap.scala
rename to concurrent/src/main/scala/zio/concurrent/ConcurrentMap.scala
diff --git a/concurrent/shared/src/main/scala/zio/concurrent/ConcurrentSet.scala b/concurrent/src/main/scala/zio/concurrent/ConcurrentSet.scala
similarity index 100%
rename from concurrent/shared/src/main/scala/zio/concurrent/ConcurrentSet.scala
rename to concurrent/src/main/scala/zio/concurrent/ConcurrentSet.scala
diff --git a/concurrent/shared/src/main/scala/zio/concurrent/CountdownLatch.scala b/concurrent/src/main/scala/zio/concurrent/CountdownLatch.scala
similarity index 100%
rename from concurrent/shared/src/main/scala/zio/concurrent/CountdownLatch.scala
rename to concurrent/src/main/scala/zio/concurrent/CountdownLatch.scala
diff --git a/concurrent/shared/src/main/scala/zio/concurrent/CyclicBarrier.scala b/concurrent/src/main/scala/zio/concurrent/CyclicBarrier.scala
similarity index 100%
rename from concurrent/shared/src/main/scala/zio/concurrent/CyclicBarrier.scala
rename to concurrent/src/main/scala/zio/concurrent/CyclicBarrier.scala
diff --git a/concurrent/shared/src/main/scala/zio/concurrent/MVar.scala b/concurrent/src/main/scala/zio/concurrent/MVar.scala
similarity index 100%
rename from concurrent/shared/src/main/scala/zio/concurrent/MVar.scala
rename to concurrent/src/main/scala/zio/concurrent/MVar.scala
diff --git a/concurrent/shared/src/main/scala/zio/concurrent/ReentrantLock.scala b/concurrent/src/main/scala/zio/concurrent/ReentrantLock.scala
similarity index 100%
rename from concurrent/shared/src/main/scala/zio/concurrent/ReentrantLock.scala
rename to concurrent/src/main/scala/zio/concurrent/ReentrantLock.scala
diff --git a/concurrent/shared/src/test/scala/zio/concurrent/ConcurrentMapSpec.scala b/concurrent/src/test/scala/zio/concurrent/ConcurrentMapSpec.scala
similarity index 100%
rename from concurrent/shared/src/test/scala/zio/concurrent/ConcurrentMapSpec.scala
rename to concurrent/src/test/scala/zio/concurrent/ConcurrentMapSpec.scala
diff --git a/concurrent/shared/src/test/scala/zio/concurrent/ConcurrentSetSpec.scala b/concurrent/src/test/scala/zio/concurrent/ConcurrentSetSpec.scala
similarity index 100%
rename from concurrent/shared/src/test/scala/zio/concurrent/ConcurrentSetSpec.scala
rename to concurrent/src/test/scala/zio/concurrent/ConcurrentSetSpec.scala
diff --git a/concurrent/shared/src/test/scala/zio/concurrent/CountdownLatchSpec.scala b/concurrent/src/test/scala/zio/concurrent/CountdownLatchSpec.scala
similarity index 100%
rename from concurrent/shared/src/test/scala/zio/concurrent/CountdownLatchSpec.scala
rename to concurrent/src/test/scala/zio/concurrent/CountdownLatchSpec.scala
diff --git a/concurrent/shared/src/test/scala/zio/concurrent/CyclicBarrierSpec.scala b/concurrent/src/test/scala/zio/concurrent/CyclicBarrierSpec.scala
similarity index 100%
rename from concurrent/shared/src/test/scala/zio/concurrent/CyclicBarrierSpec.scala
rename to concurrent/src/test/scala/zio/concurrent/CyclicBarrierSpec.scala
diff --git a/concurrent/shared/src/test/scala/zio/concurrent/MVarSpec.scala b/concurrent/src/test/scala/zio/concurrent/MVarSpec.scala
similarity index 100%
rename from concurrent/shared/src/test/scala/zio/concurrent/MVarSpec.scala
rename to concurrent/src/test/scala/zio/concurrent/MVarSpec.scala
diff --git a/concurrent/shared/src/test/scala/zio/concurrent/ReentrantLockSpec.scala b/concurrent/src/test/scala/zio/concurrent/ReentrantLockSpec.scala
similarity index 100%
rename from concurrent/shared/src/test/scala/zio/concurrent/ReentrantLockSpec.scala
rename to concurrent/src/test/scala/zio/concurrent/ReentrantLockSpec.scala
diff --git a/core-tests/shared/src/test/scala-2.13+/ChunkBuilderVersionSpecific.scala b/core-tests/shared/src/test/scala-2.13/ChunkBuilderVersionSpecific.scala
similarity index 100%
rename from core-tests/shared/src/test/scala-2.13+/ChunkBuilderVersionSpecific.scala
rename to core-tests/shared/src/test/scala-2.13/ChunkBuilderVersionSpecific.scala
diff --git a/core-tests/shared/src/test/scala-2.13+/ChunkSpecVersionSpecific.scala b/core-tests/shared/src/test/scala-2.13/ChunkSpecVersionSpecific.scala
similarity index 100%
rename from core-tests/shared/src/test/scala-2.13+/ChunkSpecVersionSpecific.scala
rename to core-tests/shared/src/test/scala-2.13/ChunkSpecVersionSpecific.scala
diff --git a/core-tests/shared/src/test/scala-2.x/zio.internal/CleanCodePrinterSpec.scala b/core-tests/shared/src/test/scala-2.x/zio.internal/CleanCodePrinterSpec.scala
deleted file mode 100644
index d8b4481e19db..000000000000
--- a/core-tests/shared/src/test/scala-2.x/zio.internal/CleanCodePrinterSpec.scala
+++ /dev/null
@@ -1,61 +0,0 @@
-package zio.internal
-
-import zio.ZIOBaseSpec
-import zio.internal.CleanCodePrinterSpec.A.B
-import zio.internal.CleanCodePrinterSpec.A.B.C
-import zio.internal.macros.MacroUnitTestUtils.showTree
-import zio.internal.macros.StringUtils.StringOps
-import zio.test.Assertion._
-import .Render.param
-import zio.test._
-
-object CleanCodePrinterSpec extends ZIOBaseSpec {
- def containsStringWithoutAnsi(element: String): Assertion[String] =
- Assertion.assertion("containsStringWithoutAnsi")(param(element))(_.removingAnsiCodes.contains(element))
-
- def spec: Spec[Environment, Failure] =
- suite("AutoLayerSpec")(
- suite(".showTree") {
- test("prints trees for expressions") {
- import nested.{Service => Nested}
-
- Seq(
- showTree(unaryFunction("hello")) -> """unaryFunction("hello")""",
- showTree(regularVal) -> "regularVal",
- showTree(`backtick enclosed`) -> "`backtick enclosed`",
- showTree(Service.live) -> "Service.live",
- showTree(Nested.live) -> "Nested.live",
- showTree(AppliedObject.apply(10)) -> "AppliedObject(10)",
- showTree(AppliedObject.apply) -> "AppliedObject",
- showTree(C.live) -> "C.live",
- showTree(B.C.live) -> "C.live"
- ).map { case (a, b) => assert(a)(equalTo(b)) }
- .reduce(_ && _)
- }
- }
- ) @@ TestAspect.exceptScala3
-
- object A {
- object B {
- object C {
- def live = 0
- }
- }
- }
- object Service { def live = 0 }
-
- object AppliedObject {
- def apply(int: Int): Int = int
- def apply = 0
- }
-
- val regularVal = 0
- val `backtick enclosed` = 0
- def unaryFunction(string: String): String = string
-}
-
-package nested {
- object Service {
- val live: Int = 3
- }
-}
diff --git a/docs/reference/observability/metrics/jvm.md b/docs/reference/observability/metrics/jvm.md
index 37a41de2b45b..509a36f5d620 100644
--- a/docs/reference/observability/metrics/jvm.md
+++ b/docs/reference/observability/metrics/jvm.md
@@ -71,7 +71,7 @@ All of these services are available in the `zio.metrics.jvm` package. Each servi
ZIO JVM metrics have built-in applications that collect the JVM metrics. They can be composed with other ZIO applications as a _sidecar_. By doing so, we are able to collect JVM metrics without modifying our main ZIO application. They will be executed as a daemon alongside the main app:
-```scala mdoc:compile-only
+```scala mdoc:passthrough
import utils._
printSource("examples/jvm/src/main/scala/zio/examples/metrics/JvmMetricAppExample.scala")
diff --git a/documentation/guides/tutorials/make-a-zio-app-configurable/build.sbt b/documentation/guides/tutorials/make-a-zio-app-configurable/build.sbt
deleted file mode 100644
index 4da882de07c4..000000000000
--- a/documentation/guides/tutorials/make-a-zio-app-configurable/build.sbt
+++ /dev/null
@@ -1,32 +0,0 @@
-import BuildHelper._
-import Dependencies._
-
-mdocSettings("docs", "website/docs/guides/tutorials/")
-fork := true
-publish / skip := true
-scalaVersion := Scala213
-unusedCompileDependenciesFilter -= moduleFilter("org.scalameta", "mdoc")
-scalacOptions -= "-Yno-imports"
-scalacOptions -= "-Xfatal-warnings"
-scalacOptions += "-Wconf:any:s"
-Compile / fork := false
-scalacOptions ~= { _ filterNot (_ startsWith "-Ywarn") }
-scalacOptions ~= { _ filterNot (_ startsWith "-Xlint") }
-crossScalaVersions --= List(Scala212, Scala3)
-
-libraryDependencies ++= Seq(
- `zio-json`,
- `zio-http`,
- `zio-config`,
- `zio-config-typesafe`,
- `zio-config-magnolia`,
- "io.getquill" %% "quill-zio" % "4.6.0",
- "io.getquill" %% "quill-jdbc-zio" % "4.6.0",
- "com.h2database" % "h2" % "2.1.214"
-)
-
-enablePlugins(MdocPlugin)
-
-resolvers ++= Resolver.sonatypeOssRepos("snapshots")
-import sbt._
-dependsOn(LocalProject("docs"))
\ No newline at end of file
diff --git a/documentation/guides/tutorials/make-a-zio-app-configurable/docs/make-a-zio-application-configurable.md b/documentation/guides/tutorials/make-a-zio-app-configurable/docs/make-a-zio-application-configurable.md
index da777b8e7a2c..3eadabad4fe3 100644
--- a/documentation/guides/tutorials/make-a-zio-app-configurable/docs/make-a-zio-application-configurable.md
+++ b/documentation/guides/tutorials/make-a-zio-app-configurable/docs/make-a-zio-application-configurable.md
@@ -92,17 +92,22 @@ Let's run the above workflow and see the output:
```
-```scala mdoc:fail
+```scala mdoc
import zio._
+import zio.config.magnolia._
import java.io.IOException
case class HttpServerConfig(host: String, port: Int)
+object HttpServerConfig {
+ implicit val config: Config[HttpServerConfig] = deriveConfig[HttpServerConfig].nested("HttpServerConfig")
+}
+
object MainApp extends ZIOAppDefault {
- val workflow: ZIO[Any, IOException, Unit] =
- ZIO.service[HttpServerConfig].flatMap { config =>
+ val workflow: Task[Unit] =
+ ZIO.config[HttpServerConfig].flatMap { config =>
Console.printLine(
"Application started with following configuration:\n" +
s"\thost: ${config.host}\n" +
@@ -140,6 +145,61 @@ Application started with following configuration:
Great! We have ZIO application that can access the configuration data. It works! Now, let's apply the same approach to our RESTful Web Service.
```scala mdoc:passthrough
+import scala.io.Source
+
+// NOTE: Code copied from the zio-docs module to avoid circular dependency in SBT modules.
+// This code does not show up on the website since we are using `mdoc:passthrough`.
+object utils {
+
+ def readSource(path: String, lines: Seq[(Int, Int)]): String = {
+ def readFile(path: String) =
+ try {
+ Source.fromFile("../" + path)
+ } catch {
+ case _ => Source.fromFile(path)
+ }
+
+ if (lines.isEmpty) {
+ val content = readFile(path).getLines().mkString("\n")
+ content
+ } else {
+ val chunks = for {
+ (from, to) <- lines
+ } yield readFile(path)
+ .getLines()
+ .toArray[String]
+ .slice(from - 1, to)
+ .mkString("\n")
+
+ chunks.mkString("\n\n")
+ }
+ }
+
+ def fileExtension(path: String): String = {
+ val javaPath = java.nio.file.Paths.get(path)
+ val fileExtension =
+ javaPath.getFileName.toString
+ .split('.')
+ .lastOption
+ .getOrElse("")
+ fileExtension
+ }
+
+ def printSource(
+ path: String,
+ lines: Seq[(Int, Int)] = Seq.empty,
+ comment: Boolean = true,
+ showLineNumbers: Boolean = false,
+ ) = {
+ val title = if (comment) s"""title="$path"""" else ""
+ val showLines = if (showLineNumbers) "showLineNumbers" else ""
+ println(s"""```${fileExtension(path)} ${title} ${showLines}""")
+ println(readSource(path, lines))
+ println("```")
+ }
+
+}
+
utils.printSource("documentation/guides/tutorials/make-a-zio-app-configurable/src/main/scala/dev/zio/quickstart/MainApp.scala")
```
@@ -162,9 +222,9 @@ In this tutorial, we will use the HOCON files. [HOCON](https://github.com/lightb
We should add the following dependencies to our `build.sb` file:
```scala
-libraryDependencies += "dev.zio" %% "zio-config" % "4.0.0-RC14"
-libraryDependencies += "dev.zio" %% "zio-config-typesafe" % "4.0.0-RC14"
-libraryDependencies += "dev.zio" %% "zio-config-magnolia" % "4.0.0-RC14"
+libraryDependencies += "dev.zio" %% "zio-config" % "4.0.2"
+libraryDependencies += "dev.zio" %% "zio-config-typesafe" % "4.0.2"
+libraryDependencies += "dev.zio" %% "zio-config-magnolia" % "4.0.2"
```
### Defining the HOCON Configuration File
diff --git a/documentation/guides/tutorials/make-a-zio-app-configurable/src/main/scala/dev/zio/quickstart/users/PersistentUserRepo.scala b/documentation/guides/tutorials/make-a-zio-app-configurable/src/main/scala/dev/zio/quickstart/users/PersistentUserRepo.scala
index 564473440ffd..136da0159434 100644
--- a/documentation/guides/tutorials/make-a-zio-app-configurable/src/main/scala/dev/zio/quickstart/users/PersistentUserRepo.scala
+++ b/documentation/guides/tutorials/make-a-zio-app-configurable/src/main/scala/dev/zio/quickstart/users/PersistentUserRepo.scala
@@ -1,6 +1,6 @@
package dev.zio.quickstart.users
-import io.getquill.context.ZioJdbc.DataSourceLayer
+import io.getquill.jdbczio.Quill
import io.getquill.{Escape, H2ZioJdbcContext}
import zio._
@@ -18,39 +18,37 @@ case class PersistentUserRepo(ds: DataSource) extends UserRepo {
for {
id <- Random.nextUUID
_ <- ctx.run {
- quote {
- query[UserTable].insertValue {
- lift(UserTable(id, user.name, user.age))
- }
- }
- }
+ quote {
+ query[UserTable].insertValue {
+ lift(UserTable(id, user.name, user.age))
+ }
+ }
+ }
} yield id.toString
}.provide(ZLayer.succeed(ds))
override def lookup(id: String): Task[Option[User]] =
- ctx
- .run {
- quote {
- query[UserTable]
- .filter(p => p.uuid == lift(UUID.fromString(id)))
- .map(u => User(u.name, u.age))
- }
+ ctx.run {
+ quote {
+ query[UserTable]
+ .filter(p => p.uuid == lift(UUID.fromString(id)))
+ .map(u => User(u.name, u.age))
}
+ }
.provide(ZLayer.succeed(ds))
.map(_.headOption)
override def users: Task[List[User]] =
- ctx
- .run {
- quote {
- query[UserTable].map(u => User(u.name, u.age))
- }
+ ctx.run {
+ quote {
+ query[UserTable].map(u => User(u.name, u.age))
}
+ }
.provide(ZLayer.succeed(ds))
}
object PersistentUserRepo {
def layer: ZLayer[Any, Throwable, PersistentUserRepo] =
- DataSourceLayer.fromPrefix("UserApp") >>>
+ Quill.DataSource.fromPrefix("UserApp") >>>
ZLayer.fromFunction(PersistentUserRepo(_))
}
diff --git a/internal-macros/shared/src/main/scala-2/zio/internal/macros/InternalMacros.scala b/internal-macros/src/main/scala-2/zio/internal/macros/InternalMacros.scala
similarity index 100%
rename from internal-macros/shared/src/main/scala-2/zio/internal/macros/InternalMacros.scala
rename to internal-macros/src/main/scala-2/zio/internal/macros/InternalMacros.scala
diff --git a/internal-macros/shared/src/main/scala/zio/internal/TerminalRendering.scala b/internal-macros/src/main/scala/zio/internal/TerminalRendering.scala
similarity index 100%
rename from internal-macros/shared/src/main/scala/zio/internal/TerminalRendering.scala
rename to internal-macros/src/main/scala/zio/internal/TerminalRendering.scala
diff --git a/internal-macros/shared/src/main/scala/zio/internal/ansi.scala b/internal-macros/src/main/scala/zio/internal/ansi.scala
similarity index 100%
rename from internal-macros/shared/src/main/scala/zio/internal/ansi.scala
rename to internal-macros/src/main/scala/zio/internal/ansi.scala
diff --git a/macros-tests/shared/src/test/scala/zio/macros/experimental.scala b/macros-tests/src/test/scala-2/scala/annotation/experimental.scala
similarity index 100%
rename from macros-tests/shared/src/test/scala/zio/macros/experimental.scala
rename to macros-tests/src/test/scala-2/scala/annotation/experimental.scala
diff --git a/macros-tests/shared/src/test/scala-2/zio/macros/AccessibleMMSpec.scala b/macros-tests/src/test/scala-2/zio/macros/AccessibleMMSpec.scala
similarity index 100%
rename from macros-tests/shared/src/test/scala-2/zio/macros/AccessibleMMSpec.scala
rename to macros-tests/src/test/scala-2/zio/macros/AccessibleMMSpec.scala
diff --git a/macros-tests/shared/src/test/scala-2/zio/macros/AccessibleMSpec.scala b/macros-tests/src/test/scala-2/zio/macros/AccessibleMSpec.scala
similarity index 100%
rename from macros-tests/shared/src/test/scala-2/zio/macros/AccessibleMSpec.scala
rename to macros-tests/src/test/scala-2/zio/macros/AccessibleMSpec.scala
diff --git a/macros-tests/shared/src/test/scala-2/zio/macros/AccessibleSpec.scala b/macros-tests/src/test/scala-2/zio/macros/AccessibleSpec.scala
similarity index 100%
rename from macros-tests/shared/src/test/scala-2/zio/macros/AccessibleSpec.scala
rename to macros-tests/src/test/scala-2/zio/macros/AccessibleSpec.scala
diff --git a/macros-tests/shared/src/test/scala-2/zio/macros/AccessibleSpecFlat.scala b/macros-tests/src/test/scala-2/zio/macros/AccessibleSpecFlat.scala
similarity index 100%
rename from macros-tests/shared/src/test/scala-2/zio/macros/AccessibleSpecFlat.scala
rename to macros-tests/src/test/scala-2/zio/macros/AccessibleSpecFlat.scala
diff --git a/macros-tests/shared/src/test/scala/zio/macros/ReloadableSpec.scala b/macros-tests/src/test/scala/zio/macros/ReloadableSpec.scala
similarity index 100%
rename from macros-tests/shared/src/test/scala/zio/macros/ReloadableSpec.scala
rename to macros-tests/src/test/scala/zio/macros/ReloadableSpec.scala
diff --git a/macros-tests/shared/src/test/scala/zio/macros/ServiceReloaderSpec.scala b/macros-tests/src/test/scala/zio/macros/ServiceReloaderSpec.scala
similarity index 100%
rename from macros-tests/shared/src/test/scala/zio/macros/ServiceReloaderSpec.scala
rename to macros-tests/src/test/scala/zio/macros/ServiceReloaderSpec.scala
diff --git a/macros/shared/src/main/scala-2/zio/macros/AccessibleMMMacro.scala b/macros/src/main/scala-2/zio/macros/AccessibleMMMacro.scala
similarity index 100%
rename from macros/shared/src/main/scala-2/zio/macros/AccessibleMMMacro.scala
rename to macros/src/main/scala-2/zio/macros/AccessibleMMMacro.scala
diff --git a/macros/shared/src/main/scala-2/zio/macros/AccessibleMMacro.scala b/macros/src/main/scala-2/zio/macros/AccessibleMMacro.scala
similarity index 100%
rename from macros/shared/src/main/scala-2/zio/macros/AccessibleMMacro.scala
rename to macros/src/main/scala-2/zio/macros/AccessibleMMacro.scala
diff --git a/macros/shared/src/main/scala-2/zio/macros/AccessibleMMacroBase.scala b/macros/src/main/scala-2/zio/macros/AccessibleMMacroBase.scala
similarity index 100%
rename from macros/shared/src/main/scala-2/zio/macros/AccessibleMMacroBase.scala
rename to macros/src/main/scala-2/zio/macros/AccessibleMMacroBase.scala
diff --git a/macros/shared/src/main/scala-2/zio/macros/AccessibleMacro.scala b/macros/src/main/scala-2/zio/macros/AccessibleMacro.scala
similarity index 100%
rename from macros/shared/src/main/scala-2/zio/macros/AccessibleMacro.scala
rename to macros/src/main/scala-2/zio/macros/AccessibleMacro.scala
diff --git a/macros/shared/src/main/scala-2/zio/macros/AccessibleMacroBase.scala b/macros/src/main/scala-2/zio/macros/AccessibleMacroBase.scala
similarity index 100%
rename from macros/shared/src/main/scala-2/zio/macros/AccessibleMacroBase.scala
rename to macros/src/main/scala-2/zio/macros/AccessibleMacroBase.scala
diff --git a/macros/shared/src/main/scala-2/zio/macros/accessible.scala b/macros/src/main/scala-2/zio/macros/accessible.scala
similarity index 100%
rename from macros/shared/src/main/scala-2/zio/macros/accessible.scala
rename to macros/src/main/scala-2/zio/macros/accessible.scala
diff --git a/macros/shared/src/main/scala-2/zio/macros/accessibleM.scala b/macros/src/main/scala-2/zio/macros/accessibleM.scala
similarity index 100%
rename from macros/shared/src/main/scala-2/zio/macros/accessibleM.scala
rename to macros/src/main/scala-2/zio/macros/accessibleM.scala
diff --git a/macros/shared/src/main/scala-2/zio/macros/accessibleMM.scala b/macros/src/main/scala-2/zio/macros/accessibleMM.scala
similarity index 100%
rename from macros/shared/src/main/scala-2/zio/macros/accessibleMM.scala
rename to macros/src/main/scala-2/zio/macros/accessibleMM.scala
diff --git a/macros/shared/src/main/scala-2/zio/macros/throwing.scala b/macros/src/main/scala-2/zio/macros/throwing.scala
similarity index 100%
rename from macros/shared/src/main/scala-2/zio/macros/throwing.scala
rename to macros/src/main/scala-2/zio/macros/throwing.scala
diff --git a/macros/shared/src/main/scala/zio/macros/ServiceReloader.scala b/macros/src/main/scala/zio/macros/ServiceReloader.scala
similarity index 100%
rename from macros/shared/src/main/scala/zio/macros/ServiceReloader.scala
rename to macros/src/main/scala/zio/macros/ServiceReloader.scala
diff --git a/macros/shared/src/main/scala/zio/macros/package.scala b/macros/src/main/scala/zio/macros/package.scala
similarity index 100%
rename from macros/shared/src/main/scala/zio/macros/package.scala
rename to macros/src/main/scala/zio/macros/package.scala
diff --git a/project/Dependencies.scala b/project/Dependencies.scala
index ee5b65270bfd..2ddf4920e868 100644
--- a/project/Dependencies.scala
+++ b/project/Dependencies.scala
@@ -1,32 +1,55 @@
import sbt.*
object Dependencies {
+ // Runtime dependencies
+ val JunitVersion = "4.13.2"
+ val JunitPlatformEngineVersion = "1.11.3"
+ val IzumiReflectVersion = "2.3.10"
+ val MagnoliaScala2Version = "1.1.10"
+ val MagnoliaScala3Version = "1.3.8"
+ val RefinedVersion = "0.11.2"
+ val ScalaCheckVersion = "1.18.1"
+ val ScalaJavaTimeVersion = "2.6.0"
+ val ScalaCollectionCompatVersion = "2.12.0"
+ val ScalaNativeCryptoVersion = "0.2.0"
+ val ScalaSecureRandomVersion = "1.0.0"
+ val ScalaJsDomVersion = "2.8.0"
+
+ // Documentations and example dependencies
+ val CatsEffectVersion = "3.5.5"
+ val DoobieVersion = "1.0.0-RC5"
+ val Fs2Version = "3.11.0"
+ val Http4sVersion = "0.23.29"
+ val QuillVersion = "4.8.4"
+ val ShardcakeVersion = "2.4.2"
+
val ZioMetricsConnectorsVersion = "2.3.1"
val ZioHttpVersion = "3.0.1"
- val IzumiVersion = "1.2.11"
+ val IzumiVersion = "1.2.15"
val ZioConfigVersion = "4.0.2"
- val ZioFtpVersion = "0.4.2"
- val ZioJsonVersion = "0.6.2"
- val ZioPreludeVersion = "1.0.0-RC27"
+ val ZioFtpVersion = "0.4.3"
+ val ZioJsonVersion = "0.7.3"
+ val ZioPreludeVersion = "1.0.0-RC34"
val ZioProcessVersion = "0.7.2"
val ZioRocksDBVersion = "0.4.4"
val ZioS3Version = "0.4.3"
- val ZioSchemaVersion = "1.3.0"
- val ZioSqsVersion = "0.6.0"
- val ZioOpenTracingVersion = "2.0.3"
- val ZioInteropCatsVersion = "23.1.0.2"
+ val ZioSchemaVersion = "1.5.0"
+ val ZioSqsVersion = "0.6.4"
+ val ZioOpenTracingVersion = "3.0.1"
+ val ZioInteropCatsVersion = "23.1.0.3"
val ZioInteropScalaz7xVersion = "7.3.3.0"
val ZioInteropReactiveStreamsVersion = "2.0.2"
val ZioInteropTwitterVersion = "21.2.0.2.2"
val ZioZmxVersion = "0.0.13"
- val ZioQueryVersion = "0.7.4"
+ val ZioQueryVersion = "0.7.6"
val ZioMockVersion = "1.0.0-RC12"
val ZioAkkaClusterVersion = "0.3.0"
val ZioCacheVersion = "0.2.3"
- val ZioKafkaVersion = "2.7.4"
- val ZioLoggingVersion = "2.3.0"
+ val ZioKafkaVersion = "2.9.0"
+ val ZioLoggingVersion = "2.4.0"
val ZioNioVersion = "2.0.2"
- val ZioOpticsVersion = "0.2.1"
+ val ZioOpticsVersion = "0.2.2"
+ val ZioActorsVersion = "0.1.0"
val `zio-http` = "dev.zio" %% "zio-http" % ZioHttpVersion
val `distage-core` = "io.7mind.izumi" %% "distage-core" % IzumiVersion
diff --git a/project/build.properties b/project/build.properties
index 09feeeed5d39..db1723b08622 100644
--- a/project/build.properties
+++ b/project/build.properties
@@ -1 +1 @@
-sbt.version=1.10.4
+sbt.version=1.10.5
diff --git a/project/plugins.sbt b/project/plugins.sbt
index eeac7cb2754f..44dd06ef2aa4 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -1,4 +1,4 @@
-addSbtPlugin("ch.epfl.scala" % "sbt-bloop" % "2.0.3")
+addSbtPlugin("ch.epfl.scala" % "sbt-bloop" % "2.0.5")
addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.13.0")
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.3.0")
addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.12.0")
@@ -19,4 +19,6 @@ addSbtPlugin("pl.project13.scala" % "sbt-jmh"
addSbtPlugin("org.jetbrains.scala" % "sbt-ide-settings" % "1.1.2")
-libraryDependencies += "org.snakeyaml" % "snakeyaml-engine" % "2.7"
+libraryDependencies += "org.snakeyaml" % "snakeyaml-engine" % "2.8"
+
+addDependencyTreePlugin
diff --git a/scalafix/project/plugins.sbt b/scalafix/project/plugins.sbt
index 9d1cd953eb5f..d8c6965c5c63 100644
--- a/scalafix/project/plugins.sbt
+++ b/scalafix/project/plugins.sbt
@@ -1 +1 @@
-addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.10.1")
+addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.13.0")
diff --git a/stacktracer/shared/src/main/scala-2/zio/internal/stacktracer/Macros.scala b/stacktracer/src/main/scala-2/zio/internal/stacktracer/Macros.scala
similarity index 100%
rename from stacktracer/shared/src/main/scala-2/zio/internal/stacktracer/Macros.scala
rename to stacktracer/src/main/scala-2/zio/internal/stacktracer/Macros.scala
diff --git a/stacktracer/shared/src/main/scala-2/zio/internal/stacktracer/SourceLocation.scala b/stacktracer/src/main/scala-2/zio/internal/stacktracer/SourceLocation.scala
similarity index 100%
rename from stacktracer/shared/src/main/scala-2/zio/internal/stacktracer/SourceLocation.scala
rename to stacktracer/src/main/scala-2/zio/internal/stacktracer/SourceLocation.scala
diff --git a/stacktracer/shared/src/main/scala-2/zio/internal/stacktracer/Tracer.scala b/stacktracer/src/main/scala-2/zio/internal/stacktracer/Tracer.scala
similarity index 100%
rename from stacktracer/shared/src/main/scala-2/zio/internal/stacktracer/Tracer.scala
rename to stacktracer/src/main/scala-2/zio/internal/stacktracer/Tracer.scala
diff --git a/stacktracer/shared/src/main/scala-3/zio/internal/stacktracer/Macros.scala b/stacktracer/src/main/scala-3/zio/internal/stacktracer/Macros.scala
similarity index 100%
rename from stacktracer/shared/src/main/scala-3/zio/internal/stacktracer/Macros.scala
rename to stacktracer/src/main/scala-3/zio/internal/stacktracer/Macros.scala
diff --git a/stacktracer/shared/src/main/scala-3/zio/internal/stacktracer/SourceLocation.scala b/stacktracer/src/main/scala-3/zio/internal/stacktracer/SourceLocation.scala
similarity index 100%
rename from stacktracer/shared/src/main/scala-3/zio/internal/stacktracer/SourceLocation.scala
rename to stacktracer/src/main/scala-3/zio/internal/stacktracer/SourceLocation.scala
diff --git a/stacktracer/shared/src/main/scala-3/zio/internal/stacktracer/Tracer.scala b/stacktracer/src/main/scala-3/zio/internal/stacktracer/Tracer.scala
similarity index 100%
rename from stacktracer/shared/src/main/scala-3/zio/internal/stacktracer/Tracer.scala
rename to stacktracer/src/main/scala-3/zio/internal/stacktracer/Tracer.scala
diff --git a/stacktracer/shared/src/main/scala/zio/stacktracer/TracingImplicits.scala b/stacktracer/src/main/scala/zio/stacktracer/TracingImplicits.scala
similarity index 100%
rename from stacktracer/shared/src/main/scala/zio/stacktracer/TracingImplicits.scala
rename to stacktracer/src/main/scala/zio/stacktracer/TracingImplicits.scala
diff --git a/test-junit-engine-tests/maven/pom.xml b/test-junit-engine-tests/maven/pom.xml
index 5c6718f8eecf..7ab6477db7d3 100644
--- a/test-junit-engine-tests/maven/pom.xml
+++ b/test-junit-engine-tests/maven/pom.xml
@@ -13,6 +13,7 @@
2.13.13
2.12
2.0.22
+ 3.5.2
@@ -42,7 +43,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.0
+ ${surefire.version}
@@ -98,7 +99,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.2.5
+ ${surefire.version}
test
methods
diff --git a/test-junit-tests/maven/pom.xml b/test-junit-tests/maven/pom.xml
index 04e0220bca1b..9fc286978220 100644
--- a/test-junit-tests/maven/pom.xml
+++ b/test-junit-tests/maven/pom.xml
@@ -13,14 +13,10 @@
2.13.13
2.12
2.0.22
+ 3.5.2
-
- org.scala-lang
- scala-library
- ${scala.version}
-
junit
junit
@@ -47,15 +43,38 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.2.5
+ ${surefire.version}
org.apache.maven.surefire
surefire-junit47
- 3.2.5
+ ${surefire.version}
+
+
+ scala2
+
+
+ org.scala-lang
+ scala-library
+ ${scala.version}
+
+
+
+
+ scala3
+
+
+ org.scala-lang
+ scala3-library_${scala.compat.version}
+ ${scala.version}
+
+
+
+
+
@@ -85,7 +104,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.2.5
+ ${surefire.version}
test
methods
diff --git a/test-magnolia-tests/shared/src/test/scala/zio/test/magnolia/DeriveDiffSpec.scala b/test-magnolia-tests/src/test/scala/zio/test/magnolia/DeriveDiffSpec.scala
similarity index 100%
rename from test-magnolia-tests/shared/src/test/scala/zio/test/magnolia/DeriveDiffSpec.scala
rename to test-magnolia-tests/src/test/scala/zio/test/magnolia/DeriveDiffSpec.scala
diff --git a/test-magnolia-tests/shared/src/test/scala/zio/test/magnolia/DeriveGenSpec.scala b/test-magnolia-tests/src/test/scala/zio/test/magnolia/DeriveGenSpec.scala
similarity index 100%
rename from test-magnolia-tests/shared/src/test/scala/zio/test/magnolia/DeriveGenSpec.scala
rename to test-magnolia-tests/src/test/scala/zio/test/magnolia/DeriveGenSpec.scala
diff --git a/test-magnolia/shared/src/main/scala-2.12-2.13/zio/test/magnolia/DeriveDiff.scala b/test-magnolia/src/main/scala-2/zio/test/magnolia/DeriveDiff.scala
similarity index 100%
rename from test-magnolia/shared/src/main/scala-2.12-2.13/zio/test/magnolia/DeriveDiff.scala
rename to test-magnolia/src/main/scala-2/zio/test/magnolia/DeriveDiff.scala
diff --git a/test-magnolia/shared/src/main/scala-2.12-2.13/zio/test/magnolia/DeriveGen.scala b/test-magnolia/src/main/scala-2/zio/test/magnolia/DeriveGen.scala
similarity index 100%
rename from test-magnolia/shared/src/main/scala-2.12-2.13/zio/test/magnolia/DeriveGen.scala
rename to test-magnolia/src/main/scala-2/zio/test/magnolia/DeriveGen.scala
diff --git a/test-magnolia/shared/src/main/scala-3/zio/test/magnolia/DeriveDiff.scala b/test-magnolia/src/main/scala-3/zio/test/magnolia/DeriveDiff.scala
similarity index 100%
rename from test-magnolia/shared/src/main/scala-3/zio/test/magnolia/DeriveDiff.scala
rename to test-magnolia/src/main/scala-3/zio/test/magnolia/DeriveDiff.scala
diff --git a/test-magnolia/shared/src/main/scala-3/zio/test/magnolia/DeriveGen.scala b/test-magnolia/src/main/scala-3/zio/test/magnolia/DeriveGen.scala
similarity index 100%
rename from test-magnolia/shared/src/main/scala-3/zio/test/magnolia/DeriveGen.scala
rename to test-magnolia/src/main/scala-3/zio/test/magnolia/DeriveGen.scala
diff --git a/test-magnolia/src/main/scala/.gitkeep b/test-magnolia/src/main/scala/.gitkeep
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/test-refined/shared/src/main/scala/zio/test/refined/BooleanInstances.scala b/test-refined/src/main/scala/zio/test/refined/BooleanInstances.scala
similarity index 100%
rename from test-refined/shared/src/main/scala/zio/test/refined/BooleanInstances.scala
rename to test-refined/src/main/scala/zio/test/refined/BooleanInstances.scala
diff --git a/test-refined/shared/src/main/scala/zio/test/refined/CharInstances.scala b/test-refined/src/main/scala/zio/test/refined/CharInstances.scala
similarity index 100%
rename from test-refined/shared/src/main/scala/zio/test/refined/CharInstances.scala
rename to test-refined/src/main/scala/zio/test/refined/CharInstances.scala
diff --git a/test-refined/shared/src/main/scala/zio/test/refined/CollectionInstances.scala b/test-refined/src/main/scala/zio/test/refined/CollectionInstances.scala
similarity index 100%
rename from test-refined/shared/src/main/scala/zio/test/refined/CollectionInstances.scala
rename to test-refined/src/main/scala/zio/test/refined/CollectionInstances.scala
diff --git a/test-refined/shared/src/main/scala/zio/test/refined/GenericInstances.scala b/test-refined/src/main/scala/zio/test/refined/GenericInstances.scala
similarity index 100%
rename from test-refined/shared/src/main/scala/zio/test/refined/GenericInstances.scala
rename to test-refined/src/main/scala/zio/test/refined/GenericInstances.scala
diff --git a/test-refined/shared/src/main/scala/zio/test/refined/NumericInstances.scala b/test-refined/src/main/scala/zio/test/refined/NumericInstances.scala
similarity index 100%
rename from test-refined/shared/src/main/scala/zio/test/refined/NumericInstances.scala
rename to test-refined/src/main/scala/zio/test/refined/NumericInstances.scala
diff --git a/test-refined/shared/src/main/scala/zio/test/refined/StringInstances.scala b/test-refined/src/main/scala/zio/test/refined/StringInstances.scala
similarity index 100%
rename from test-refined/shared/src/main/scala/zio/test/refined/StringInstances.scala
rename to test-refined/src/main/scala/zio/test/refined/StringInstances.scala
diff --git a/test-refined/shared/src/main/scala/zio/test/refined/all.scala b/test-refined/src/main/scala/zio/test/refined/all.scala
similarity index 100%
rename from test-refined/shared/src/main/scala/zio/test/refined/all.scala
rename to test-refined/src/main/scala/zio/test/refined/all.scala
diff --git a/test-refined/shared/src/main/scala/zio/test/refined/types/CharInstances.scala b/test-refined/src/main/scala/zio/test/refined/types/CharInstances.scala
similarity index 100%
rename from test-refined/shared/src/main/scala/zio/test/refined/types/CharInstances.scala
rename to test-refined/src/main/scala/zio/test/refined/types/CharInstances.scala
diff --git a/test-refined/shared/src/main/scala/zio/test/refined/types/DigitInstances.scala b/test-refined/src/main/scala/zio/test/refined/types/DigitInstances.scala
similarity index 100%
rename from test-refined/shared/src/main/scala/zio/test/refined/types/DigitInstances.scala
rename to test-refined/src/main/scala/zio/test/refined/types/DigitInstances.scala
diff --git a/test-refined/shared/src/main/scala/zio/test/refined/types/NetInstances.scala b/test-refined/src/main/scala/zio/test/refined/types/NetInstances.scala
similarity index 100%
rename from test-refined/shared/src/main/scala/zio/test/refined/types/NetInstances.scala
rename to test-refined/src/main/scala/zio/test/refined/types/NetInstances.scala
diff --git a/test-refined/shared/src/main/scala/zio/test/refined/types/NumericInstances.scala b/test-refined/src/main/scala/zio/test/refined/types/NumericInstances.scala
similarity index 100%
rename from test-refined/shared/src/main/scala/zio/test/refined/types/NumericInstances.scala
rename to test-refined/src/main/scala/zio/test/refined/types/NumericInstances.scala
diff --git a/test-refined/shared/src/main/scala/zio/test/refined/types/StringInstance.scala b/test-refined/src/main/scala/zio/test/refined/types/StringInstance.scala
similarity index 100%
rename from test-refined/shared/src/main/scala/zio/test/refined/types/StringInstance.scala
rename to test-refined/src/main/scala/zio/test/refined/types/StringInstance.scala
diff --git a/test-refined/shared/src/main/scala/zio/test/refined/types/TimeInstances.scala b/test-refined/src/main/scala/zio/test/refined/types/TimeInstances.scala
similarity index 100%
rename from test-refined/shared/src/main/scala/zio/test/refined/types/TimeInstances.scala
rename to test-refined/src/main/scala/zio/test/refined/types/TimeInstances.scala
diff --git a/test-refined/shared/src/main/scala/zio/test/refined/types/all.scala b/test-refined/src/main/scala/zio/test/refined/types/all.scala
similarity index 100%
rename from test-refined/shared/src/main/scala/zio/test/refined/types/all.scala
rename to test-refined/src/main/scala/zio/test/refined/types/all.scala
diff --git a/test-scalacheck/shared/src/main/scala/zio/test/scalacheck/package.scala b/test-scalacheck/src/main/scala/zio/test/scalacheck/package.scala
similarity index 100%
rename from test-scalacheck/shared/src/main/scala/zio/test/scalacheck/package.scala
rename to test-scalacheck/src/main/scala/zio/test/scalacheck/package.scala
diff --git a/test-scalacheck/shared/src/test/scala/zio/test/scalacheck/AssertionSpec.scala b/test-scalacheck/src/test/scala/zio/test/scalacheck/AssertionSpec.scala
similarity index 100%
rename from test-scalacheck/shared/src/test/scala/zio/test/scalacheck/AssertionSpec.scala
rename to test-scalacheck/src/test/scala/zio/test/scalacheck/AssertionSpec.scala