#31 and #36 bump tonic-build alone to 0.14 and break the build outright: 0.14 moved prost codegen out to tonic-prost-build, so `tonic_build::configure()` no longer exists. Both repositories also pin `tonic = "0.12"` as the runtime beside it, and codegen from 0.14 against a 0.12 runtime would be incoherent even if it compiled. So the whole set moves together, in agent and in search: tonic 0.12 -> 0.14 tonic-build 0.12 -> tonic-prost-build 0.14 (build-dependency) prost 0.13 -> 0.14 tonic-prost new runtime dependency Two consequences worth naming. The generated code now reaches for `tonic_prost::ProstCodec`, so tonic-prost has to be a real dependency rather than something the build script pulls in. And prost had to move with it: tonic-prost 0.14 wants prost 0.14, so leaving ours at 0.13 left the generated types deriving a `Message` trait from a different prost than the one the codec demanded. tonic's `tls` feature is gone, replaced by one feature per crypto provider. `tls-ring` is the like-for-like choice: it is the rustls-plus- ring pairing `tls` used to mean, and the agent hands its own CA and identity to ClientTlsConfig for mTLS, so it needs no root store. The call sites did not change at all -- transport::{Certificate, Channel, ClientTlsConfig, Identity} and include_proto! are all still where they were. Verified by building both, since no CI job compiles Rust: agent and search check clean, 34 agent tests and 24 search tests pass.
13 lines
352 B
Rust
13 lines
352 B
Rust
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
tonic_prost_build::configure()
|
|
.build_server(false)
|
|
.compile_protos(
|
|
&[
|
|
"../../proto/sentry/logs/v1/logs.proto",
|
|
"../../proto/sentry/agent/v1/agent_control.proto",
|
|
],
|
|
&["../../proto"],
|
|
)?;
|
|
Ok(())
|
|
}
|