From 0c8d7e58ad9f3ce9260c1399170ce604d3409998 Mon Sep 17 00:00:00 2001 From: Andrea Corradi Date: Thu, 31 Jul 2025 16:42:25 +0200 Subject: [PATCH 1/2] chore: update tonic and prost to 0.14 --- Cargo.toml | 11 ++++++----- examples/tracing-grpc/Cargo.toml | 10 ++++++---- examples/tracing-grpc/build.rs | 2 +- opentelemetry-otlp/Cargo.toml | 2 +- opentelemetry-otlp/README.md | 2 +- .../examples/basic-otlp-http/Cargo.toml | 2 +- opentelemetry-otlp/examples/basic-otlp/Cargo.toml | 2 +- opentelemetry-otlp/tests/integration_test/Cargo.toml | 2 +- opentelemetry-proto/CHANGELOG.md | 2 ++ opentelemetry-proto/Cargo.toml | 9 +++++---- opentelemetry-proto/README.md | 2 +- .../tonic/opentelemetry.proto.collector.logs.v1.rs | 4 ++-- .../tonic/opentelemetry.proto.collector.metrics.v1.rs | 4 ++-- ...elemetry.proto.collector.profiles.v1development.rs | 4 ++-- .../tonic/opentelemetry.proto.collector.trace.v1.rs | 4 ++-- opentelemetry-proto/tests/grpc_build.rs | 2 +- 16 files changed, 35 insertions(+), 29 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index ba5abd5264..1f31015da2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,17 +32,18 @@ hyper-util = "0.1" log = "0.4.21" once_cell = "1.13" pin-project-lite = "0.2" -prost = "0.13" -prost-build = "0.13" -prost-types = "0.13" +prost = "0.14" +prost-build = "0.14" +prost-types = "0.14" rand = { version = "0.9", default-features = false } reqwest = { version = "0.12", default-features = false } serde = { version = "1.0", default-features = false } serde_json = "1.0" temp-env = "0.3.6" thiserror = { version = "2", default-features = false } -tonic = { version = "0.13", default-features = false } -tonic-build = "0.13" +tonic = { version = "0.14", default-features = false } +tonic-prost-build = "0.14" +tonic-prost = "0.14" tokio = { version = "1", default-features = false } tokio-stream = "0.1" # Using `tracing 0.1.40` because 0.1.39 (which is yanked) introduces the ability to set event names in macros, diff --git a/examples/tracing-grpc/Cargo.toml b/examples/tracing-grpc/Cargo.toml index 6e7c27c1e5..05c46779e8 100644 --- a/examples/tracing-grpc/Cargo.toml +++ b/examples/tracing-grpc/Cargo.toml @@ -3,7 +3,7 @@ name = "tracing-grpc" version = "0.1.0" edition = "2021" license = "Apache-2.0" -rust-version = "1.75.0" +rust-version = "1.86.0" publish = false autobenches = false @@ -23,12 +23,14 @@ opentelemetry_sdk = { workspace = true, features = ["rt-tokio"] } opentelemetry-stdout = { workspace = true, features = ["trace"] } prost = { workspace = true } tokio = { workspace = true, features = ["full"] } -tonic = { workspace = true, features = ["server", "codegen", "channel", "prost", "router"] } +tonic = { workspace = true, features = ["server", "codegen", "channel", "router"] } +tonic-prost = { workspace = true } [build-dependencies] -tonic-build = { workspace = true } +tonic-prost-build = { workspace = true } [package.metadata.cargo-machete] ignored = [ - "prost" # needed for `tonic-build` + "prost", # needed for `tonic-prost-build` + "tonic-prost" # needed for `tonic-prost-build` ] diff --git a/examples/tracing-grpc/build.rs b/examples/tracing-grpc/build.rs index 7c661fe65b..3100f02186 100644 --- a/examples/tracing-grpc/build.rs +++ b/examples/tracing-grpc/build.rs @@ -1,4 +1,4 @@ fn main() -> Result<(), Box> { - tonic_build::compile_protos("proto/helloworld.proto")?; + tonic_prost_build::compile_protos("proto/helloworld.proto")?; Ok(()) } diff --git a/opentelemetry-otlp/Cargo.toml b/opentelemetry-otlp/Cargo.toml index ff1d7f318d..f912f7b2a4 100644 --- a/opentelemetry-otlp/Cargo.toml +++ b/opentelemetry-otlp/Cargo.toml @@ -13,7 +13,7 @@ categories = [ keywords = ["opentelemetry", "otlp", "logging", "tracing", "metrics"] license = "Apache-2.0" edition = "2021" -rust-version = "1.75.0" +rust-version = "1.86.0" autotests = false autobenches = false diff --git a/opentelemetry-otlp/README.md b/opentelemetry-otlp/README.md index 6592d0467b..4b6176f447 100644 --- a/opentelemetry-otlp/README.md +++ b/opentelemetry-otlp/README.md @@ -46,7 +46,7 @@ You can find the release notes (changelog) [here](https://github.com/open-teleme ## Supported Rust Versions OpenTelemetry is built against the latest stable release. The minimum supported -version is 1.75.0. The current OpenTelemetry version is not guaranteed to build +version is 1.86.0. The current OpenTelemetry version is not guaranteed to build on Rust versions earlier than the minimum supported version. The current stable Rust compiler and the three most recent minor versions diff --git a/opentelemetry-otlp/examples/basic-otlp-http/Cargo.toml b/opentelemetry-otlp/examples/basic-otlp-http/Cargo.toml index bdb6ed49dc..1c3269da1e 100644 --- a/opentelemetry-otlp/examples/basic-otlp-http/Cargo.toml +++ b/opentelemetry-otlp/examples/basic-otlp-http/Cargo.toml @@ -3,7 +3,7 @@ name = "basic-otlp-http" version = "0.1.0" edition = "2021" license = "Apache-2.0" -rust-version = "1.75.0" +rust-version = "1.86.0" publish = false autobenches = false diff --git a/opentelemetry-otlp/examples/basic-otlp/Cargo.toml b/opentelemetry-otlp/examples/basic-otlp/Cargo.toml index 0474b8960e..29d4106525 100644 --- a/opentelemetry-otlp/examples/basic-otlp/Cargo.toml +++ b/opentelemetry-otlp/examples/basic-otlp/Cargo.toml @@ -3,7 +3,7 @@ name = "basic-otlp" version = "0.1.0" edition = "2021" license = "Apache-2.0" -rust-version = "1.75.0" +rust-version = "1.86.0" publish = false autobenches = false diff --git a/opentelemetry-otlp/tests/integration_test/Cargo.toml b/opentelemetry-otlp/tests/integration_test/Cargo.toml index 6b156d18fc..be8572c746 100644 --- a/opentelemetry-otlp/tests/integration_test/Cargo.toml +++ b/opentelemetry-otlp/tests/integration_test/Cargo.toml @@ -3,7 +3,7 @@ name = "integration_test_runner" version = "0.1.0" edition = "2021" license = "Apache-2.0" -rust-version = "1.75.0" +rust-version = "1.86.0" publish = false autobenches = false diff --git a/opentelemetry-proto/CHANGELOG.md b/opentelemetry-proto/CHANGELOG.md index c25374e08c..12a9dfcba8 100644 --- a/opentelemetry-proto/CHANGELOG.md +++ b/opentelemetry-proto/CHANGELOG.md @@ -5,6 +5,8 @@ - Update proto definitions to v1.7.0. - Added Rust generated protos for profiles collector. [#3077](https://github.com/open-telemetry/opentelemetry-rust/pull/3077) - **Breaking change**: package opentelemetry_proto::tonic::profiles::v1 renamed to opentelemetry_proto::tonic::profiles::v1development. [#3077](https://github.com/open-telemetry/opentelemetry-rust/pull/3077) +- Update `tonic` and `prost` dependency version to 0.14 +- Bump MSRV to 1.86.0 ## 0.30.0 diff --git a/opentelemetry-proto/Cargo.toml b/opentelemetry-proto/Cargo.toml index a670f5a39c..36a1d8205c 100644 --- a/opentelemetry-proto/Cargo.toml +++ b/opentelemetry-proto/Cargo.toml @@ -13,7 +13,7 @@ categories = [ keywords = ["opentelemetry", "otlp", "logging", "tracing", "metrics"] license = "Apache-2.0" edition = "2021" -rust-version = "1.75.0" +rust-version = "1.86.0" autotests = false autobenches = false @@ -36,7 +36,7 @@ full = ["gen-tonic", "trace", "logs", "metrics", "zpages", "with-serde", "intern # crates used to generate rs files gen-tonic = ["gen-tonic-messages", "tonic/channel"] -gen-tonic-messages = ["tonic", "prost"] +gen-tonic-messages = ["tonic", "tonic-prost", "prost"] # telemetry pillars and functions trace = ["opentelemetry/trace", "opentelemetry_sdk/trace"] @@ -52,7 +52,8 @@ with-schemars = ["schemars"] with-serde = ["serde", "const-hex", "base64", "serde_json"] [dependencies] -tonic = { workspace = true, optional = true, features = ["codegen", "prost"] } +tonic = { workspace = true, optional = true, features = ["codegen"] } +tonic-prost = { workspace = true, optional = true } prost = { workspace = true, optional = true } opentelemetry = { workspace = true } opentelemetry_sdk = { workspace = true } @@ -64,7 +65,7 @@ base64 = { workspace = true, optional = true } [dev-dependencies] opentelemetry = { workspace = true, features = ["testing"] } -tonic-build = { workspace = true } +tonic-prost-build = { workspace = true } prost-build = { workspace = true } tempfile = { workspace = true } serde_json = { workspace = true } diff --git a/opentelemetry-proto/README.md b/opentelemetry-proto/README.md index 176d2a1412..959f3db380 100644 --- a/opentelemetry-proto/README.md +++ b/opentelemetry-proto/README.md @@ -15,7 +15,7 @@ You can find the release notes (changelog) [here](https://github.com/open-teleme ## Supported Rust Versions OpenTelemetry is built against the latest stable release. The minimum supported -version is 1.75.0. The current OpenTelemetry version is not guaranteed to build +version is 1.86.0. The current OpenTelemetry version is not guaranteed to build on Rust versions earlier than the minimum supported version. The current stable Rust compiler and the three most recent minor versions diff --git a/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.logs.v1.rs b/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.logs.v1.rs index bc9238e340..d9622fbe00 100644 --- a/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.logs.v1.rs +++ b/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.logs.v1.rs @@ -168,7 +168,7 @@ pub mod logs_service_client { format!("Service was not ready: {}", e.into()), ) })?; - let codec = tonic::codec::ProstCodec::default(); + let codec = tonic_prost::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/opentelemetry.proto.collector.logs.v1.LogsService/Export", ); @@ -315,7 +315,7 @@ pub mod logs_service_server { let inner = self.inner.clone(); let fut = async move { let method = ExportSvc(inner); - let codec = tonic::codec::ProstCodec::default(); + let codec = tonic_prost::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) .apply_compression_config( accept_compression_encodings, diff --git a/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.metrics.v1.rs b/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.metrics.v1.rs index 0da402a848..4f2602101e 100644 --- a/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.metrics.v1.rs +++ b/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.metrics.v1.rs @@ -168,7 +168,7 @@ pub mod metrics_service_client { format!("Service was not ready: {}", e.into()), ) })?; - let codec = tonic::codec::ProstCodec::default(); + let codec = tonic_prost::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/opentelemetry.proto.collector.metrics.v1.MetricsService/Export", ); @@ -315,7 +315,7 @@ pub mod metrics_service_server { let inner = self.inner.clone(); let fut = async move { let method = ExportSvc(inner); - let codec = tonic::codec::ProstCodec::default(); + let codec = tonic_prost::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) .apply_compression_config( accept_compression_encodings, diff --git a/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.profiles.v1development.rs b/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.profiles.v1development.rs index 8a31c51d0f..2673792adc 100644 --- a/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.profiles.v1development.rs +++ b/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.profiles.v1development.rs @@ -172,7 +172,7 @@ pub mod profiles_service_client { format!("Service was not ready: {}", e.into()), ) })?; - let codec = tonic::codec::ProstCodec::default(); + let codec = tonic_prost::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/opentelemetry.proto.collector.profiles.v1development.ProfilesService/Export", ); @@ -318,7 +318,7 @@ pub mod profiles_service_server { let inner = self.inner.clone(); let fut = async move { let method = ExportSvc(inner); - let codec = tonic::codec::ProstCodec::default(); + let codec = tonic_prost::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) .apply_compression_config( accept_compression_encodings, diff --git a/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.trace.v1.rs b/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.trace.v1.rs index 5f5aa09ca2..9790eb79b2 100644 --- a/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.trace.v1.rs +++ b/opentelemetry-proto/src/proto/tonic/opentelemetry.proto.collector.trace.v1.rs @@ -168,7 +168,7 @@ pub mod trace_service_client { format!("Service was not ready: {}", e.into()), ) })?; - let codec = tonic::codec::ProstCodec::default(); + let codec = tonic_prost::ProstCodec::default(); let path = http::uri::PathAndQuery::from_static( "/opentelemetry.proto.collector.trace.v1.TraceService/Export", ); @@ -315,7 +315,7 @@ pub mod trace_service_server { let inner = self.inner.clone(); let fut = async move { let method = ExportSvc(inner); - let codec = tonic::codec::ProstCodec::default(); + let codec = tonic_prost::ProstCodec::default(); let mut grpc = tonic::server::Grpc::new(codec) .apply_compression_config( accept_compression_encodings, diff --git a/opentelemetry-proto/tests/grpc_build.rs b/opentelemetry-proto/tests/grpc_build.rs index ed72b5a306..29d0f69978 100644 --- a/opentelemetry-proto/tests/grpc_build.rs +++ b/opentelemetry-proto/tests/grpc_build.rs @@ -25,7 +25,7 @@ fn build_tonic() { let out_dir = TempDir::new().expect("failed to create temp dir to store the generated files"); // build the generated files into OUT_DIR for now so we don't have to touch the src unless we have to - let mut builder = tonic_build::configure() + let mut builder = tonic_prost_build::configure() .build_server(true) .build_client(true) .server_mod_attribute(".", "#[cfg(feature = \"gen-tonic\")]") From 68127d5004f9628f64531f1f7b1de9bc876b9c79 Mon Sep 17 00:00:00 2001 From: Andrea Corradi Date: Fri, 8 Aug 2025 15:24:51 +0200 Subject: [PATCH 2/2] Update to tonic 0.14.1 --- Cargo.toml | 6 +++--- examples/tracing-grpc/Cargo.toml | 2 +- opentelemetry-otlp/Cargo.toml | 2 +- opentelemetry-otlp/README.md | 2 +- opentelemetry-otlp/examples/basic-otlp-http/Cargo.toml | 2 +- opentelemetry-otlp/examples/basic-otlp/Cargo.toml | 2 +- opentelemetry-otlp/tests/integration_test/Cargo.toml | 2 +- opentelemetry-proto/CHANGELOG.md | 4 ++-- opentelemetry-proto/Cargo.toml | 2 +- opentelemetry-proto/README.md | 2 +- 10 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 1f31015da2..d3ee796bd6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -41,9 +41,9 @@ serde = { version = "1.0", default-features = false } serde_json = "1.0" temp-env = "0.3.6" thiserror = { version = "2", default-features = false } -tonic = { version = "0.14", default-features = false } -tonic-prost-build = "0.14" -tonic-prost = "0.14" +tonic = { version = "0.14.1", default-features = false } +tonic-prost-build = "0.14.1" +tonic-prost = "0.14.1" tokio = { version = "1", default-features = false } tokio-stream = "0.1" # Using `tracing 0.1.40` because 0.1.39 (which is yanked) introduces the ability to set event names in macros, diff --git a/examples/tracing-grpc/Cargo.toml b/examples/tracing-grpc/Cargo.toml index 05c46779e8..0622ddace7 100644 --- a/examples/tracing-grpc/Cargo.toml +++ b/examples/tracing-grpc/Cargo.toml @@ -3,7 +3,7 @@ name = "tracing-grpc" version = "0.1.0" edition = "2021" license = "Apache-2.0" -rust-version = "1.86.0" +rust-version = "1.75.0" publish = false autobenches = false diff --git a/opentelemetry-otlp/Cargo.toml b/opentelemetry-otlp/Cargo.toml index f912f7b2a4..ff1d7f318d 100644 --- a/opentelemetry-otlp/Cargo.toml +++ b/opentelemetry-otlp/Cargo.toml @@ -13,7 +13,7 @@ categories = [ keywords = ["opentelemetry", "otlp", "logging", "tracing", "metrics"] license = "Apache-2.0" edition = "2021" -rust-version = "1.86.0" +rust-version = "1.75.0" autotests = false autobenches = false diff --git a/opentelemetry-otlp/README.md b/opentelemetry-otlp/README.md index 4b6176f447..6592d0467b 100644 --- a/opentelemetry-otlp/README.md +++ b/opentelemetry-otlp/README.md @@ -46,7 +46,7 @@ You can find the release notes (changelog) [here](https://github.com/open-teleme ## Supported Rust Versions OpenTelemetry is built against the latest stable release. The minimum supported -version is 1.86.0. The current OpenTelemetry version is not guaranteed to build +version is 1.75.0. The current OpenTelemetry version is not guaranteed to build on Rust versions earlier than the minimum supported version. The current stable Rust compiler and the three most recent minor versions diff --git a/opentelemetry-otlp/examples/basic-otlp-http/Cargo.toml b/opentelemetry-otlp/examples/basic-otlp-http/Cargo.toml index 1c3269da1e..bdb6ed49dc 100644 --- a/opentelemetry-otlp/examples/basic-otlp-http/Cargo.toml +++ b/opentelemetry-otlp/examples/basic-otlp-http/Cargo.toml @@ -3,7 +3,7 @@ name = "basic-otlp-http" version = "0.1.0" edition = "2021" license = "Apache-2.0" -rust-version = "1.86.0" +rust-version = "1.75.0" publish = false autobenches = false diff --git a/opentelemetry-otlp/examples/basic-otlp/Cargo.toml b/opentelemetry-otlp/examples/basic-otlp/Cargo.toml index 29d4106525..0474b8960e 100644 --- a/opentelemetry-otlp/examples/basic-otlp/Cargo.toml +++ b/opentelemetry-otlp/examples/basic-otlp/Cargo.toml @@ -3,7 +3,7 @@ name = "basic-otlp" version = "0.1.0" edition = "2021" license = "Apache-2.0" -rust-version = "1.86.0" +rust-version = "1.75.0" publish = false autobenches = false diff --git a/opentelemetry-otlp/tests/integration_test/Cargo.toml b/opentelemetry-otlp/tests/integration_test/Cargo.toml index be8572c746..6b156d18fc 100644 --- a/opentelemetry-otlp/tests/integration_test/Cargo.toml +++ b/opentelemetry-otlp/tests/integration_test/Cargo.toml @@ -3,7 +3,7 @@ name = "integration_test_runner" version = "0.1.0" edition = "2021" license = "Apache-2.0" -rust-version = "1.86.0" +rust-version = "1.75.0" publish = false autobenches = false diff --git a/opentelemetry-proto/CHANGELOG.md b/opentelemetry-proto/CHANGELOG.md index 12a9dfcba8..07a4dda4b3 100644 --- a/opentelemetry-proto/CHANGELOG.md +++ b/opentelemetry-proto/CHANGELOG.md @@ -5,8 +5,8 @@ - Update proto definitions to v1.7.0. - Added Rust generated protos for profiles collector. [#3077](https://github.com/open-telemetry/opentelemetry-rust/pull/3077) - **Breaking change**: package opentelemetry_proto::tonic::profiles::v1 renamed to opentelemetry_proto::tonic::profiles::v1development. [#3077](https://github.com/open-telemetry/opentelemetry-rust/pull/3077) -- Update `tonic` and `prost` dependency version to 0.14 -- Bump MSRV to 1.86.0 +- Update `tonic` dependency version to 0.14.1 +- Update `prost` dependency version to 0.14 ## 0.30.0 diff --git a/opentelemetry-proto/Cargo.toml b/opentelemetry-proto/Cargo.toml index 36a1d8205c..f8c2813ca2 100644 --- a/opentelemetry-proto/Cargo.toml +++ b/opentelemetry-proto/Cargo.toml @@ -13,7 +13,7 @@ categories = [ keywords = ["opentelemetry", "otlp", "logging", "tracing", "metrics"] license = "Apache-2.0" edition = "2021" -rust-version = "1.86.0" +rust-version = "1.75.0" autotests = false autobenches = false diff --git a/opentelemetry-proto/README.md b/opentelemetry-proto/README.md index 959f3db380..176d2a1412 100644 --- a/opentelemetry-proto/README.md +++ b/opentelemetry-proto/README.md @@ -15,7 +15,7 @@ You can find the release notes (changelog) [here](https://github.com/open-teleme ## Supported Rust Versions OpenTelemetry is built against the latest stable release. The minimum supported -version is 1.86.0. The current OpenTelemetry version is not guaranteed to build +version is 1.75.0. The current OpenTelemetry version is not guaranteed to build on Rust versions earlier than the minimum supported version. The current stable Rust compiler and the three most recent minor versions