chore: Prepare release 0.30.0 (#2999)

This commit is contained in:
Cijo Thomas 2025-05-23 09:52:50 -07:00 committed by GitHub
parent 200885a6c3
commit c811cde1ae
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
23 changed files with 211 additions and 144 deletions

View File

@ -2,6 +2,12 @@
## vNext
## 0.30.0
Released 2025-May-23
- Updated `opentelemetry` and `opentelemetry-semantic-conventions` dependencies to version 0.30.0.
## 0.29.0
Released 2025-Mar-21

View File

@ -1,6 +1,6 @@
[package]
name = "opentelemetry-appender-log"
version = "0.29.0"
version = "0.30.0"
description = "An OpenTelemetry appender for the log crate"
homepage = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-appender-log"
repository = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-appender-log"
@ -15,12 +15,12 @@ autobenches = false
bench = false
[dependencies]
opentelemetry = { version = "0.29", path = "../opentelemetry", features = [
opentelemetry = { version = "0.30", path = "../opentelemetry", features = [
"logs",
] }
log = { workspace = true, features = ["kv", "std"] }
serde = { workspace = true, optional = true, features = ["std"] }
opentelemetry-semantic-conventions = { version = "0.29", path = "../opentelemetry-semantic-conventions", optional = true, features = [
opentelemetry-semantic-conventions = { version = "0.30", path = "../opentelemetry-semantic-conventions", optional = true, features = [
"semconv_experimental",
] }

View File

@ -2,6 +2,13 @@
## vNext
## 0.30.0
Released 2025-May-23
- Updated `opentelemetry` dependency to version 0.30.0.
## 0.29.1
Released 2025-Mar-24

View File

@ -1,6 +1,6 @@
[package]
name = "opentelemetry-appender-tracing"
version = "0.29.1"
version = "0.30.0"
edition = "2021"
description = "An OpenTelemetry log appender for the tracing crate"
homepage = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-appender-tracing"
@ -13,12 +13,12 @@ autobenches = false
[dependencies]
log = { workspace = true, optional = true }
opentelemetry = { version = "0.29", path = "../opentelemetry", features = ["logs"] }
opentelemetry = { version = "0.30", path = "../opentelemetry", features = ["logs"] }
tracing = { workspace = true, features = ["std"]}
tracing-core = { workspace = true }
tracing-log = { workspace = true, optional = true }
tracing-subscriber = { workspace = true, features = ["registry", "std"] }
tracing-opentelemetry = { workspace = true, optional = true }
# tracing-opentelemetry = { workspace = true, optional = true }
[dev-dependencies]
log = { workspace = true }
@ -37,7 +37,8 @@ pprof = { version = "0.14", features = ["flamegraph", "criterion"] }
default = []
experimental_metadata_attributes = ["dep:tracing-log"]
spec_unstable_logs_enabled = ["opentelemetry/spec_unstable_logs_enabled"]
experimental_use_tracing_span_context = ["tracing-opentelemetry"]
# TODO: Enable this back in 0.30.1 after tracing-opentelemetry is released
# experimental_use_tracing_span_context = ["tracing-opentelemetry"]
[[bench]]

View File

@ -244,28 +244,28 @@ where
// Visit fields.
event.record(&mut visitor);
#[cfg(feature = "experimental_use_tracing_span_context")]
if let Some(span) = _ctx.event_span(event) {
use opentelemetry::trace::TraceContextExt;
use tracing_opentelemetry::OtelData;
if let Some(otd) = span.extensions().get::<OtelData>() {
if let Some(span_id) = otd.builder.span_id {
let opt_trace_id = if otd.parent_cx.has_active_span() {
Some(otd.parent_cx.span().span_context().trace_id())
} else {
span.scope().last().and_then(|root_span| {
root_span
.extensions()
.get::<OtelData>()
.and_then(|otd| otd.builder.trace_id)
})
};
if let Some(trace_id) = opt_trace_id {
log_record.set_trace_context(trace_id, span_id, None);
}
}
}
}
// #[cfg(feature = "experimental_use_tracing_span_context")]
// if let Some(span) = _ctx.event_span(event) {
// use opentelemetry::trace::TraceContextExt;
// use tracing_opentelemetry::OtelData;
// if let Some(otd) = span.extensions().get::<OtelData>() {
// if let Some(span_id) = otd.builder.span_id {
// let opt_trace_id = if otd.parent_cx.has_active_span() {
// Some(otd.parent_cx.span().span_context().trace_id())
// } else {
// span.scope().last().and_then(|root_span| {
// root_span
// .extensions()
// .get::<OtelData>()
// .and_then(|otd| otd.builder.trace_id)
// })
// };
// if let Some(trace_id) = opt_trace_id {
// log_record.set_trace_context(trace_id, span_id, None);
// }
// }
// }
// }
//emit record
self.logger.emit(log_record);
@ -611,117 +611,117 @@ mod tests {
}
}
#[cfg(feature = "experimental_use_tracing_span_context")]
#[test]
fn tracing_appender_inside_tracing_crate_context() {
use opentelemetry::{trace::SpanContext, Context, SpanId, TraceId};
use opentelemetry_sdk::trace::InMemorySpanExporterBuilder;
use tracing_opentelemetry::OpenTelemetrySpanExt;
// #[cfg(feature = "experimental_use_tracing_span_context")]
// #[test]
// fn tracing_appender_inside_tracing_crate_context() {
// use opentelemetry::{trace::SpanContext, Context, SpanId, TraceId};
// use opentelemetry_sdk::trace::InMemorySpanExporterBuilder;
// use tracing_opentelemetry::OpenTelemetrySpanExt;
// Arrange
let exporter: InMemoryLogExporter = InMemoryLogExporter::default();
let logger_provider = SdkLoggerProvider::builder()
.with_simple_exporter(exporter.clone())
.build();
// // Arrange
// let exporter: InMemoryLogExporter = InMemoryLogExporter::default();
// let logger_provider = SdkLoggerProvider::builder()
// .with_simple_exporter(exporter.clone())
// .build();
// setup tracing layer to compare trace/span IDs against
let span_exporter = InMemorySpanExporterBuilder::new().build();
let tracer_provider = SdkTracerProvider::builder()
.with_simple_exporter(span_exporter.clone())
.build();
let tracer = tracer_provider.tracer("test-tracer");
// // setup tracing layer to compare trace/span IDs against
// let span_exporter = InMemorySpanExporterBuilder::new().build();
// let tracer_provider = SdkTracerProvider::builder()
// .with_simple_exporter(span_exporter.clone())
// .build();
// let tracer = tracer_provider.tracer("test-tracer");
let level_filter = tracing_subscriber::filter::LevelFilter::ERROR;
let log_layer =
layer::OpenTelemetryTracingBridge::new(&logger_provider).with_filter(level_filter);
// let level_filter = tracing_subscriber::filter::LevelFilter::ERROR;
// let log_layer =
// layer::OpenTelemetryTracingBridge::new(&logger_provider).with_filter(level_filter);
let subscriber = tracing_subscriber::registry()
.with(log_layer)
.with(tracing_opentelemetry::layer().with_tracer(tracer));
// let subscriber = tracing_subscriber::registry()
// .with(log_layer)
// .with(tracing_opentelemetry::layer().with_tracer(tracer));
// Avoiding global subscriber.init() as that does not play well with unit tests.
let _guard = tracing::subscriber::set_default(subscriber);
// // Avoiding global subscriber.init() as that does not play well with unit tests.
// let _guard = tracing::subscriber::set_default(subscriber);
// Act
tracing::error_span!("outer-span").in_scope(|| {
error!("first-event");
// // Act
// tracing::error_span!("outer-span").in_scope(|| {
// error!("first-event");
tracing::error_span!("inner-span").in_scope(|| {
error!("second-event");
});
});
// tracing::error_span!("inner-span").in_scope(|| {
// error!("second-event");
// });
// });
assert!(logger_provider.force_flush().is_ok());
// assert!(logger_provider.force_flush().is_ok());
let logs = exporter.get_emitted_logs().expect("No emitted logs");
assert_eq!(logs.len(), 2, "Expected 2 logs, got: {logs:?}");
// let logs = exporter.get_emitted_logs().expect("No emitted logs");
// assert_eq!(logs.len(), 2, "Expected 2 logs, got: {logs:?}");
let spans = span_exporter.get_finished_spans().unwrap();
assert_eq!(spans.len(), 2);
// let spans = span_exporter.get_finished_spans().unwrap();
// assert_eq!(spans.len(), 2);
let trace_id = spans[0].span_context.trace_id();
assert_eq!(trace_id, spans[1].span_context.trace_id());
let inner_span_id = spans[0].span_context.span_id();
let outer_span_id = spans[1].span_context.span_id();
assert_eq!(outer_span_id, spans[0].parent_span_id);
// let trace_id = spans[0].span_context.trace_id();
// assert_eq!(trace_id, spans[1].span_context.trace_id());
// let inner_span_id = spans[0].span_context.span_id();
// let outer_span_id = spans[1].span_context.span_id();
// assert_eq!(outer_span_id, spans[0].parent_span_id);
let trace_ctx0 = logs[0].record.trace_context().unwrap();
let trace_ctx1 = logs[1].record.trace_context().unwrap();
// let trace_ctx0 = logs[0].record.trace_context().unwrap();
// let trace_ctx1 = logs[1].record.trace_context().unwrap();
assert_eq!(trace_ctx0.trace_id, trace_id);
assert_eq!(trace_ctx1.trace_id, trace_id);
assert_eq!(trace_ctx0.span_id, outer_span_id);
assert_eq!(trace_ctx1.span_id, inner_span_id);
// assert_eq!(trace_ctx0.trace_id, trace_id);
// assert_eq!(trace_ctx1.trace_id, trace_id);
// assert_eq!(trace_ctx0.span_id, outer_span_id);
// assert_eq!(trace_ctx1.span_id, inner_span_id);
// Set context from remote.
let remote_trace_id = TraceId::from_u128(233);
let remote_span_id = SpanId::from_u64(2333);
let remote_span_context = SpanContext::new(
remote_trace_id,
remote_span_id,
TraceFlags::SAMPLED,
true,
Default::default(),
);
// // Set context from remote.
// let remote_trace_id = TraceId::from_u128(233);
// let remote_span_id = SpanId::from_u64(2333);
// let remote_span_context = SpanContext::new(
// remote_trace_id,
// remote_span_id,
// TraceFlags::SAMPLED,
// true,
// Default::default(),
// );
// Act again.
tracing::error_span!("outer-span").in_scope(|| {
let span = tracing::Span::current();
let parent_context = Context::current().with_remote_span_context(remote_span_context);
span.set_parent(parent_context);
// // Act again.
// tracing::error_span!("outer-span").in_scope(|| {
// let span = tracing::Span::current();
// let parent_context = Context::current().with_remote_span_context(remote_span_context);
// span.set_parent(parent_context);
error!("first-event");
// error!("first-event");
tracing::error_span!("inner-span").in_scope(|| {
error!("second-event");
});
});
// tracing::error_span!("inner-span").in_scope(|| {
// error!("second-event");
// });
// });
assert!(logger_provider.force_flush().is_ok());
// assert!(logger_provider.force_flush().is_ok());
let logs = exporter.get_emitted_logs().expect("No emitted logs");
assert_eq!(logs.len(), 4, "Expected 4 logs, got: {logs:?}");
let logs = &logs[2..];
// let logs = exporter.get_emitted_logs().expect("No emitted logs");
// assert_eq!(logs.len(), 4, "Expected 4 logs, got: {logs:?}");
// let logs = &logs[2..];
let spans = span_exporter.get_finished_spans().unwrap();
assert_eq!(spans.len(), 4);
let spans = &spans[2..];
// let spans = span_exporter.get_finished_spans().unwrap();
// assert_eq!(spans.len(), 4);
// let spans = &spans[2..];
let trace_id = spans[0].span_context.trace_id();
assert_eq!(trace_id, remote_trace_id);
assert_eq!(trace_id, spans[1].span_context.trace_id());
let inner_span_id = spans[0].span_context.span_id();
let outer_span_id = spans[1].span_context.span_id();
assert_eq!(outer_span_id, spans[0].parent_span_id);
// let trace_id = spans[0].span_context.trace_id();
// assert_eq!(trace_id, remote_trace_id);
// assert_eq!(trace_id, spans[1].span_context.trace_id());
// let inner_span_id = spans[0].span_context.span_id();
// let outer_span_id = spans[1].span_context.span_id();
// assert_eq!(outer_span_id, spans[0].parent_span_id);
let trace_ctx0 = logs[0].record.trace_context().unwrap();
let trace_ctx1 = logs[1].record.trace_context().unwrap();
// let trace_ctx0 = logs[0].record.trace_context().unwrap();
// let trace_ctx1 = logs[1].record.trace_context().unwrap();
assert_eq!(trace_ctx0.trace_id, trace_id);
assert_eq!(trace_ctx1.trace_id, trace_id);
assert_eq!(trace_ctx0.span_id, outer_span_id);
assert_eq!(trace_ctx1.span_id, inner_span_id);
}
// assert_eq!(trace_ctx0.trace_id, trace_id);
// assert_eq!(trace_ctx1.trace_id, trace_id);
// assert_eq!(trace_ctx0.span_id, outer_span_id);
// assert_eq!(trace_ctx1.span_id, inner_span_id);
// }
#[test]
fn tracing_appender_standalone_with_tracing_log() {

View File

@ -2,6 +2,12 @@
## vNext
## 0.30.0
Released 2025-May-23
- Updated `opentelemetry` dependency to version 0.30.0.
## 0.29.0
Released 2025-Mar-21

View File

@ -1,6 +1,6 @@
[package]
name = "opentelemetry-http"
version = "0.29.0"
version = "0.30.0"
description = "Helper implementations for sending HTTP requests. Uses include propagating and extracting context over http, exporting telemetry, requesting sampling strategies."
homepage = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-http"
repository = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-http"
@ -24,7 +24,7 @@ http = { workspace = true }
http-body-util = { workspace = true, optional = true }
hyper = { workspace = true, optional = true }
hyper-util = { workspace = true, features = ["client-legacy", "http1", "http2"], optional = true }
opentelemetry = { version = "0.29", path = "../opentelemetry", features = ["trace"] }
opentelemetry = { version = "0.30", path = "../opentelemetry", features = ["trace"] }
reqwest = { workspace = true, features = ["blocking"], optional = true }
tokio = { workspace = true, features = ["time"], optional = true }

View File

@ -2,6 +2,12 @@
## vNext
## 0.30.0
Released 2025-May-23
- Updated `opentelemetry` dependency to version 0.30.0.
## 0.29.0
Released 2025-Mar-21

View File

@ -1,6 +1,6 @@
[package]
name = "opentelemetry-jaeger-propagator"
version = "0.29.0"
version = "0.30.0"
description = "Jaeger propagator for OpenTelemetry"
homepage = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-jaeger-propagator"
repository = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-jaeger-propagator"
@ -21,7 +21,7 @@ all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
opentelemetry = { version = "0.29", default-features = false, features = [
opentelemetry = { version = "0.30", default-features = false, features = [
"trace",
], path = "../opentelemetry" }

View File

@ -2,6 +2,14 @@
## vNext
## 0.30.0
Released 2025-May-23
- Update `opentelemetry` dependency version to 0.30
- Update `opentelemetry_sdk` dependency version to 0.30
- Update `opentelemetry-http` dependency version to 0.30
- Update `opentelemetry-proto` dependency version to 0.30
- Update `tonic` dependency version to 0.13
- Re-export `tonic` types under `tonic_types`
[2898](https://github.com/open-telemetry/opentelemetry-rust/pull/2898)

View File

@ -1,6 +1,6 @@
[package]
name = "opentelemetry-otlp"
version = "0.29.0"
version = "0.30.0"
description = "Exporter for the OpenTelemetry Collector"
homepage = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-otlp"
repository = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-otlp"
@ -27,10 +27,10 @@ all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
opentelemetry = { version = "0.29", default-features = false, path = "../opentelemetry" }
opentelemetry_sdk = { version = "0.29", default-features = false, path = "../opentelemetry-sdk" }
opentelemetry-http = { version = "0.29", path = "../opentelemetry-http", optional = true }
opentelemetry-proto = { version = "0.29", path = "../opentelemetry-proto", default-features = false }
opentelemetry = { version = "0.30", default-features = false, path = "../opentelemetry" }
opentelemetry_sdk = { version = "0.30", default-features = false, path = "../opentelemetry-sdk" }
opentelemetry-http = { version = "0.30", path = "../opentelemetry-http", optional = true }
opentelemetry-proto = { version = "0.30", path = "../opentelemetry-proto", default-features = false }
tracing = {workspace = true, optional = true}
prost = { workspace = true, optional = true }

View File

@ -2,9 +2,15 @@
## vNext
## 0.30.0
Released 2025-May-23
- Update `opentelemetry` dependency version to 0.30
- Updated `opentelemetry_sdk` dependency to version 0.30.0.
- **Feature**: Added Rust code generation for profiles protos. [#2979](https://github.com/open-telemetry/opentelemetry-rust/pull/2979)
- Update `tonic` dependency version to 0.13
- - Update proto definitions to v1.6.0.
- Update proto definitions to v1.6.0.
## 0.29.0

View File

@ -1,6 +1,6 @@
[package]
name = "opentelemetry-proto"
version = "0.29.0"
version = "0.30.0"
description = "Protobuf generated files and transformations."
homepage = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-proto"
repository = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-proto"
@ -54,8 +54,8 @@ with-serde = ["serde", "hex", "base64"]
[dependencies]
tonic = { workspace = true, optional = true, features = ["codegen", "prost"] }
prost = { workspace = true, optional = true }
opentelemetry = { version = "0.29", default-features = false, path = "../opentelemetry" }
opentelemetry_sdk = { version = "0.29", default-features = false, path = "../opentelemetry-sdk" }
opentelemetry = { version = "0.30", default-features = false, path = "../opentelemetry" }
opentelemetry_sdk = { version = "0.30", default-features = false, path = "../opentelemetry-sdk" }
schemars = { workspace = true, optional = true }
serde = { workspace = true, optional = true, features = ["serde_derive"] }
hex = { workspace = true, optional = true }

View File

@ -2,6 +2,11 @@
## vNext
## 0.30.0
Released 2025-May-23
- Updated `opentelemetry` and `opentelemetry-http` dependencies to version 0.30.0.
- It is now possible to add links to a `Span` via the `SpanRef` that you get from
a `Context`. [2959](https://github.com/open-telemetry/opentelemetry-rust/pull/2959)
- **Feature**: Added context based telemetry suppression. [#2868](https://github.com/open-telemetry/opentelemetry-rust/pull/2868)
@ -664,8 +669,7 @@ Released 2024-Sep-30
Update `LogProcessor::emit()` method to take mutable reference to LogData. This is breaking
change for LogProcessor developers. If the processor needs to invoke the exporter
asynchronously, it should clone the data to ensure it can be safely processed without
lifetime issues. Any changes made to the log data before cloning in this method will be
reflected in the next log processor in the chain, as well as to the exporter.
lifetime issues. Any changes made to the log data before cloning in this method will be reflected in the next log processor in the chain, as well as to the exporter.
- *Breaking* [1726](https://github.com/open-telemetry/opentelemetry-rust/pull/1726)
Update `LogExporter::export()` method to accept a batch of log data, which can be either a
reference or owned`LogData`. If the exporter needs to process the log data

View File

@ -1,6 +1,6 @@
[package]
name = "opentelemetry_sdk"
version = "0.29.0"
version = "0.30.0"
description = "The SDK for the OpenTelemetry metrics collection and distributed tracing framework"
homepage = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-sdk"
repository = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-sdk"
@ -11,8 +11,8 @@ rust-version = "1.75.0"
autobenches = false
[dependencies]
opentelemetry = { version = "0.29", path = "../opentelemetry/" }
opentelemetry-http = { version = "0.29", path = "../opentelemetry-http", optional = true }
opentelemetry = { version = "0.30", path = "../opentelemetry/" }
opentelemetry-http = { version = "0.30", path = "../opentelemetry-http", optional = true }
futures-channel = { workspace = true }
futures-executor = { workspace = true }
futures-util = { workspace = true, features = ["std", "sink", "async-await-macro"] }

View File

@ -2,6 +2,10 @@
## vNext
## 0.30.0
Released 2025-May-23
- Update to [v1.32.0](https://github.com/open-telemetry/semantic-conventions/releases/tag/v1.32.0) of the semantic conventions.
## 0.29.0

View File

@ -1,6 +1,6 @@
[package]
name = "opentelemetry-semantic-conventions"
version = "0.29.0"
version = "0.30.0"
description = "Semantic conventions for OpenTelemetry"
homepage = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-semantic-conventions"
repository = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-semantic-conventions"

View File

@ -2,6 +2,13 @@
## vNext
## 0.30.0
Released 2025-May-23
- Updated `opentelemetry` dependency to version 0.30.0.
- Updated `opentelemetry_sdk` dependency to version 0.30.0.
## 0.29.0
Released 2025-Mar-21

View File

@ -1,6 +1,6 @@
[package]
name = "opentelemetry-stdout"
version = "0.29.0"
version = "0.30.0"
description = "An OpenTelemetry exporter for stdout"
homepage = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-stdout"
repository = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-stdout"
@ -28,8 +28,8 @@ logs = ["opentelemetry/logs", "opentelemetry_sdk/logs", "opentelemetry_sdk/spec_
[dependencies]
chrono = { workspace = true, features = ["now"] }
opentelemetry = { version = "0.29", path = "../opentelemetry" }
opentelemetry_sdk = { version = "0.29", path = "../opentelemetry-sdk" }
opentelemetry = { version = "0.30", path = "../opentelemetry" }
opentelemetry_sdk = { version = "0.30", path = "../opentelemetry-sdk" }
[dev-dependencies]
opentelemetry = { path = "../opentelemetry", features = ["metrics"] }

View File

@ -2,6 +2,14 @@
## vNext
## 0.30.0
Released 2025-May-23
- Updated `opentelemetry` dependency to version 0.30.0.
- Updated `opentelemetry_sdk` dependency to version 0.30.0.
- Updated `opentelemetry-http` dependency to version 0.30.0.
## 0.29.0
Released 2025-Mar-21

View File

@ -1,6 +1,6 @@
[package]
name = "opentelemetry-zipkin"
version = "0.29.0"
version = "0.30.0"
description = "Zipkin exporter for OpenTelemetry"
homepage = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-zipkin"
repository = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-zipkin"
@ -28,9 +28,9 @@ reqwest-rustls = ["reqwest", "reqwest/rustls-tls-native-roots"]
[dependencies]
once_cell = { workspace = true }
opentelemetry = { version = "0.29", path = "../opentelemetry" }
opentelemetry_sdk = { version = "0.29", path = "../opentelemetry-sdk", features = ["trace"] }
opentelemetry-http = { version = "0.29", path = "../opentelemetry-http" }
opentelemetry = { version = "0.30", path = "../opentelemetry" }
opentelemetry_sdk = { version = "0.30", path = "../opentelemetry-sdk", features = ["trace"] }
opentelemetry-http = { version = "0.30", path = "../opentelemetry-http" }
serde_json = { workspace = true }
serde = { workspace = true, features = ["derive"] }
typed-builder = { workspace = true }

View File

@ -2,6 +2,10 @@
## vNext
## 0.30.0
Released 2025-May-23
[#2821](https://github.com/open-telemetry/opentelemetry-rust/pull/2821) Context
based suppression capabilities added: Added the ability to prevent recursive
telemetry generation through new context-based suppression mechanisms. This

View File

@ -1,6 +1,6 @@
[package]
name = "opentelemetry"
version = "0.29.0"
version = "0.30.0"
description = "OpenTelemetry API for Rust"
homepage = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry"
repository = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry"