Skip to content

Commit 996266f

Browse files
committed
chore: Update dependencies and prepare code for Scala 3.4+
1 parent 25341b4 commit 996266f

21 files changed

Lines changed: 99 additions & 85 deletions

File tree

.scalafmt.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version = 3.9.3
1+
version = 3.10.2
22
align = some
33
align {
44
arrowEnumeratorGenerator = false

build.sbt

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -61,21 +61,32 @@ 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+
usePgpKeyHex("E71D99CFF3D96821F3FB612490019D40886E2FB3"),
6566
publishMavenStyle := true,
66-
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.")),
67+
libraryDependencies ++= {
68+
CrossVersion.partialVersion(scalaVersion.value) match {
69+
case Some((2, 13)) => Seq(
70+
compilerPlugin("com.olegpy" %% "better-monadic-for" % "0.3.1"),
71+
compilerPlugin("org.typelevel" % "kind-projector" % "0.13.4" cross CrossVersion.full),
72+
)
73+
case _ => Seq.empty
74+
}
75+
},
76+
scalacOptions ++= {
77+
CrossVersion.partialVersion(scalaVersion.value) match {
78+
case Some((2, 13)) => Seq("-Xsource:3")
79+
case _ => Seq.empty
80+
}
81+
},
7082
libraryDependencies ++= Seq(
7183
"org.typelevel" %% "cats-core" % "2.13.0",
72-
"org.typelevel" %% "cats-effect" % "3.5.7",
73-
"org.scalameta" %% "munit" % "0.7.29" % Test,
74-
"org.scalacheck" %% "scalacheck" % "1.18.1" % Test,
75-
"org.typelevel" %% "munit-cats-effect-3" % "1.0.7" % Test,
76-
"org.typelevel" %% "scalacheck-effect-munit" % "1.0.4" % Test
84+
"org.typelevel" %% "cats-effect" % "3.6.3",
85+
"org.scalameta" %% "munit" % "1.2.1" % Test,
86+
"org.scalacheck" %% "scalacheck" % "1.19.0" % Test,
87+
"org.typelevel" %% "munit-cats-effect" % "2.1.0" % Test,
88+
"org.typelevel" %% "scalacheck-effect-munit" % "2.1.0-RC1" % Test
7789
),
78-
usePgpKeyHex("E71D99CFF3D96821F3FB612490019D40886E2FB3")
7990
)
8091

8192
lazy val metricsCommon = projectMatrix
@@ -84,14 +95,15 @@ lazy val metricsCommon = projectMatrix
8495
.enablePlugins(GitVersioning)
8596
.settings(common :+ (name := "natchez-extras-metrics"))
8697

87-
val log4catsVersion = "2.7.0"
88-
val natchezVersion = "0.3.7"
89-
val http4sMilestoneVersion = "1.0.0-M44"
90-
val http4sStableVersion = "0.23.30"
91-
val circeVersion = "0.14.10"
92-
val slf4jVersion = "1.7.36"
93-
val fs2Version = "3.11.0"
94-
val doobieVersion = "1.0.0-RC8"
98+
val log4catsVersion = "2.7.1"
99+
val kittensVersion = "3.5.0"
100+
val natchezVersion = "0.3.8"
101+
val http4sMilestoneVersion = "1.0.0-M46"
102+
val http4sStableVersion = "0.23.33"
103+
val circeVersion = "0.14.15"
104+
val slf4jVersion = "2.0.17"
105+
val fs2Version = "3.12.2"
106+
val doobieVersion = "1.0.0-RC11"
95107
val doobieLegacyVersion = "1.0.0-RC2"
96108

97109
lazy val natchezDatadog = projectMatrix
@@ -139,10 +151,10 @@ lazy val natchezSlf4j = projectMatrix
139151
.settings(common :+ (name := "natchez-extras-slf4j"))
140152
.settings(
141153
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-
)
154+
"org.tpolecat" %% "natchez-core" % natchezVersion,
155+
"org.slf4j" % "slf4j-api" % slf4jVersion,
156+
"com.github.valfirst" % "slf4j-test" % "3.0.3" % Test
157+
)
146158
)
147159

148160
lazy val natchezHttp4s = projectMatrix
@@ -209,7 +221,7 @@ lazy val natchezFs2 = projectMatrix
209221
.settings(common :+ (name := "natchez-extras-fs2"))
210222
.settings(
211223
libraryDependencies ++= Seq(
212-
"org.typelevel" %% "kittens" % "3.5.0",
224+
"org.typelevel" %% "kittens" % kittensVersion,
213225
"org.tpolecat" %% "natchez-core" % natchezVersion,
214226
"co.fs2" %% "fs2-core" % fs2Version
215227
)

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-ce3/src/test/scala/com/ovoenergy/natchez/extras/combine/ce3/IOLocalEntrypointTest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class IOLocalEntrypointTest extends CatsEffectSuite {
5959
local.get.assertEquals(rootSpan) >>
6060
spanR.use(span =>
6161
IO(span).assertEquals(childSpan) >>
62-
local.get.assertEquals(childSpan)
62+
local.get.assertEquals(childSpan)
6363
) >>
6464
local.get.assertEquals(rootSpan)
6565
}

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-datadog/src/test/scala/com/ovoenergy/natchez/extras/datadog/DatadogTest.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ class DatadogTest extends CatsEffectSuite {
5353
val test: EntryPoint[IO] => IO[Unit] =
5454
ep =>
5555
ep.root("first").use(_ => IO.unit) >>
56-
IO.sleep(1.second) >>
57-
ep.root("second").use(_ => IO.unit)
56+
IO.sleep(1.second) >>
57+
ep.root("second").use(_ => IO.unit)
5858

5959
assertIO(
6060
returns = 2,

natchez-extras-datadog/src/test/scala/com/ovoenergy/natchez/extras/datadog/TestClient.scala

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,19 @@ object TestClient {
2121
(
2222
Ref.of[F, List[Request[F]]](List.empty),
2323
Queue.unbounded[F, F[Response[F]]]
24-
).mapN {
25-
case (reqs, resps) =>
26-
new TestClient[F] {
27-
def requests: F[List[Request[F]]] =
28-
reqs.get
29-
def respondWith(r: F[Response[F]]): F[Unit] =
30-
resps.offer(r)
31-
def client: Client[F] =
32-
Client { r =>
33-
Resource.eval(
34-
reqs.update(_ :+ r) >>
24+
).mapN { case (reqs, resps) =>
25+
new TestClient[F] {
26+
def requests: F[List[Request[F]]] =
27+
reqs.get
28+
def respondWith(r: F[Response[F]]): F[Unit] =
29+
resps.offer(r)
30+
def client: Client[F] =
31+
Client { r =>
32+
Resource.eval(
33+
reqs.update(_ :+ r) >>
3534
resps.tryTake.flatMap(r => r.getOrElse(Monad[F].pure(Response[F]())))
36-
)
37-
}
38-
}
35+
)
36+
}
37+
}
3938
}
4039
}

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

0 commit comments

Comments
 (0)