From 9b90b60d89a11c3d38370a0239073d124082ac1f Mon Sep 17 00:00:00 2001 From: David Marteau Date: Tue, 19 Aug 2025 12:12:43 +0200 Subject: [PATCH 1/2] Support for tonic 0.14 --- CHANGELOG.md | 3 +++ ginepro/Cargo.toml | 4 ++-- shared_proto/Cargo.toml | 7 ++++--- shared_proto/build.rs | 2 +- tests/Cargo.toml | 6 +++--- 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6987d87..6a5cde6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Breaking changes +- Update to to **tonic** 0.14 + ## [0.9.0](https://github.com/TrueLayer/ginepro/compare/ginepro-v0.8.2...ginepro-v0.8.1) - 2025-07-24 ### Breaking changes diff --git a/ginepro/Cargo.toml b/ginepro/Cargo.toml index 0e5dfd7..2db3435 100644 --- a/ginepro/Cargo.toml +++ b/ginepro/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ginepro" -version = "0.9.0" +version = "0.10.0" edition = "2021" description = "A client-side gRPC channel implementation for tonic" repository = "https://github.com/TrueLayer/ginepro" @@ -15,7 +15,7 @@ async-trait = "0.1" http = "1" thiserror = "2" tokio = { version = "1", features = ["full"] } -tonic = { version = "0.13", features = ["tls-ring"] } +tonic = { version = "0.14", features = ["tls-ring"] } tower = { version = "0.5", default-features = false, features = ["discover"] } tracing = "0.1" hickory-resolver = { version = "0.25", features = ["tokio"] } diff --git a/shared_proto/Cargo.toml b/shared_proto/Cargo.toml index 3f3dde8..fd2ab36 100644 --- a/shared_proto/Cargo.toml +++ b/shared_proto/Cargo.toml @@ -6,8 +6,9 @@ edition = "2021" publish = false [dependencies] -prost = "0.13" -tonic = "0.13" +tonic-prost = "0.14" +tonic = "0.14" +prost = "0.14" [build-dependencies] -tonic-build = "0.13" +tonic-prost-build = "0.14" diff --git a/shared_proto/build.rs b/shared_proto/build.rs index 59fdd38..f8b5d70 100644 --- a/shared_proto/build.rs +++ b/shared_proto/build.rs @@ -3,7 +3,7 @@ //! tonic functionality. fn main() -> Result<(), Box> { - tonic_build::configure() + tonic_prost_build::configure() .build_server(true) .build_client(true) .compile_protos(&["proto/test.proto", "proto/echo.proto"], &["proto/"])?; diff --git a/tests/Cargo.toml b/tests/Cargo.toml index 1391a8e..5127dd6 100644 --- a/tests/Cargo.toml +++ b/tests/Cargo.toml @@ -10,10 +10,10 @@ ginepro = { path = "../ginepro" } futures = "0.3" hyper = "1" -openssl = "0.10" +openssl = { version = "0.10", features = ["vendored"] } tokio = { version = "1", features = ["full"] } tokio-stream = { version = "0.1", features = ["net"] } -tonic = { version = "0.13", features = ["tls-ring"] } +tonic = { version = "0.14", features = ["tls-ring"] } tower-layer = "0.3" tower-service = "0.3" tracing = { version = "0.1", features = ["attributes", "log"] } @@ -22,4 +22,4 @@ tracing = { version = "0.1", features = ["attributes", "log"] } anyhow = "1" async-trait = "0.1" shared-proto = { path = "../shared_proto" } -tonic-health = "0.13" +tonic-health = "0.14" From 88c83598c7e4576c87ae130752b7a2dbed7318ce Mon Sep 17 00:00:00 2001 From: David Marteau Date: Thu, 21 May 2026 13:13:49 +0200 Subject: [PATCH 2/2] Update dependencies --- ginepro/Cargo.toml | 2 +- ginepro/src/dns_resolver.rs | 2 +- ginepro/src/service_definition.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ginepro/Cargo.toml b/ginepro/Cargo.toml index 2db3435..6eea275 100644 --- a/ginepro/Cargo.toml +++ b/ginepro/Cargo.toml @@ -18,7 +18,7 @@ tokio = { version = "1", features = ["full"] } tonic = { version = "0.14", features = ["tls-ring"] } tower = { version = "0.5", default-features = false, features = ["discover"] } tracing = "0.1" -hickory-resolver = { version = "0.25", features = ["tokio"] } +hickory-resolver = { version = "0.26", features = ["tokio"] } [dev-dependencies] proptest = "1" diff --git a/ginepro/src/dns_resolver.rs b/ginepro/src/dns_resolver.rs index 9d740af..443d19c 100644 --- a/ginepro/src/dns_resolver.rs +++ b/ginepro/src/dns_resolver.rs @@ -21,7 +21,7 @@ impl DnsResolver { opts.cache_size = 0; Ok(Self { - dns: builder.build(), + dns: builder.build()?, }) } } diff --git a/ginepro/src/service_definition.rs b/ginepro/src/service_definition.rs index 0850d85..618f0ab 100644 --- a/ginepro/src/service_definition.rs +++ b/ginepro/src/service_definition.rs @@ -17,7 +17,7 @@ impl ServiceDefinition { pub fn from_parts(hostname: T, port: u16) -> Result { let hostname = hostname.to_string(); - hickory_resolver::Name::from_ascii(&hostname) + hickory_resolver::proto::rr::Name::from_ascii(&hostname) .map_err(anyhow::Error::from) .context("invalid 'hostname'")?;