Skip to content

Releases: typelevel/otel4s

v0.13.1

09 Jul 05:27
cf37b86
Compare
Choose a tag to compare

What's Changed

SDK

  • sdk-metrics: flush PeriodicMetricReader upon finalization by @iRevive in #998

Documentation

Dependencies

  • flake.lock: Update by @typelevel-steward in #1004
  • Update opentelemetry-instrumentation-annotations to 2.17.0 by @typelevel-steward in #1003
  • Update sbt, scripted-plugin to 1.11.3 by @typelevel-steward in #1005
  • Update cats-effect, cats-effect-kernel, ... to 3.6.2 by @typelevel-steward in #1006

Full Changelog: v0.13.0...v0.13.1

v0.13.0

19 Jun 18:58
d4cf0d6
Compare
Choose a tag to compare

We are happy to announce the 0.13.0 release. It brings some UX improvements and new features.

Warning

There are several binary breaking changes core and sdk modules.

New features

1. Redesigned BaggageManager

The BaggageManager no longer extends the cats.mtl.Local. Some methods are deprecated to ease the migration.

2. Dynamic InstrumentMeta

The change introduces two implementations of InstrumentMeta to align with OpenTelemetry's specification, allowing instruments to reflect their enabled or disabled status dynamically.

InstrumentMeta.Dynamic uses an effectful F[Boolean] for runtime checks, while InstrumentMeta.Static retains a fixed Boolean for simpler cases like Span.

What's Changed

Core

SDK

  • SpanBuilder: chain modifyState functions by @iRevive in #965
  • sdk: move LimitedData to sdk-common by @iRevive in #992
  • sdk-trace: use TracerProvider.noop when span processors aren't configured by @iRevive in #991
  • sdk: move TraceContext to sdk-common by @iRevive in #993
  • Allocate noop meter instruments only once by @AlixBa in #977

Semantic Conventions

  • Update opentelemetry-semconv to 1.34.0 by @typelevel-steward in #988

Dependencies

  • Update munit-cats-effect to 2.1.0 by @typelevel-steward in #952
  • Update cats-effect, cats-effect-kernel, ... to 3.6.1 by @typelevel-steward in #956
  • Update scala3-library, ... to 3.3.6 by @typelevel-steward in #966
  • Update pekko-http to 1.2.0 by @typelevel-steward in #972
  • Update opentelemetry-instrumentation-annotations to 2.16.0 by @typelevel-steward in #970
  • Update opentelemetry-javaagent to 2.16.0 by @typelevel-steward in #971
  • Update opentelemetry-proto to 1.7.0-alpha by @typelevel-steward in #975
  • Update opentelemetry-api, ... to 1.51.0 by @typelevel-steward in #985
  • flake.lock: Update by @typelevel-steward in #978
  • Update sbt-typelevel, ... to 0.8.0 by @typelevel-steward in #981
  • Update sbt, scripted-plugin to 1.11.2 by @typelevel-steward in #987
  • Update sbt-protoc to 1.0.8 by @typelevel-steward in #984
  • Update pekko-stream to 1.1.4 by @typelevel-steward in #989

Uncategorized

  • Remove redundant settings from build.sbt by @iRevive in #950

Full Changelog: v0.12.0...v0.13.0

v0.12.0

25 Mar 06:31
889a7d4
Compare
Choose a tag to compare

We are happy to announce the 0.12.0 release. It brings some UX improvements and new features.

Warning

There are multiple binary breaking changes across modules.

This version relies on new functionality from Cats Effect 3.6.0, such as IORuntimeMetrics.

New features

1. BaggageManager

BaggageManager is a functional abstraction that provides an interface to manage Baggage.
Documentation: https://typelevel.org/otel4s/instrumentation/baggage.html

Reading the current Baggage:

import org.typelevel.otel4s.baggage.{Baggage, BaggageManager}

def printBaggage(implicit bm: BaggageManager[IO]): IO[Unit] =
  BaggageManager[IO].current.flatMap(b => IO.println(s"Baggage: $b"))

Setting and modifying Baggage

def withUserId[A](fa: IO[A])(implicit bm: BaggageManager[IO]): IO[A] =
  bm.local(fa)(b => b.updated("user-id", "12345"))

def withScopedBaggage[A](fa: IO[A])(implicit bm: BaggageManager[IO]): IO[A] =
  bm.scope(fa)(Baggage.empty.updated("request-id", "req-abc"))

Retrieving a specific baggage entry

