Skip to content

Conversation

@alamb
Copy link
Contributor

@alamb alamb commented Nov 11, 2021

Which issue does this PR close?

N/A (related to #897 )

Rationale for this change

Various downstream projects such as IOx would like to upgrade to the latest version of prost / tonic, etc (0.9 and 0.6 respectively at the time of writing). However, we have avoided such potentially incompatible version upgrades in the past.

However, in consultation with @shepmaster and others, there are cases when upgrading dependencies even to new "semver incompatible" versions may not actually break sematic versioning

What changes are included in this PR?

cherry-pick 1d3d5e3 which originally appeared in #864 from @PsiACE to active_relaese (aka propose to include in the arrow 6.2.0 release). I will then use this branch to see what effects it has on datafusion and others.

Are there any user-facing changes?

Versions of prost and tonic are upated

* Bump deps

Signed-off-by: Chojan Shang <[email protected]>

* Setup lastest cargo-tarpaulin

Signed-off-by: Chojan Shang <[email protected]>

* Try to use the lastest cargo

Signed-off-by: Chojan Shang <[email protected]>

Co-authored-by: Andrew Lamb <[email protected]>
@alamb alamb changed the title Test of backporting prost/tonic upgrade to 6.x line Backporting prost/tonic upgrade to 6.x line Nov 11, 2021
@github-actions github-actions bot added the arrow-flight Changes to the arrow-flight crate label Nov 11, 2021
@alamb
Copy link
Contributor Author

alamb commented Nov 11, 2021

PR for upgrading datafusion to point at this branch: apache/datafusion#1283

@alamb
Copy link
Contributor Author

alamb commented Nov 11, 2021

Unfortunately it fails to build with something like

   Compiling datafusion v5.1.0 (/Users/alamb/Software/arrow-datafusion/datafusion)
error[E0308]: mismatched types
  --> ballista/rust/core/src/client.rs:75:19
   |
75 |         Ok(Self { flight_client })
   |                   ^^^^^^^^^^^^^ expected struct `Channel`, found struct `tonic::transport::channel::Channel`
   |
   = note: expected struct `FlightServiceClient<Channel>`
              found struct `FlightServiceClient<tonic::transport::channel::Channel>`
   = note: perhaps two different versions of crate `tonic` are being used?

error[E0599]: the method `do_get` exists for struct `FlightServiceClient<Channel>`, but its trait bounds were not satisfied
   --> ballista/rust/core/src/client.rs:112:14
    |
112 |             .do_get(request)
    |              ^^^^^^ method cannot be called on `FlightServiceClient<Channel>` due to unsatisfied trait bounds
    |
   ::: /Users/alamb/.cargo/registry/src/github.amrom.workers.dev-1ecc6299db9ec823/tonic-0.5.2/src/transport/channel/mod.rs:68:1
    |
68  | pub struct Channel {
    | ------------------
    | |
    | doesn't satisfy `<_ as Service<tonic::codegen::http::Request<http_body::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = tonic::codegen::http::Response<_>`
    | doesn't satisfy `_: Service<tonic::codegen::http::Request<http_body::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`
    | doesn't satisfy `_: tonic::client::service::GrpcService<http_body::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
    |
    = note: the following trait bounds were not satisfied:
            `Channel: tonic::client::service::GrpcService<http_body::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>`
            `<Channel as Service<tonic::codegen::http::Request<http_body::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>>::Response = tonic::codegen::http::Response<_>`
            `Channel: Service<tonic::codegen::http::Request<http_body::combinators::box_body::UnsyncBoxBody<prost::bytes::Bytes, tonic::status::Status>>>`

@alamb
Copy link
Contributor Author

alamb commented Nov 12, 2021

The conclusion is that updating prost/tonic is definitely not backwards compatible. Closing this one

@alamb alamb closed this Nov 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arrow-flight Changes to the arrow-flight crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant