Skip to content

Commit 7417c0d

Browse files
committed
chore: Update dependencies and prepare code for Scala 3.4+
1 parent 89a8a0a commit 7417c0d

17 files changed

Lines changed: 82 additions & 69 deletions

File tree

build.sbt

Lines changed: 40 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -61,21 +61,31 @@ ThisBuild / credentials ++= (
6161
val common = Seq(
6262
Test / fork := true,
6363
// The key is ised by sbt-git, despite the misleading lint warning, hence the Invisible Keyrank
64-
git.useGitDescribe.withRank(KeyRanks.Invisible) := true,
64+
git.useGitDescribe.withRank(KeyRanks.Invisible) := true,
65+
libraryDependencies ++= {
66+
CrossVersion.partialVersion(scalaVersion.value) match {
67+
case Some((2, 13)) => Seq(
68+
compilerPlugin("com.olegpy" %% "better-monadic-for" % "0.3.1"),
69+
compilerPlugin("org.typelevel" % "kind-projector" % "0.13.4" cross CrossVersion.full),
70+
)
71+
case _ => Seq.empty
72+
}
73+
},
74+
scalacOptions ++= {
75+
CrossVersion.partialVersion(scalaVersion.value) match {
76+
case Some((2, 13)) => Seq("-Xsource:3")
77+
case _ => Seq.empty
78+
}
79+
},
6580
publishMavenStyle := true,
6681
libraryDependencies ++= Seq(
67-
compilerPlugin("com.olegpy" %% "better-monadic-for" % "0.3.1"),
68-
compilerPlugin("org.typelevel" % "kind-projector" % "0.13.4" cross CrossVersion.full)
69-
).filterNot(_ => scalaVersion.value.startsWith("3.")),
70-
libraryDependencies ++= Seq(
71-
"org.typelevel" %% "cats-core" % "2.10.0",
72-
"org.typelevel" %% "cats-effect" % "3.5.1",
73-
"org.scalameta" %% "munit" % "0.7.29" % Test,
74-
"org.scalacheck" %% "scalacheck" % "1.17.0" % Test,
75-
"org.typelevel" %% "munit-cats-effect-3" % "1.0.7" % Test,
76-
"org.typelevel" %% "scalacheck-effect-munit" % "1.0.4" % Test
77-
),
78-
usePgpKeyHex("E71D99CFF3D96821F3FB612490019D40886E2FB3")
82+
"org.typelevel" %% "cats-core" % "2.13.0",
83+
"org.typelevel" %% "cats-effect" % "3.6.3",
84+
"org.scalameta" %% "munit" % "1.2.1" % Test,
85+
"org.scalacheck" %% "scalacheck" % "1.19.0" % Test,
86+
"org.typelevel" %% "munit-cats-effect" % "2.1.0" % Test,
87+
"org.typelevel" %% "scalacheck-effect-munit" % "2.1.0-RC1" % Test
88+
)
7989
)
8090

8191
lazy val metricsCommon = projectMatrix
@@ -84,14 +94,15 @@ lazy val metricsCommon = projectMatrix
8494
.enablePlugins(GitVersioning)
8595
.settings(common :+ (name := "natchez-extras-metrics"))
8696

87-
val log4catsVersion = "2.6.0"
88-
val natchezVersion = "0.3.4"
89-
val http4sMilestoneVersion = "1.0.0-M40"
90-
val http4sStableVersion = "0.23.23"
91-
val circeVersion = "0.14.3"
92-
val slf4jVersion = "1.7.36"
93-
val fs2Version = "3.9.1"
94-
val doobieVersion = "1.0.0-RC5"
97+
val log4catsVersion = "2.7.1"
98+
val kittensVersion = "3.5.0"
99+
val natchezVersion = "0.3.8"
100+
val http4sMilestoneVersion = "1.0.0-M46"
101+
val http4sStableVersion = "0.23.33"
102+
val circeVersion = "0.14.15"
103+
val slf4jVersion = "2.0.17"
104+
val fs2Version = "3.12.2"
105+
val doobieVersion = "1.0.0-RC11"
95106
val doobieLegacyVersion = "1.0.0-RC2"
96107

