Skip to content

Commit

Permalink
Split InteropTracer into a separate artifact zio-interop-tracer (#671)
Browse files Browse the repository at this point in the history
* Split InteropTracer into a separate artifact zio-interop-tracer

* scalafmt
  • Loading branch information
neko-kai authored Jun 19, 2023
1 parent 14c8b7b commit f511253
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 19 deletions.
35 changes: 26 additions & 9 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ lazy val root = project
.in(file("."))
.enablePlugins(ScalaJSPlugin)
.aggregate(
zioInteropTracerJVM,
zioInteropTracerJS,
zioInteropCatsJVM,
zioInteropCatsJS,
zioInteropCatsTestsJVM,
Expand All @@ -57,17 +59,33 @@ val disciplineScalaTestVersion = "2.2.0"
val fs2Version = "3.6.1"
val scalaJavaTimeVersion = "2.5.0"

lazy val zioInteropTracer = crossProject(JSPlatform, JVMPlatform)
.in(file("zio-interop-tracer"))
.enablePlugins(BuildInfoPlugin)
.settings(stdSettings("zio-interop-tracer"))
.settings(dottySettings)
.settings(buildInfoSettingsInteropTracer)
.settings(
libraryDependencies ++= Seq(
"dev.zio" %%% "zio-stacktracer" % zioVersion
)
)

lazy val zioInteropTracerJVM = zioInteropTracer.jvm
lazy val zioInteropTracerJS = zioInteropTracer.js

lazy val zioInteropCats = crossProject(JSPlatform, JVMPlatform)
.in(file("zio-interop-cats"))
.dependsOn(zioInteropTracer)
.enablePlugins(BuildInfoPlugin)
.settings(stdSettings("zio-interop-cats"))
.settings(buildInfoSettings)
.settings(dottySettings)
.settings(
libraryDependencies ++= {
val optLibraries0 = List(
"dev.zio" %%% "zio-managed" % zioVersion,
"dev.zio" %%% "zio-streams" % zioVersion,
"dev.zio" %%% "zio-stacktracer" % zioVersion,
"org.typelevel" %%% "cats-effect-std" % catsEffectVersion,
"org.typelevel" %%% "cats-mtl" % catsMtlVersion,
"co.fs2" %%% "fs2-core" % fs2Version,
Expand All @@ -78,10 +96,9 @@ lazy val zioInteropCats = crossProject(JSPlatform, JVMPlatform)
}
)

lazy val zioInteropCatsJVM = zioInteropCats.jvm.settings(dottySettings)
lazy val zioInteropCatsJVM = zioInteropCats.jvm

lazy val zioInteropCatsJS = zioInteropCats.js
.settings(dottySettings)
.settings(libraryDependencies += "io.github.cquiroz" %%% "scala-java-time" % scalaJavaTimeVersion % Test)

lazy val zioInteropCatsTests = crossProject(JSPlatform, JVMPlatform)
Expand All @@ -90,6 +107,7 @@ lazy val zioInteropCatsTests = crossProject(JSPlatform, JVMPlatform)
.enablePlugins(BuildInfoPlugin)
.settings(stdSettings("zio-interop-cats-tests"))
.settings(buildInfoSettings)
.settings(dottySettings)
.settings(
libraryDependencies ++= {
val optLibraries0 = List(
Expand All @@ -113,10 +131,9 @@ lazy val zioInteropCatsTests = crossProject(JSPlatform, JVMPlatform)
)
.settings(testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"))

lazy val zioInteropCatsTestsJVM = zioInteropCatsTests.jvm.settings(dottySettings)
lazy val zioInteropCatsTestsJVM = zioInteropCatsTests.jvm

lazy val zioInteropCatsTestsJS = zioInteropCatsTests.js
.settings(dottySettings)
.settings(libraryDependencies += "io.github.cquiroz" %%% "scala-java-time" % scalaJavaTimeVersion % Test)

lazy val zioTestInteropCats = crossProject(JSPlatform, JVMPlatform)
Expand All @@ -125,6 +142,7 @@ lazy val zioTestInteropCats = crossProject(JSPlatform, JVMPlatform)
.enablePlugins(BuildInfoPlugin)
.settings(stdSettings("zio-test-interop-cats"))
.settings(buildInfoSettings)
.settings(dottySettings)
.settings(publish / skip := true)
.settings(
libraryDependencies ++= {
Expand All @@ -150,16 +168,16 @@ lazy val zioTestInteropCats = crossProject(JSPlatform, JVMPlatform)
)
.settings(testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"))

lazy val zioTestInteropCatsJVM = zioTestInteropCats.jvm.settings(dottySettings)
lazy val zioTestInteropCatsJVM = zioTestInteropCats.jvm

lazy val zioTestInteropCatsJS = zioTestInteropCats.js
.settings(dottySettings)
.settings(libraryDependencies += "io.github.cquiroz" %%% "scala-java-time" % scalaJavaTimeVersion % Test)

lazy val coreOnlyTest = crossProject(JSPlatform, JVMPlatform)
.in(file("core-only-test"))
.dependsOn(zioInteropCats)
.settings(stdSettings("core-only-test"))
.settings(dottySettings)
.settings(publish / skip := true)
.settings(
libraryDependencies ++= Seq(
Expand All @@ -170,10 +188,9 @@ lazy val coreOnlyTest = crossProject(JSPlatform, JVMPlatform)
)
.settings(testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"))

lazy val coreOnlyTestJVM = coreOnlyTest.jvm.settings(dottySettings)
lazy val coreOnlyTestJVM = coreOnlyTest.jvm

lazy val coreOnlyTestJS = coreOnlyTest.js
.settings(dottySettings)
.settings(libraryDependencies += "io.github.cquiroz" %%% "scala-java-time" % scalaJavaTimeVersion % Test)

lazy val docs = project
Expand Down
6 changes: 6 additions & 0 deletions project/BuildHelper.scala
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,12 @@ object BuildHelper {
buildInfoObject := "BuildInfoInteropCats"
)

val buildInfoSettingsInteropTracer = Seq(
buildInfoKeys := Seq[BuildInfoKey](name, version, scalaVersion, sbtVersion, isSnapshot),
buildInfoPackage := "zio.internal.stacktracer",
buildInfoObject := "BuildInfoInteropTracer"
)

def optimizerOptions(optimize: Boolean) =
if (optimize) {
Seq(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@
*/
package zio.internal.stacktracer

import zio.Trace

import scala.annotation.nowarn

object InteropTracer {
@nowarn("cat=unused")
final def newTrace(f: Any): Trace = "noop".asInstanceOf[Trace]

private type Trace = Tracer.instance.Type with Tracer.Traced
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@

package zio.internal.stacktracer

import java.io.DataInputStream
import java.io.InputStream
import java.io.{ DataInputStream, InputStream }
import java.lang.invoke.SerializedLambda
import scala.annotation.switch
import scala.util.control.NonFatal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,7 @@
*/
package zio.internal.stacktracer

import zio.Trace

import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.ConcurrentMap
import java.util.concurrent.{ ConcurrentHashMap, ConcurrentMap }
import scala.util.matching.Regex

object InteropTracer {
Expand All @@ -27,9 +24,9 @@ object InteropTracer {
val cachedTrace = cache.get(clazz)
if (cachedTrace == null) {
val computedTrace = AkkaLineNumbers(f) match {
case AkkaLineNumbers.NoSourceInfo => Trace.empty
case AkkaLineNumbers.NoSourceInfo => Tracer.instance.empty

case AkkaLineNumbers.UnknownSourceFormat(_) => Trace.empty
case AkkaLineNumbers.UnknownSourceFormat(_) => Tracer.instance.empty

case AkkaLineNumbers.SourceFile(filename) =>
createTrace("<unknown>", filename.intern(), 0, 0).asInstanceOf[Trace]
Expand All @@ -53,4 +50,6 @@ object InteropTracer {
s"$location($file:$line:$column)".intern

private final val lambdaNamePattern: Regex = """\$anonfun\$(.+?)\$\d""".r

private type Trace = Tracer.instance.Type with Tracer.Traced
}

0 comments on commit f511253

Please sign in to comment.