This package is now a thin compatibility layer. The implementation of
ServiceContextmoved into swift-distributed-tracing, where the type is namedInstrumentationContext.import ServiceContextModulekeeps compiling and behaving exactly as it does today, with no code changes required.New projects, and existing ones that can freely update their code, should depend on swift-distributed-tracing directly and use
InstrumentationContext(orTracing, if they also need spans) instead of adding this package.
ServiceContext is a minimal context propagation container: a value type, propagated through task-local
storage, that carries arbitrary key-value pairs across concurrent Swift code.
If you already depend on this package, you do not need to change anything.
For new code, depend on swift-distributed-tracing directly instead:
dependencies: [
.package(url: "https://github.com/apple/swift-distributed-tracing.git", from: "1.0.0")
]targets: [
.target(
name: "MyAwesomeApp",
dependencies: [
.product(name: "Tracing", package: "swift-distributed-tracing")
]
)
]Depend on the Instrumentation product instead of Tracing if you only need context propagation, with no
tracing spans.
dependencies: [
.package(url: "https://github.com/apple/swift-service-context.git", from: "1.0.0")
]targets: [
.target(
name: "MyAwesomeApp",
dependencies: [
.product(name: "ServiceContextModule", package: "swift-service-context")
]
)
]