diff --git a/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWMaterialsPlugin.scala b/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWMaterialsPlugin.scala index 44e0f97..52cf61a 100644 --- a/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWMaterialsPlugin.scala +++ b/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWMaterialsPlugin.scala @@ -20,16 +20,25 @@ val akka = "2.6.14" val akkaHttp = "10.2.4" val elastic4s = "7.12.2" + val http4s = "0.23.10" + val http4sPac4J = "4.0.0" + val laminar = "0.14.2" + val laminext = laminar + val pac4j = "5.2.0" val play = "2.8.8" val playJson = "2.9.2" val scalaTest = "3.2.9" + val tapir = "0.20.0-M10" val zio = "2.0.0-RC2" - val zioConfig = "1.0.10" + val zioConfig = "3.0.0-RC2" + val zioInteropCats = "3.3.0-RC2" val zioJson = "0.3.0-RC3" - val zioLogging = "0.5.11" - val zioPrelude = "1.0.0-RC8" + val zioLogging = "2.0.0-RC5" + val zioPrelude = "1.0.0-RC10" val zioZMX = "0.0.11" - val laminar = "0.14.2" + val logbackClassic = "1.2.10" + val waypoint = "0.5.0" + val urlDsl = "0.4.0" } object IWMaterialsDeps { @@ -55,7 +64,7 @@ if (config.isEmpty) None else Some(config.map(_.name).mkString(",")) ) - val zio: Def.Setting[_] = libraryDependencies += zioOrg %%% "zio" % V.zio + lazy val zio: Def.Setting[_] = libraryDependencies += zioOrg %%% "zio" % V.zio def zioTest(c: Configuration*): Def.Setting[_] = zioLib("test", V.zio, c: _*) @@ -63,15 +72,21 @@ def zioTestSbt(c: Configuration*): Def.Setting[_] = zioLib("test-sbt", V.zio, c: _*) - val zioConfig: Def.Setting[_] = zioLib("config", V.zioConfig) - val zioConfigTypesafe: Def.Setting[_] = zioLib("config-typesafe", V.zioConfig) - val zioConfigMagnolia: Def.Setting[_] = zioLib("config-magnolia", V.zioConfig) + lazy val zioConfig: Def.Setting[_] = zioLib("config", V.zioConfig) + lazy val zioConfigTypesafe: Def.Setting[_] = + zioLib("config-typesafe", V.zioConfig) + lazy val zioConfigMagnolia: Def.Setting[_] = + zioLib("config-magnolia", V.zioConfig) - val zioJson: Def.Setting[_] = zioLib("json", V.zioJson) - val zioLogging: Def.Setting[_] = zioLib("logging", V.zioLogging) - val zioPrelude: Def.Setting[_] = zioLib("prelude", V.zioPrelude) - val zioStreams: Def.Setting[_] = zioLib("streams", V.zio) - val zioZMX: Def.Setting[_] = zioLib("zmx", V.zioZMX) + lazy val zioJson: Def.Setting[_] = zioLib("json", V.zioJson) + lazy val zioLogging: Def.Setting[_] = zioLib("logging", V.zioLogging) + lazy val zioLoggingSlf4j: Def.Setting[_] = + zioLib("logging-slf4j", V.zioLogging) + lazy val zioPrelude: Def.Setting[_] = zioLib("prelude", V.zioPrelude) + lazy val zioStreams: Def.Setting[_] = zioLib("streams", V.zio) + lazy val zioZMX: Def.Setting[_] = zioLib("zmx", V.zioZMX) + lazy val zioInteropCats: Def.Setting[_] = + zioLib("interop-cats", V.zioInteropCats) def useZIO(testConf: Configuration*): Seq[Def.Setting[_]] = Seq( zio, @@ -92,61 +107,87 @@ zioPrelude ) + private val tapirOrg = "com.softwaremill.sttp.tapir" + private def tapirLib(name: String): Def.Setting[_] = + libraryDependencies += tapirOrg %% s"tapir-$name" % V.tapir + + lazy val tapirCore: Def.Setting[_] = tapirLib("core") + lazy val tapirZIO: Def.Setting[_] = tapirLib("zio") + lazy val tapirZIOHttp4sServer: Def.Setting[_] = tapirLib("zio-http4s-server") + + lazy val http4sBlazeServer: Def.Setting[_] = + libraryDependencies += "org.http4s" %% "http4s-blaze-server" % V.http4s + + lazy val http4sPac4J: Def.Setting[_] = + libraryDependencies += "org.pac4j" %% "http4s-pac4j" % V.http4sPac4J + lazy val pac4jOIDC: Def.Setting[_] = + libraryDependencies += "org.pac4j" % "pac4j-oidc" % V.pac4j + private val akkaOrg = "com.typesafe.akka" - val akkaActor: Def.Setting[_] = + lazy val akkaActor: Def.Setting[_] = libraryDependencies += akkaOrg %% "akka-actor" % V.akka - val akkaActorTyped: Def.Setting[_] = + lazy val akkaActorTyped: Def.Setting[_] = libraryDependencies += akkaOrg %% "akka-actor-typed" % V.akka - val akkaHttp: Def.Setting[_] = + lazy val akkaHttp: Def.Setting[_] = libraryDependencies += akkaOrg %% "akka-http" % V.akkaHttp - val akkaHttpSprayJson: Def.Setting[_] = + lazy val akkaHttpSprayJson: Def.Setting[_] = libraryDependencies += akkaOrg %% "akka-http-spray-json" % V.akkaHttp - val akkaStream: Def.Setting[_] = + lazy val akkaStream: Def.Setting[_] = libraryDependencies += akkaOrg %% "akka-stream" % V.akka - val akkaPersistenceTestKit: Def.Setting[_] = + lazy val akkaPersistenceTestKit: Def.Setting[_] = libraryDependencies += akkaOrg %% "akka-persistence-testkit" % V.akka - val scalaTest: Def.Setting[_] = + lazy val scalaTest: Def.Setting[_] = libraryDependencies += "org.scalatest" %%% "scalatest" % V.scalaTest - val scalaTestPlusScalacheck: Def.Setting[_] = + lazy val scalaTestPlusScalacheck: Def.Setting[_] = libraryDependencies += "org.scalatestplus" %% "scalacheck-1-15" % "3.2.9.0" - val playScalaTest: Def.Setting[_] = + lazy val playScalaTest: Def.Setting[_] = libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.1.0" private val playOrg = "com.typesafe.play" - val playMailer: Def.Setting[_] = + lazy val playMailer: Def.Setting[_] = libraryDependencies += playOrg %% "play-mailer" % "8.0.1" - val playServer: Def.Setting[_] = + lazy val playServer: Def.Setting[_] = libraryDependencies += playOrg %% "play-server" % V.play - val playAkkaServer: Def.Setting[_] = + lazy val playAkkaServer: Def.Setting[_] = libraryDependencies += playOrg %% "play-akka-http-server" % V.play - val play: Def.Setting[_] = libraryDependencies += playOrg %% "play" % V.play - val playAhcWs: Def.Setting[_] = + lazy val play: Def.Setting[_] = + libraryDependencies += playOrg %% "play" % V.play + lazy val playAhcWs: Def.Setting[_] = libraryDependencies += playOrg %% "play-ahc-ws" % V.play - val playJson: Def.Setting[_] = + lazy val playJson: Def.Setting[_] = libraryDependencies += playOrg %%% "play-json" % V.playJson private val elastic4sOrg = "com.sksamuel.elastic4s" - val useElastic4S: Def.Setting[_] = libraryDependencies ++= Seq( + lazy val useElastic4S: Def.Setting[_] = libraryDependencies ++= Seq( elastic4sOrg %% "elastic4s-core" % V.elastic4s, elastic4sOrg %% "elastic4s-client-akka" % V.elastic4s, elastic4sOrg %% "elastic4s-http-streams" % V.elastic4s, elastic4sOrg %% "elastic4s-json-play" % V.elastic4s ) - val laminar: Def.Setting[_] = + lazy val laminar: Def.Setting[_] = libraryDependencies += "com.raquo" %%% "laminar" % V.laminar - val laminextTailwind: Def.Setting[_] = - libraryDependencies += "io.laminext" %%% "tailwind" % "0.13.10" + private def laminext(name: String): Def.Setting[_] = + libraryDependencies += "io.laminext" %%% name % V.laminar - val laminextFetch: Def.Setting[_] = - libraryDependencies += "io.laminext" %%% "fetch" % "0.13.10" + lazy val laminextCore: Def.Setting[_] = laminext("core") + lazy val laminextTailwind: Def.Setting[_] = laminext("tailwind") + lazy val laminextFetch: Def.Setting[_] = laminext("fetch") + lazy val laminextValidationCore: Def.Setting[_] = laminext("validation-core") + lazy val laminextUI: Def.Setting[_] = laminext("ui") - val addScalaJavaTime: Def.Setting[_] = + lazy val waypoint: Def.Setting[_] = + libraryDependencies += "com.raquo" %%% "waypoint" % V.waypoint + + lazy val urlDsl: Def.Setting[_] = + libraryDependencies += "be.doeraene" %%% "url-dsl" % V.urlDsl + + lazy val addScalaJavaTime: Def.Setting[_] = libraryDependencies += "io.github.cquiroz" %%% "scala-java-time" % "2.3.0" - val addScalaJavaLocales: Def.Setting[_] = + lazy val addScalaJavaLocales: Def.Setting[_] = libraryDependencies += "io.github.cquiroz" %%% "scala-java-locales" % "1.2.1" def useScalaJavaTimeAndLocales(proj: Project): Project = @@ -188,4 +229,7 @@ z == "Europe/Prague" || z == "CET" || z == "Etc/UTC" || z == "UTC" } ) + + lazy val logbackClassic: Def.Setting[_] = + libraryDependencies += "ch.qos.logback" % "logback-classic" % V.logbackClassic % Runtime } diff --git a/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWMaterialsPlugin.scala b/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWMaterialsPlugin.scala index 44e0f97..52cf61a 100644 --- a/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWMaterialsPlugin.scala +++ b/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWMaterialsPlugin.scala @@ -20,16 +20,25 @@ val akka = "2.6.14" val akkaHttp = "10.2.4" val elastic4s = "7.12.2" + val http4s = "0.23.10" + val http4sPac4J = "4.0.0" + val laminar = "0.14.2" + val laminext = laminar + val pac4j = "5.2.0" val play = "2.8.8" val playJson = "2.9.2" val scalaTest = "3.2.9" + val tapir = "0.20.0-M10" val zio = "2.0.0-RC2" - val zioConfig = "1.0.10" + val zioConfig = "3.0.0-RC2" + val zioInteropCats = "3.3.0-RC2" val zioJson = "0.3.0-RC3" - val zioLogging = "0.5.11" - val zioPrelude = "1.0.0-RC8" + val zioLogging = "2.0.0-RC5" + val zioPrelude = "1.0.0-RC10" val zioZMX = "0.0.11" - val laminar = "0.14.2" + val logbackClassic = "1.2.10" + val waypoint = "0.5.0" + val urlDsl = "0.4.0" } object IWMaterialsDeps { @@ -55,7 +64,7 @@ if (config.isEmpty) None else Some(config.map(_.name).mkString(",")) ) - val zio: Def.Setting[_] = libraryDependencies += zioOrg %%% "zio" % V.zio + lazy val zio: Def.Setting[_] = libraryDependencies += zioOrg %%% "zio" % V.zio def zioTest(c: Configuration*): Def.Setting[_] = zioLib("test", V.zio, c: _*) @@ -63,15 +72,21 @@ def zioTestSbt(c: Configuration*): Def.Setting[_] = zioLib("test-sbt", V.zio, c: _*) - val zioConfig: Def.Setting[_] = zioLib("config", V.zioConfig) - val zioConfigTypesafe: Def.Setting[_] = zioLib("config-typesafe", V.zioConfig) - val zioConfigMagnolia: Def.Setting[_] = zioLib("config-magnolia", V.zioConfig) + lazy val zioConfig: Def.Setting[_] = zioLib("config", V.zioConfig) + lazy val zioConfigTypesafe: Def.Setting[_] = + zioLib("config-typesafe", V.zioConfig) + lazy val zioConfigMagnolia: Def.Setting[_] = + zioLib("config-magnolia", V.zioConfig) - val zioJson: Def.Setting[_] = zioLib("json", V.zioJson) - val zioLogging: Def.Setting[_] = zioLib("logging", V.zioLogging) - val zioPrelude: Def.Setting[_] = zioLib("prelude", V.zioPrelude) - val zioStreams: Def.Setting[_] = zioLib("streams", V.zio) - val zioZMX: Def.Setting[_] = zioLib("zmx", V.zioZMX) + lazy val zioJson: Def.Setting[_] = zioLib("json", V.zioJson) + lazy val zioLogging: Def.Setting[_] = zioLib("logging", V.zioLogging) + lazy val zioLoggingSlf4j: Def.Setting[_] = + zioLib("logging-slf4j", V.zioLogging) + lazy val zioPrelude: Def.Setting[_] = zioLib("prelude", V.zioPrelude) + lazy val zioStreams: Def.Setting[_] = zioLib("streams", V.zio) + lazy val zioZMX: Def.Setting[_] = zioLib("zmx", V.zioZMX) + lazy val zioInteropCats: Def.Setting[_] = + zioLib("interop-cats", V.zioInteropCats) def useZIO(testConf: Configuration*): Seq[Def.Setting[_]] = Seq( zio, @@ -92,61 +107,87 @@ zioPrelude ) + private val tapirOrg = "com.softwaremill.sttp.tapir" + private def tapirLib(name: String): Def.Setting[_] = + libraryDependencies += tapirOrg %% s"tapir-$name" % V.tapir + + lazy val tapirCore: Def.Setting[_] = tapirLib("core") + lazy val tapirZIO: Def.Setting[_] = tapirLib("zio") + lazy val tapirZIOHttp4sServer: Def.Setting[_] = tapirLib("zio-http4s-server") + + lazy val http4sBlazeServer: Def.Setting[_] = + libraryDependencies += "org.http4s" %% "http4s-blaze-server" % V.http4s + + lazy val http4sPac4J: Def.Setting[_] = + libraryDependencies += "org.pac4j" %% "http4s-pac4j" % V.http4sPac4J + lazy val pac4jOIDC: Def.Setting[_] = + libraryDependencies += "org.pac4j" % "pac4j-oidc" % V.pac4j + private val akkaOrg = "com.typesafe.akka" - val akkaActor: Def.Setting[_] = + lazy val akkaActor: Def.Setting[_] = libraryDependencies += akkaOrg %% "akka-actor" % V.akka - val akkaActorTyped: Def.Setting[_] = + lazy val akkaActorTyped: Def.Setting[_] = libraryDependencies += akkaOrg %% "akka-actor-typed" % V.akka - val akkaHttp: Def.Setting[_] = + lazy val akkaHttp: Def.Setting[_] = libraryDependencies += akkaOrg %% "akka-http" % V.akkaHttp - val akkaHttpSprayJson: Def.Setting[_] = + lazy val akkaHttpSprayJson: Def.Setting[_] = libraryDependencies += akkaOrg %% "akka-http-spray-json" % V.akkaHttp - val akkaStream: Def.Setting[_] = + lazy val akkaStream: Def.Setting[_] = libraryDependencies += akkaOrg %% "akka-stream" % V.akka - val akkaPersistenceTestKit: Def.Setting[_] = + lazy val akkaPersistenceTestKit: Def.Setting[_] = libraryDependencies += akkaOrg %% "akka-persistence-testkit" % V.akka - val scalaTest: Def.Setting[_] = + lazy val scalaTest: Def.Setting[_] = libraryDependencies += "org.scalatest" %%% "scalatest" % V.scalaTest - val scalaTestPlusScalacheck: Def.Setting[_] = + lazy val scalaTestPlusScalacheck: Def.Setting[_] = libraryDependencies += "org.scalatestplus" %% "scalacheck-1-15" % "3.2.9.0" - val playScalaTest: Def.Setting[_] = + lazy val playScalaTest: Def.Setting[_] = libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.1.0" private val playOrg = "com.typesafe.play" - val playMailer: Def.Setting[_] = + lazy val playMailer: Def.Setting[_] = libraryDependencies += playOrg %% "play-mailer" % "8.0.1" - val playServer: Def.Setting[_] = + lazy val playServer: Def.Setting[_] = libraryDependencies += playOrg %% "play-server" % V.play - val playAkkaServer: Def.Setting[_] = + lazy val playAkkaServer: Def.Setting[_] = libraryDependencies += playOrg %% "play-akka-http-server" % V.play - val play: Def.Setting[_] = libraryDependencies += playOrg %% "play" % V.play - val playAhcWs: Def.Setting[_] = + lazy val play: Def.Setting[_] = + libraryDependencies += playOrg %% "play" % V.play + lazy val playAhcWs: Def.Setting[_] = libraryDependencies += playOrg %% "play-ahc-ws" % V.play - val playJson: Def.Setting[_] = + lazy val playJson: Def.Setting[_] = libraryDependencies += playOrg %%% "play-json" % V.playJson private val elastic4sOrg = "com.sksamuel.elastic4s" - val useElastic4S: Def.Setting[_] = libraryDependencies ++= Seq( + lazy val useElastic4S: Def.Setting[_] = libraryDependencies ++= Seq( elastic4sOrg %% "elastic4s-core" % V.elastic4s, elastic4sOrg %% "elastic4s-client-akka" % V.elastic4s, elastic4sOrg %% "elastic4s-http-streams" % V.elastic4s, elastic4sOrg %% "elastic4s-json-play" % V.elastic4s ) - val laminar: Def.Setting[_] = + lazy val laminar: Def.Setting[_] = libraryDependencies += "com.raquo" %%% "laminar" % V.laminar - val laminextTailwind: Def.Setting[_] = - libraryDependencies += "io.laminext" %%% "tailwind" % "0.13.10" + private def laminext(name: String): Def.Setting[_] = + libraryDependencies += "io.laminext" %%% name % V.laminar - val laminextFetch: Def.Setting[_] = - libraryDependencies += "io.laminext" %%% "fetch" % "0.13.10" + lazy val laminextCore: Def.Setting[_] = laminext("core") + lazy val laminextTailwind: Def.Setting[_] = laminext("tailwind") + lazy val laminextFetch: Def.Setting[_] = laminext("fetch") + lazy val laminextValidationCore: Def.Setting[_] = laminext("validation-core") + lazy val laminextUI: Def.Setting[_] = laminext("ui") - val addScalaJavaTime: Def.Setting[_] = + lazy val waypoint: Def.Setting[_] = + libraryDependencies += "com.raquo" %%% "waypoint" % V.waypoint + + lazy val urlDsl: Def.Setting[_] = + libraryDependencies += "be.doeraene" %%% "url-dsl" % V.urlDsl + + lazy val addScalaJavaTime: Def.Setting[_] = libraryDependencies += "io.github.cquiroz" %%% "scala-java-time" % "2.3.0" - val addScalaJavaLocales: Def.Setting[_] = + lazy val addScalaJavaLocales: Def.Setting[_] = libraryDependencies += "io.github.cquiroz" %%% "scala-java-locales" % "1.2.1" def useScalaJavaTimeAndLocales(proj: Project): Project = @@ -188,4 +229,7 @@ z == "Europe/Prague" || z == "CET" || z == "Etc/UTC" || z == "UTC" } ) + + lazy val logbackClassic: Def.Setting[_] = + libraryDependencies += "ch.qos.logback" % "logback-classic" % V.logbackClassic % Runtime } diff --git a/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProjectPlugin.scala b/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProjectPlugin.scala index e853c82..4e9e2bb 100644 --- a/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProjectPlugin.scala +++ b/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProjectPlugin.scala @@ -15,7 +15,7 @@ object autoImport { val scala2Version = "2.13.8" - val scala3Version = "3.1.0" + val scala3Version = "3.1.1" def publishToIW: Seq[Def.Setting[_]] = inThisBuild( List( publishTo := {