def fetchBaggageEntry(implicit bm: BaggageManager[IO]): IO[Unit] =
  bm.getValue("user-id").flatMap {
    case Some(userId) => IO.println(s"User ID: $userId")
    case None         => IO.println("User ID not found in baggage")
  }

2. Attribute.From

Allows creating an attribute value from an arbitrary type:

case class UserId(id: Int)

implicit val userIdFrom: Attribute.From[UserId, Long] = 
  _.id.toLong

val userIdKey = AttributeKey[Long]("user.id")

val attribute: Attribute[Long] = userIdKey(UserId(1))
val attribute: Attribute[Long] = Attribute.from(userIdKey, UserId(1))
val attribute: Attribute[Long] = Attribute.from("user.id", UserId(1))

3. Attribute.Make

Allows creating an attribute from an arbitrary type:

case class UserId(id: Int)

implicit val userIdFrom: Attribute.From[UserId, Long] =
  _.id.toLong
  
implicit val userIdMake: Attribute.Make[UserId, Long] =
  Attribute.Make.const("user.id")
  
// "user.id=1"
val attribute: Attribute[Long] = Attribute.from(UserId(1))

Before:

def findUser(userId: UserId): F[Unit] =
  Tracer[F].span("findUser", Attribute("user.id", userId.id.toLong))

After:

def findUser(userId: UserId): F[Unit] =
  Tracer[F].span("findUser", Attribute.from(userId))

4. Cats Effect IO Runtime metrics

Documentation: https://typelevel.org/otel4s/instrumentation/metrics-cats-effect-io-runtime.html.

Configure the build.sbt:

libraryDependencies ++= Seq(
  "org.typelevel" %%% "otel4s-instrumentation-metrics" % "0.12.0"
)

Use IORuntimeMetrics.register to register collectors:

import cats.effect._
import org.typelevel.otel4s.instrumentation.ce.IORuntimeMetrics
import org.typelevel.otel4s.metrics.MeterProvider
import org.typelevel.otel4s.trace.TracerProvider
import org.typelevel.otel4s.oteljava.OtelJava

object Main extends IOApp.Simple {

  def run: IO[Unit] =
    OtelJava.autoConfigured[IO]().use { otel4s =>
      implicit val mp: MeterProvider[IO] = otel4s.meterProvider
      IORuntimeMetrics
        .register[IO](runtime.metrics, IORuntimeMetrics.Config.default)
        .surround {
          program(otel4s.meterProvider, otel4s.tracerProvider)
        }
    }

  def program(
      meterProvider: MeterProvider[IO],
      tracerProvider: TracerProvider[IO]
  ): IO[Unit] = {
    val _ = (meterProvider, tracerProvider)
    IO.unit
  }

}

5. OtelJava: seamless context propagation between IO and OpenTelemetry Java SDK

Warning

The IOLocalContextStorageProvider doesn't work with OpenTelemetry Java Agent yet.

Documentation: https://typelevel.org/otel4s/oteljava/tracing-context-propagation.html.

Configure the build.sbt:

libraryDependencies ++= Seq(
  "org.typelevel" %% "otel4s-oteljava" % "0.12.0", 
  "org.typelevel" %% "otel4s-oteljava-context-storage" % "0.12.0", 
)
javaOptions += "-Dcats.effect.trackFiberContext=true" 

Use IOLocalContextStorage.localProvider as a LocalProvider:

import cats.effect.IO
import io.opentelemetry.api.trace.{Span => JSpan}
import org.typelevel.otel4s.context.LocalProvider
import org.typelevel.otel4s.oteljava.IOLocalContextStorage
import org.typelevel.otel4s.oteljava.OtelJava
import org.typelevel.otel4s.oteljava.context.Context
import org.typelevel.otel4s.trace.Tracer

def program(tracer: Tracer[IO]): IO[Unit] =
  tracer.span("test").use { span => // start 'test' span using otel4s
    println(s"jctx: ${JSpan.current().getSpanContext}") // get a span from a ThreadLocal var
    IO.println(s"otel4s: ${span.context}")
  }

def run: IO[Unit] = {
  implicit val provider: LocalProvider[IO, Context] = 
    IOLocalContextStorage.localProvider[IO]

  OtelJava.autoConfigured[IO]().use { otelJava =>
    otelJava.tracerProvider.tracer("com.service").get.flatMap { tracer =>
      program(tracer)
    }
  }
}

What's Changed

Core

