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