97108
lazy val natchezDatadog = projectMatrix
@@ -139,10 +150,10 @@ lazy val natchezSlf4j = projectMatrix
139150
.settings(common :+ (name := "natchez-extras-slf4j"))
140151
.settings(
141152
libraryDependencies ++= Seq(
142-
"org.tpolecat" %% "natchez-core" % natchezVersion,
143-
"org.slf4j" % "slf4j-api" % slf4jVersion,
144-
"uk.org.lidalia" % "slf4j-test" % "1.2.0" % Test
145-
)
153+
"org.tpolecat" %% "natchez-core" % natchezVersion,
154+
"org.slf4j" % "slf4j-api" % slf4jVersion,
155+
"com.github.valfirst" % "slf4j-test" % "3.0.3" % Test
156+
)
146157
)
147158

148159
lazy val natchezHttp4s = projectMatrix
@@ -209,10 +220,10 @@ lazy val natchezFs2 = projectMatrix
209220
.settings(common :+ (name := "natchez-extras-fs2"))
210221
.settings(
211222
libraryDependencies ++= Seq(
212-
"org.typelevel" %% "kittens" % "3.0.0",
213-
"org.tpolecat" %% "natchez-core" % natchezVersion,
214-
"co.fs2" %% "fs2-core" % fs2Version
215-
)
223+
"org.typelevel" %% "kittens" % kittensVersion,
224+
"org.tpolecat" %% "natchez-core" % natchezVersion,
225+
"co.fs2" %% "fs2-core" % fs2Version
226+
)
216227
)
217228

218229
lazy val natchezDoobie = projectMatrix