SDK

  • sdk: refactor SpanProcessor by @iRevive in #856
  • Update cats-effect to 3.6.0-RC1, resolve compilation issues by @iRevive in #866
  • Use MapRef.apply by @iRevive in #880
  • Use SystemProperties by @iRevive in #882
  • sdk: propagate Env by @iRevive in #883
  • sdk-common: rename otel.experimental.resource.disabled.keys to otel.resource.disabled.keys by @iRevive in #889
  • Add sdk.Context#getOrElse by @NthPortal in #909
  • Update opentelemetry-semconv to 1.30.0 by @typelevel-steward in #922
  • sdk-trace: remove exception.escaped attribute by @iRevive in #923

SDK exporter

  • sdk-exporter: generate proto models in the private package by @iRevive in #860
  • Update fs2 to 3.12.0-RC1, remove epollcat by @iRevive in #884

Semantic Conventions

  • Update opentelemetry-semconv to 1.29.0-alpha by @typelevel-steward in #869

OtelJava

  • oteljava: refactor Metrics, Traces, and OtelJava API by @iRevive in #867
  • oteljava: move IOLocalContextStorage to the context package by @iRevive in #879
  • Allow instrumentation via OTeL Java Agent by @iRevive in #944
  • oteljava-context-storage: update agent instrumentation direction by @iRevive in #948

Documentation

Other

Dependencies

  • Update http4s-circe, http4s-dsl, ... to 0.23.30 by @typelevel-steward in #863
  • Update opentelemetry-proto to 1.5.0-alpha by @typelevel-steward in #886
  • Update pekko-stream to 1.1.3 by @typelevel-steward in #887
  • Update scala-library, scala-reflect to 2.13.16 by @typelevel-steward in #891
  • Update sbt-typelevel, ... to 0.7.7 by @typelevel-steward in #900
  • Update sbt-scalajs, scalajs-compiler, ... to 1.18.2 by @typelevel-steward in #898
  • Update scala3-library, ... to 3.3.5 by @typelevel-steward in #905
  • Update cats-effect, cats-effect-kernel, ... to 3.6.0-RC2 by @typelevel-...
Read more

v0.12.0-RC4

20 Mar 13:10
594844e
Compare
Choose a tag to compare
v0.12.0-RC4 Pre-release
Pre-release

What's Changed

OtelJava

  • Allow instrumentation via OTeL Java Agent by @iRevive in #944

Metrics

  • instrumentation-metrics: fix poller metrics by @iRevive in #945

Dependencies

  • flake.lock: Update by @typelevel-steward in #931
  • Update scalafmt-core to 3.9.2 by @typelevel-steward in #934
  • Update opentelemetry-javaagent to 2.13.3 by @typelevel-steward in #933
  • Update opentelemetry-instrumentation-annotations to 2.13.3 by @typelevel-steward in #932
  • Update sbt, scripted-plugin to 1.10.10 by @typelevel-steward in #937
  • Update scalafmt-core to 3.9.3 by @typelevel-steward in #938
  • Update opentelemetry-api, ... to 1.48.0 by @typelevel-steward in #939
  • Update sbt, scripted-plugin to 1.10.11 by @typelevel-steward in #943
  • Update opentelemetry-javaagent to 2.14.0 by @typelevel-steward in #942
  • Update opentelemetry-instrumentation-annotations to 2.14.0 by @typelevel-steward in #941
  • Update scalafmt-core to 3.9.4 by @typelevel-steward in #940
  • Update fs2-core, fs2-io, fs2-scodec to 3.12.0-RC2 by @typelevel-steward in #946

Full Changelog: v0.12.0-RC3...v0.12.0-RC4

v0.12.0-RC3

28 Feb 07:37
93305c6
Compare
Choose a tag to compare
v0.12.0-RC3 Pre-release
Pre-release

New features

1. BaggageManager

BaggageManager is a functional abstraction that provides an interface to manage Baggage.
Documentation: https://typelevel.org/otel4s/instrumentation/baggage.html

Reading the current Baggage:

import org.typelevel.otel4s.baggage.{Baggage, BaggageManager}

def printBaggage(implicit bm: BaggageManager[IO]): IO[Unit] =
  BaggageManager[IO].current.flatMap(b => IO.println(s"Baggage: $b"))

Setting and modifying Baggage

def withUserId[A](fa: IO[A])(implicit bm: BaggageManager[IO]): IO[A] =
  bm.local(fa)(b => b.updated("user-id", "12345"))

def withScopedBaggage[A](fa: IO[A])(implicit bm: BaggageManager[IO]): IO[A] =
  bm.scope(fa)(Baggage.empty.updated("request-id", "req-abc"))

