Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove instances dependency from slick, spray, akka, circe and play #269

Merged
merged 10 commits into from
Feb 20, 2023
50 changes: 35 additions & 15 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ lazy val doobieSettings = commonSettings ++ Seq(
libraryDependencies += optionalEnumeratum.cross(CrossVersion.for3Use2_13),
)

lazy val macroUtilsSettings = commonMacroSettings ++ Seq(
lazy val coreSettings = commonMacroSettings ++ Seq(
libraryDependencies += (scalaCheck.value % "test").cross(CrossVersion.for3Use2_13),
libraryDependencies += optionalEnumeratum
)
Expand Down Expand Up @@ -252,6 +252,23 @@ lazy val taggedMetaSettings = metaSettings ++ Seq(

lazy val instancesSettings = commonSettings

lazy val macroUtilsSettings = coreSettings ++ Seq(
Compile / scalaSource := baseDirectory.value / ".." / ".." / "core" / "src" / "main" / "scala",
Test / scalaSource := baseDirectory.value / ".." / ".." / "core" / "src" / "test" / "scala"
)

lazy val core = crossProject(JSPlatform, JVMPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
.in(file("core"))
.settings(coreSettings: _*)
.settings(publishSettings: _*)
.settings(
name := "core",
description := "Macros and utils supporting Kebs library",
moduleName := "kebs-core",
)

lazy val macroUtils = crossProject(JSPlatform, JVMPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
Expand All @@ -260,13 +277,13 @@ lazy val macroUtils = crossProject(JSPlatform, JVMPlatform)
.settings(publishSettings: _*)
.settings(
name := "macro-utils",
description := "Macros supporting Kebs library",
moduleName := "kebs-macro-utils"
description := "Macros and utils supporting Kebs library",
moduleName := "kebs-macro-utils",
)

lazy val slickSupport = project
.in(file("slick"))
.dependsOn(macroUtils.jvm, instances)
.dependsOn(core.jvm, instances % "test -> test")
.settings(slickSettings: _*)
.settings(publishSettings: _*)
.settings(disableScala("3"))
Expand All @@ -291,7 +308,7 @@ lazy val doobieSupport = project

lazy val sprayJsonMacros = project
.in(file("spray-json-macros"))
.dependsOn(macroUtils.jvm)
.dependsOn(core.jvm)
.settings(sprayJsonMacroSettings: _*)
.settings(publishSettings: _*)
.settings(disableScala("3"))
Expand All @@ -304,7 +321,7 @@ lazy val sprayJsonMacros = project

lazy val sprayJsonSupport = project
.in(file("spray-json"))
.dependsOn(sprayJsonMacros, instances)
.dependsOn(sprayJsonMacros, instances % "test -> test")
.settings(sprayJsonSettings: _*)
.settings(publishSettings: _*)
.settings(disableScala("3"))
Expand All @@ -317,7 +334,7 @@ lazy val sprayJsonSupport = project

lazy val playJsonSupport = project
.in(file("play-json"))
.dependsOn(macroUtils.jvm, instances)
.dependsOn(core.jvm, instances % "test -> test")
.settings(playJsonSettings: _*)
.settings(publishSettings: _*)
.settings(disableScala("3"))
Expand All @@ -330,7 +347,7 @@ lazy val playJsonSupport = project

lazy val circeSupport = project
.in(file("circe"))
.dependsOn(macroUtils.jvm, instances)
.dependsOn(core.jvm, instances % "test -> test")
.settings(circeSettings: _*)
.settings(crossBuildSettings: _*)
.settings(publishSettings: _*)
Expand All @@ -343,7 +360,7 @@ lazy val circeSupport = project

lazy val akkaHttpSupport = project
.in(file("akka-http"))
.dependsOn(macroUtils.jvm, instances, tagged.jvm % "test -> test", taggedMeta % "test -> test")
.dependsOn(core.jvm, instances % "test -> test", tagged.jvm % "test -> test", taggedMeta % "test -> test")
.settings(akkaHttpSettings: _*)
.settings(publishSettings: _*)
.settings(disableScala("3"))
Expand All @@ -356,7 +373,7 @@ lazy val akkaHttpSupport = project

lazy val http4sSupport = project
.in(file("http4s"))
.dependsOn(macroUtils.jvm, instances, opaque.jvm % "test -> test", tagged.jvm % "test -> test", taggedMeta % "test -> test")
.dependsOn(core.jvm, instances, opaque.jvm % "test -> test", tagged.jvm % "test -> test", taggedMeta % "test -> test")
.settings(http4sSettings: _*)
.settings(publishSettings: _*)
.settings(
Expand All @@ -368,7 +385,7 @@ lazy val http4sSupport = project

lazy val jsonschemaSupport = project
.in(file("jsonschema"))
.dependsOn(macroUtils.jvm)
.dependsOn(core.jvm)
.settings(jsonschemaSettings: _*)
.settings(publishSettings: _*)
.settings(disableScala("3"))
Expand All @@ -381,7 +398,7 @@ lazy val jsonschemaSupport = project

lazy val scalacheckSupport = project
.in(file("scalacheck"))
.dependsOn(macroUtils.jvm)
.dependsOn(core.jvm)
.settings(scalacheckSettings: _*)
.settings(publishSettings: _*)
.settings(disableScala("3"))
Expand All @@ -396,7 +413,7 @@ lazy val tagged = crossProject(JSPlatform, JVMPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Full)
.in(file("tagged"))
.dependsOn(macroUtils)
.dependsOn(core)
.settings(taggedSettings: _*)
.settings(publishSettings: _*)
.settings(disableScala("3"))
Expand All @@ -411,7 +428,7 @@ lazy val opaque = crossProject(JSPlatform, JVMPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
.in(file("opaque"))
.dependsOn(macroUtils)
.dependsOn(core)
.settings(opaqueSettings: _*)
.settings(disableScala("2.13"))
.settings(disableScala("2.12"))
Expand All @@ -427,7 +444,7 @@ lazy val opaque = crossProject(JSPlatform, JVMPlatform)
lazy val taggedMeta = project
.in(file("tagged-meta"))
.dependsOn(
macroUtils.jvm,
core.jvm,
tagged.jvm,
sprayJsonSupport % "test -> test",
circeSupport % "test -> test",
Expand Down Expand Up @@ -468,6 +485,7 @@ lazy val benchmarks = project

lazy val instances = project
.in(file("instances"))
.dependsOn(core.jvm)
.settings(instancesSettings: _*)
.settings(publishSettings: _*)
.settings(
Expand All @@ -483,6 +501,8 @@ lazy val kebs = project
tagged.js,
opaque.jvm,
opaque.js,
core.jvm,
core.js,
macroUtils.jvm,
macroUtils.js,
slickSupport,
Expand Down
3 changes: 2 additions & 1 deletion circe/src/test/scala/instances/TimeInstancesMixinTests.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ import io.circe.{Decoder, Encoder, Json}
import org.scalatest.funsuite.AnyFunSuite
import org.scalatest.matchers.should.Matchers
import pl.iterators.kebs.circe.KebsCirce
import pl.iterators.kebs.instances.InstanceConverter
import pl.iterators.kebs.instances.time.LocalDateTimeString
import pl.iterators.kebs.instances.time.mixins.{DurationNanosLong, InstantEpochMilliLong}
import pl.iterators.kebs.instances.{InstanceConverter, TimeInstances}
import pl.iterators.kebs.instances.TimeInstances

import java.time._
import java.time.format.DateTimeFormatter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package pl.iterators.kebs.instances.net
import org.scalatest.funsuite.AnyFunSuite
import org.scalatest.matchers.should.Matchers
import pl.iterators.kebs.instances.InstanceConverter
import pl.iterators.kebs.instances.InstanceConverter.DecodeErrorException
import InstanceConverter.DecodeErrorException

import java.net.URI

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ package pl.iterators.kebs.instances.time

import org.scalatest.funsuite.AnyFunSuite
import org.scalatest.matchers.should.Matchers
import pl.iterators.kebs.instances.InstanceConverter
import pl.iterators.kebs.instances.InstanceConverter.DecodeErrorException
import pl.iterators.kebs.instances.{InstanceConverter, TimeInstances}
import pl.iterators.kebs.instances.TimeInstances

import java.time._

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ package pl.iterators.kebs.instances.util

import org.scalatest.funsuite.AnyFunSuite
import org.scalatest.matchers.should.Matchers
import pl.iterators.kebs.instances.InstanceConverter
import pl.iterators.kebs.instances.InstanceConverter.DecodeErrorException
import pl.iterators.kebs.instances.{InstanceConverter, UtilInstances}
import pl.iterators.kebs.instances.UtilInstances

import java.util.{Currency, Locale, UUID}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ package instances

import org.scalatest.funsuite.AnyFunSuite
import org.scalatest.matchers.should.Matchers
import pl.iterators.kebs.instances.InstanceConverter
import pl.iterators.kebs.instances.time.LocalDateTimeString
import pl.iterators.kebs.instances.time.mixins.{DurationNanosLong, InstantEpochMilliLong}
import pl.iterators.kebs.instances.{InstanceConverter, TimeInstances}
import pl.iterators.kebs.instances.TimeInstances
import play.api.libs.json.{Format, JsNumber, JsString, JsSuccess}

import java.time._
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ package instances

import org.scalatest.funsuite.AnyFunSuite
import org.scalatest.matchers.should.Matchers
import pl.iterators.kebs.instances.InstanceConverter
import pl.iterators.kebs.instances.time.LocalDateTimeString
import pl.iterators.kebs.instances.time.mixins.{DurationNanosLong, InstantEpochMilliLong}
import pl.iterators.kebs.instances.{InstanceConverter, TimeInstances}
import pl.iterators.kebs.instances.TimeInstances
import pl.iterators.kebs.json.KebsSpray
import pl.iterators.kebs.macros.CaseClass1Rep
import spray.json._
Expand Down