natchez-ce3/src/main/scala/com/ovoenergy/natchez/extras/combine/ce3/IOLocalTrace.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class IOLocalTrace(private val local: IOLocal[Span[IO]]) extends Trace[IO] {
1313
local.get.flatMap(_.kernel)
1414

1515
override def put(fields: (String, TraceValue)*): IO[Unit] =
16-
local.get.flatMap(_.put(fields: _*))
16+
local.get.flatMap(_.put(fields *))
1717

1818
private def scope[G](t: Span[IO])(f: IO[G]): IO[G] =
1919
MonadCancel[IO, Throwable].bracket(local.getAndSet(t))(_ => f)(local.set)
@@ -32,9 +32,9 @@ class IOLocalTrace(private val local: IOLocal[Span[IO]]) extends Trace[IO] {
3232
local.get.flatMap(_.traceUri)
3333

3434
override def attachError(err: Throwable, fields: (String, TraceValue)*): IO[Unit] =
35-
local.get.flatMap(_.attachError(err, fields: _*))
35+
local.get.flatMap(_.attachError(err, fields *))
3636
override def log(event: String): IO[Unit] = local.get.flatMap(_.log(event))
37-
override def log(fields: (String, TraceValue)*): IO[Unit] = local.get.flatMap(_.log(fields: _*))
37+
override def log(fields: (String, TraceValue)*): IO[Unit] = local.get.flatMap(_.log(fields *))
3838
override def spanR(name: String, options: Span.Options): Resource[IO, IO ~> IO] =
3939
for {
4040
parent <- Resource.eval(local.get)

natchez-extras-combine/src/main/scala/com/ovoenergy/natchez/extras/combine/Combine.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ object Combine {
2020
(s1.kernel, s2.kernel).mapN { case (k1, k2) => Kernel(k1.toHeaders ++ k2.toHeaders) }
2121

2222
def put(fields: (String, TraceValue)*): F[Unit] =
23-
(s1.put(fields: _*), s2.put(fields: _*)).tupled.as(())
23+
(s1.put(fields *), s2.put(fields *)).tupled.as(())
2424

2525
def traceId: F[Option[String]] =
2626
OptionT(s1.traceId).orElseF(s2.traceId).value
@@ -32,11 +32,11 @@ object Combine {
3232
OptionT(s1.traceUri).orElseF(s2.traceUri).value
3333

3434
def attachError(err: Throwable, fields: (String, TraceValue)*): F[Unit] =
35-
(s1.attachError(err, fields: _*), s2.attachError(err, fields: _*)).tupled.as(())
35+
(s1.attachError(err, fields *), s2.attachError(err, fields *)).tupled.as(())
3636

3737
def log(event: String): F[Unit] = (s1.log(event), s2.log(event)).tupled.as(())
3838

39-
def log(fields: (String, TraceValue)*): F[Unit] = (s1.log(fields: _*), s2.log(fields: _*)).tupled.as(())
39+
def log(fields: (String, TraceValue)*): F[Unit] = (s1.log(fields *), s2.log(fields *)).tupled.as(())
4040

4141
def span(name: String, options: Span.Options): Resource[F, Span[F]] =
4242
(s1.span(name, options), s2.span(name, options)).mapN[Span[F]](combineSpan[F])

natchez-extras-datadog/src/main/scala/com/ovoenergy/natchez/extras/datadog/DatadogSpan.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@ case class DatadogSpan[F[_]: Async](
5959
Monad[F].pure(None)
6060

6161
override def attachError(err: Throwable, fields: (String, TraceValue)*): F[Unit] =
62-
put(Tags.error(true) :: fields.toList: _*)
62+
put((Tags.error(true) :: fields.toList) *)
6363

6464
override def log(event: String): F[Unit] = put("event" -> TraceValue.StringValue(event))
6565

66-
override def log(fields: (String, TraceValue)*): F[Unit] = put(fields: _*)
66+
override def log(fields: (String, TraceValue)*): F[Unit] = put(fields *)
6767
}
6868

6969
object DatadogSpan {

natchez-extras-dogstatsd/src/main/scala/com/ovoenergy/natchez/extras/dogstatsd/Dogstatsd.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ object Dogstatsd {
117117
/**
118118
* Create an instance of Metrics that uses a UDP socket to communicate with Datadog.
119119
*/
120-
def apply[F[_]: Network](config: Config): Resource[F, Metrics[F] with Events[F]] = {
120+
def apply[F[_]: Network](config: Config): Resource[F, Metrics[F] & Events[F]] = {
121121
Network[F].openDatagramSocket().map { sock =>
122122
new Metrics[F] with Events[F] {
123123
def counter(m: Metric)(value: Long): F[Unit] =

natchez-extras-doobie-legacy/src/main/scala/com/ovoenergy/natchez/extras/doobie/TracedTransactor.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ object TracedTransactor {
2020
transactor: Transactor[F]
2121
): Transactor[Traced[F, *]] = {
2222
val kleisliTransactor = transactor
23-
.mapK(Kleisli.liftK[F, Span[F]])(implicitly, Async.asyncForKleisli(implicitly))
23+
.mapK(Kleisli.liftK[F, Span[F]])(using implicitly, Async.asyncForKleisli(implicitly))
2424
trace(ServiceAndResource(s"$service-db", DefaultResourceName), kleisliTransactor)
2525
}
2626

natchez-extras-doobie-legacy/src/test/scala/com/ovoenergy/natchez/extras/doobie/TracedTransactorTest.scala

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,17 @@ class TracedTransactorTest extends CatsEffectSuite {
3535
IO.pure(None)
3636
def traceUri: IO[Option[URI]] =
3737
IO.pure(None)
38-
def attachError(err: Throwable, fields: (String, TraceValue)*): IO[Unit] =
39-
put(Tags.error(true) :: fields.toList: _*)
38+
def attachError(err: Throwable, fields: (String, TraceValue)*): IO[Unit] = {
39+
val tags = Tags.error(true) :: fields.toList
40+
put(tags *)
41+
}
4042
def log(event: String): IO[Unit] = put("event" -> TraceValue.StringValue(event))
41-
def log(fields: (String, TraceValue)*): IO[Unit] = put(fields: _*)
43+
def log(fields: (String, TraceValue)*): IO[Unit] = put(fields *)
4244
}
4345
a.run(spanMock).attempt.flatMap(_ => sps.get)
4446
}
4547

46-
val database: SyncIO[FunFixture[Transactor[Traced[IO, *]]]] = ResourceFixture(
48+
val database: SyncIO[FunFixture[Transactor[Traced[IO, *]]]] = ResourceFunFixture(
4749
newH2Transactor[IO]("jdbc:h2:mem:test", "foo", "bar", global).map(TracedTransactor("test", _))
4850
)
4951

natchez-extras-doobie/src/test/scala/com/ovoenergy/natchez/extras/doobie/TracedTransactorTest.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ class TracedTransactorTest extends CatsEffectSuite {
3636
def traceUri: IO[Option[URI]] =
3737
IO.pure(None)
3838
def attachError(err: Throwable, fields: (String, TraceValue)*): IO[Unit] =
39-
put(Tags.error(true) :: fields.toList: _*)
39+
put((Tags.error(true) :: fields.toList) *)
4040
def log(event: String): IO[Unit] = put("event" -> TraceValue.StringValue(event))
41-
def log(fields: (String, TraceValue)*): IO[Unit] = put(fields: _*)
41+
def log(fields: (String, TraceValue)*): IO[Unit] = put(fields *)
4242
}
4343
a.run(spanMock).attempt.flatMap(_ => sps.get)
4444
}
4545

46-
val database: SyncIO[FunFixture[Transactor[Traced[IO, *]]]] = ResourceFixture(
46+
val database: SyncIO[FunFixture[Transactor[Traced[IO, *]]]] = ResourceFunFixture(
4747
newH2Transactor[IO]("jdbc:h2:mem:test", "foo", "bar", global).map(TracedTransactor("test", _))
4848
)
4949

natchez-extras-fs2/src/main/scala/com/ovoenergy/natchez/extras/fs2/AllocatedSpan.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ object AllocatedSpan {
4545
def kernel: F[Kernel] =
4646
spn.kernel
4747
def put(fields: (String, TraceValue)*): F[Unit] =
48-
spn.put(fields: _*)
48+
spn.put(fields *)
4949
def span(name: String, options: Span.Options): Resource[F, Span[F]] =
5050
spn.span(name, options)
5151
def addSubmitTask(task: F[Unit]): AllocatedSpan[F] =
@@ -59,9 +59,9 @@ object AllocatedSpan {
5959
def traceUri: F[Option[URI]] =
6060
spn.traceUri
6161
def attachError(err: Throwable, fields: (String, TraceValue)*): F[Unit] =
62-
put(Tags.error(true) :: fields.toList: _*)
62+
put((Tags.error(true) :: fields.toList) *)
6363
def log(event: String): F[Unit] = put("event" -> TraceValue.StringValue(event))
64-
def log(fields: (String, TraceValue)*): F[Unit] = put(fields: _*)
64+
def log(fields: (String, TraceValue)*): F[Unit] = put(fields *)
6565
}
6666

6767
/**

natchez-extras-fs2/src/test/scala/com/ovoenergy/natchez/extras/fs2/AllocatedSpanTest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import scala.concurrent.duration._
1212
class AllocatedSpanTest extends CatsEffectSuite {
1313

1414
val testEp: SyncIO[FunFixture[TestEntryPoint[IO]]] =
15-
ResourceFixture(Resource.eval(TestEntryPoint.apply[IO]))
15+
ResourceFunFixture(Resource.eval(TestEntryPoint.apply[IO]))
1616

1717
testEp.test("should submit the span even if a pre-submit task fails") { ep =>
1818
val stream: IO[Unit] =

0 commit comments

Comments
 (0)