Retrieving a specific baggage entry

def fetchBaggageEntry(implicit bm: BaggageManager[IO]): IO[Unit] =
  bm.getValue("user-id").flatMap {
    case Some(userId) => IO.println(s"User ID: $userId")
    case None         => IO.println("User ID not found in baggage")
  }

2. Attribute.From

Allows creating an attribute value from an arbitrary type:

case class UserId(id: Int)

implicit val userIdFrom: Attribute.From[UserId, Long] = 
  _.id.toLong

val userIdKey = AttributeKey[Long]("user.id")

val attribute: Attribute[Long] = userIdKey(UserId(1))
val attribute: Attribute[Long] = Attribute.from(userIdKey, UserId(1))
val attribute: Attribute[Long] = Attribute.from("user.id", UserId(1))

3. Attribute.Make

Allows creating an attribute from an arbitrary type:

case class UserId(id: Int)

implicit val userIdFrom: Attribute.From[UserId, Long] =
  _.id.toLong
  
implicit val userIdMake: Attribute.Make[UserId, Long] =
  Attribute.Make.const("user.id")
  
// "user.id=1"
val attribute: Attribute[Long] = Attribute.from(UserId(1))

Before:

def findUser(userId: UserId): F[Unit] =
  Tracer[F].span("findUser", Attribute("user.id", userId.id.toLong))

After:

def findUser(userId: UserId): F[Unit] =
  Tracer[F].span("findUser", Attribute.from(userId))

What's Changed

Core

SDK

  • sdk-common: rename otel.experimental.resource.disabled.keys to otel.resource.disabled.keys by @iRevive in #889
  • Add sdk.Context#getOrElse by @NthPortal in #909
  • sdk-trace: remove exception.escaped attribute by @iRevive in #923

Documentation

Dependencies

  • Update opentelemetry-proto to 1.5.0-alpha by @typelevel-steward in #886
  • Update pekko-stream to 1.1.3 by @typelevel-steward in #887
  • Update sbt-scalajs, scalajs-compiler, ... to 1.18.1 by @typelevel-steward in #897
  • Update scala-library, scala-reflect to 2.13.16 by @typelevel-steward in #891
  • Update sbt-typelevel, ... to 0.7.7 by @typelevel-steward in #900
  • Update sbt-scalajs, scalajs-compiler, ... to 1.18.2 by @typelevel-steward in #898
  • flake.lock: Update by @typelevel-steward in #903
  • Update scala3-library, ... to 3.3.5 by @typelevel-steward in #905
  • Update opentelemetry-api, ... to 1.47.0 by @typelevel-steward in #914
  • Update scalafmt-core to 3.9.1 by @typelevel-steward in #925
  • Update opentelemetry-instrumentation-annotations to 2.13.2 by @typelevel-steward in #928
  • Update opentelemetry-javaagent to 2.13.2 by @typelevel-steward in #929
  • Update cats-effect, cats-effect-kernel, ... to 3.6.0-RC2 by @typelevel-steward in #930
  • Update fs2 to 3.12.0-RC1, remove epollcat by @iRevive in #884
  • Update opentelemetry-semconv to 1.30.0 by @typelevel-steward in #922

New Contributors

Full Changelog: v0.12.0-RC2...v0.12.0-RC3

v0.12.0-RC2

01 Jan 21:20
9c09184
Compare
Choose a tag to compare
v0.12.0-RC2 Pre-release
Pre-release

What's Changed

SDK

OtelJava

  • oteljava: move IOLocalContextStorage to the context package by @iRevive in #879

Documentation

Uncategorized

Full Changelog: v0.12.0-RC1...v0.12.0-RC2

v0.12.0-RC1

31 Dec 13:53
6783b22
Compare
Choose a tag to compare
v0.12.0-RC1 Pre-release
Pre-release

That is the first candidate of the upcoming 0.12.0 release.
This version uses Cats Effect 3.6.0-RC1.

Warning

otel4s-oteljava wasn't released due to a mistake. Please, use 0.12.0-RC2.

New features

Cats Effect IO Runtime metrics

Documentation: https://typelevel.org/otel4s/instrumentation/metrics-cats-effect-io-runtime.html.

Configure the build.sbt:

libraryDependencies ++= Seq(
  "org.typelevel" %%% "otel4s-instrumentation-metrics" % "0.12.0-RC1"
)

Use IORuntimeMetrics.register to register collectors:

import cats.effect._
import org.typelevel.otel4s.instrumentation.ce.IORuntimeMetrics
import org.typelevel.otel4s.metrics.MeterProvider
import org.typelevel.otel4s.trace.TracerProvider
import org.typelevel.otel4s.oteljava.OtelJava

object Main extends IOApp.Simple {

  def run: IO[Unit] =
    OtelJava.autoConfigured[IO]().use { otel4s =>
      implicit val mp: MeterProvider[IO] = otel4s.meterProvider
      IORuntimeMetrics
        .register[IO](runtime.metrics, IORuntimeMetrics.Config.default)
        .surround {
          program(otel4s.meterProvider, otel4s.tracerProvider)
        }
    }

  def program(
      meterProvider: MeterProvider[IO],
      tracerProvider: TracerProvider[IO]
  ): IO[Unit] = {
    val _ = (meterProvider, tracerProvider)
    IO.unit
  }

}

OtelJava: seamless context propagation

Warning

The IOLocalContextStorageProvider doesn't work with OpenTelemetry Java Agent.

Documentation: https://typelevel.org/otel4s/oteljava/tracing-context-propagation.html.

Configure the build.sbt:

libraryDependencies ++= Seq(
  "org.typelevel" %% "otel4s-oteljava" % "0.12.0-RC1", 
  "org.typelevel" %% "otel4s-oteljava-context-storage" % "0.12.0-RC1", 
)
javaOptions += "-Dcats.effect.trackFiberContext=true" 

Use IOLocalContextStorage.localProvider as a LocalProvider:

import cats.effect.IO
import io.opentelemetry.api.trace.{Span => JSpan}
import org.typelevel.otel4s.context.LocalProvider
import org.typelevel.otel4s.oteljava.IOLocalContextStorage
import org.typelevel.otel4s.oteljava.OtelJava
import org.typelevel.otel4s.oteljava.context.Context
import org.typelevel.otel4s.trace.Tracer

def program(tracer: Tracer[IO]): IO[Unit] =
  tracer.span("test").use { span => // start 'test' span using otel4s
    println(s"jctx: ${JSpan.current().getSpanContext}") // get a span from a ThreadLocal var
    IO.println(s"otel4s: ${span.context}")
  }

def run: IO[Unit] = {
  implicit val provider: LocalProvider[IO, Context] = 
    IOLocalContextStorage.localProvider[IO]

  OtelJava.autoConfigured[IO]().use { otelJava =>
    otelJava.tracerProvider.tracer("com.service").get.flatMap { tracer =>
      program(tracer)
    }
  }
}

What's Changed

Core

SDK

  • sdk: refactor SpanProcessor by @iRevive in #856
  • Update cats-effect to 3.6.0-RC1, resolve compilation issues by @iRevive in #866

SDK exporter

  • sdk-exporter: generate proto models in the private package by @iRevive in #860

Semantic Conventions

  • Update opentelemetry-semconv to 1.29.0-alpha by @typelevel-steward in #869

OtelJava

  • oteljava: refactor Metrics, Traces, and OtelJava API by @iRevive in #867

Documentation

  • docs: simplified docker setup with otel-lgtm image by @AlixBa in #871

Dependencies

  • Update sbt, scripted-plugin to 1.10.6 by @typelevel-steward in #857
  • Update sbt-scalajs, scalajs-compiler, ... to 1.17.0 by @typelevel-steward in #862
  • Update http4s-circe, http4s-dsl, ... to 0.23.30 by @typelevel-steward in #863
  • Update opentelemetry-api, ... to 1.45.0 by @typelevel-steward in #864
  • Update sbt, scripted-plugin to 1.10.7 by @typelevel-steward in #872
  • Update opentelemetry-javaagent to 2.11.0 by @typelevel-steward in #874
  • Update opentelemetry-instrumentation-annotations to 2.11.0 by @typelevel-steward in #873
  • Update sbt-typelevel, ... to 0.7.5 by @typelevel-steward in #875
  • flake.lock: Update by @typelevel-steward in #876

Uncategorized

  • Update io.opentelemetry.instrumentation to 2.10.0-alpha by @iRevive in #859
  • Update opentelemetry-proto to 1.4.0-alpha by @iRevive in #858

New Contributors

Full Changelog: v0.11.2...v0.12.0-RC1

v0.11.2

29 Nov 17:34
3c6356d
Compare
Choose a tag to compare

The release is fully binary compatible with 0.11.x series.

What's Changed

SDK exporter

  • Prometheus exporter: correctly treat wildcard Accept by @bio-aeon in #853

Documentation

Dependencies

  • Update cats-effect, cats-effect-kernel, ... to 3.5.6 by @typelevel-steward in #847
  • Update cats-effect, cats-effect-kernel, ... to 3.5.7 by @typelevel-steward in #854
  • flake.lock: Update by @typelevel-steward in #855

Uncategorized

  • mergify: rename label trace -> tracing by @iRevive in #849

Full Changelog: v0.11.1...v0.11.2

v0.11.1

16 Nov 08:06
286cb01
Compare
Choose a tag to compare

The release is fully binary compatible with 0.11.0.

New features

SDK Prometheus exporter now has a configurable shutdown timeout

The default timeout is 10 seconds.

The shutdown timeout can be configured via the environment variable:

export OTEL_EXPORTER_PROMETHEUS_SHUTDOWN_TIMEOUT=5 seconds

Or the Java option:

-Dotel.exporter.prometheus.shutdown.timeout=5 seconds

What's Changed

SDK exporter

Dependencies

  • Update sbt-buildinfo to 0.13.1 by @typelevel-steward in #833
  • Update opentelemetry-javaagent to 2.10.0 by @typelevel-steward in #836
  • Update opentelemetry-instrumentation-annotations to 2.10.0 by @typelevel-steward in #835
  • Update opentelemetry-api, ... to 1.44.1 by @typelevel-steward in #834
  • Update sbt-buildinfo to 0.13.0 by @typelevel-steward in #827
  • Update sbt to 1.10.5 by @typelevel-steward in #828

Uncategorized

Full Changelog: v0.11.0...v0.11.1

v0.11.0

02 Nov 09:27
84881d1
Compare
Choose a tag to compare

We are happy to announce the 0.11.0 release.

Note

The otel4s-core, otel4s-oteljava are binary compatible with the 0.10.0 lineage.

Warning

The otel4s-sdk and otel4s-semconv-metrics have several breaking changes and are binary incompatible with the 0.10.x lineage.

This release brings the SDK Prometheus Exporter. For the configuration details, check out the documentation page.
Kudos to @bio-aeon for the implementation!

There are numerous performance improvements for the SDK module as well.

What's Changed

Core

  • core-trace: skip addAttributes when varargs are empty by @iRevive in #795
  • core: add apply to MeterProvider and TracerProvider by @iRevive in #817

SDK

  • sdk-common: ComponentRegistry - use attributes as a part of identity by @iRevive in #801
  • sdk-trace: use MapRef in SpanStorage by @iRevive in #796
  • sdk: replace whenA with if, foldMapA with foldMapM by @iRevive in #826
  • benchmarks: add BatchSpanProcessor benchmark by @iRevive in #791
  • benchmarks: add metrics benchmark by @iRevive in #825

Semconv metrics

  • semconv-metrics: do not force a type of instrument by @iRevive in #816

SDK Prometheus

Docs

Behind the scene

  • Enable additional typelevel-scalafix rules by @iRevive in #802
  • Sync the scalac version with the one used by scalafix by @mzuehlke in #803
  • build: limit number of concurrent native links by @iRevive in #812
  • build: do no upload Scala Native artifacts by @iRevive in #814

Upgrades

  • Update scala-library, scala-reflect to 2.13.15 by @typelevel-steward in #790
  • Update scala3-library, ... to 3.3.4 by @typelevel-steward in #792
  • Update pekko-http to 1.1.0 by @typelevel-steward in #794
  • Update pekko-stream to 1.1.2 by @typelevel-steward in #798
  • Update sbt-typelevel, ... to 0.7.4 by @typelevel-steward in #800
  • Update opentelemetry-api, ... to 1.43.0 by @typelevel-steward in #804
  • Update case-insensitive to 1.4.2 by @typelevel-steward in #797
  • Update opentelemetry-semconv to 1.28.0-alpha by @typelevel-steward in #805
  • Update opentelemetry-javaagent to 2.9.0 by @typelevel-steward in #808
  • Update opentelemetry-instrumentation-annotations to 2.9.0 by @typelevel-steward in #807
  • Update http4s-circe, http4s-dsl, ... to 0.23.29 by @typelevel-steward in #813
  • Update cats-effect, cats-effect-kernel, ... to 3.5.5 by @typelevel-steward in #819
  • Update sbt to 1.10.4 by @typelevel-steward in #821
  • flake.lock: Update by @typelevel-steward in #820

New Contributors

Full Changelog: v0.10.0...v0.11.0