Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(client/conn): SendRequest conversion glue #3798

Closed

Conversation

cratelyn
Copy link

users of the backports feature that are attempting to migrate from 0.14 to 1.0 may need to convert from a legacy SendRequest (returned by some of the connector builders) to an instance of the new protocol specific conn::http2::SendRequest<B> or
conn::http1::SendRequest<B> senders.

this adds From<T> implementation to the type provided by the backports feature, to help facilitate incremental migration.

@seanmonstar
Copy link
Member

This one I'm struggling to see the benefit. Do you have more of an example?

cratelyn added a commit to linkerd/linkerd2-proxy that referenced this pull request Dec 3, 2024
…tion

this commit updates code in `linkerd-proxy-http`'s HTTP/2 client code,
and the `linkerd-app-test` crate's `TestServer`, to use the new
`hyper::client::conn::http2::SendRequest` backported from the 1.x major
release.

see <hyperium/hyper#2960> for more information.

this commit refrains from updating the broader client connection system,
and addresses the breaking changes to `SendRequest` made in the 1.0
major release, namely:

* send request is no longer a tower service:
  * <https://docs.rs/hyper/0.14.31/hyper/client/conn/struct.SendRequest.html#impl-Service%3CRequest%3CB%3E%3E-for-SendRequest%3CB%3E>
  * <https://docs.rs/hyper/1.5.1/hyper/client/conn/http2/struct.SendRequest.html#trait-implementations>

* `send_request()` now returns an anonymous `impl Future` and not a
  named `ResponseFuture`, as in `0.14`.
  * <https://docs.rs/hyper/0.14.31/hyper/client/conn/struct.ResponseFuture.html>
  * <https://docs.rs/hyper/1.5.1/hyper/client/conn/http2/struct.SendRequest.html#method.send_request>

NB: this change depends on <hyperium/hyper#3798>.
cratelyn added a commit to linkerd/linkerd2-proxy that referenced this pull request Dec 3, 2024
…tion

this commit updates code in `linkerd-proxy-http`'s HTTP/2 client code,
and the `linkerd-app-test` crate's `TestServer`, to use the new
`hyper::client::conn::http2::SendRequest` backported from the 1.x major
release.

see <hyperium/hyper#2960> for more information.

this commit refrains from updating the broader client connection system,
and addresses the breaking changes to `SendRequest` made in the 1.0
major release, namely:

* send request is no longer a tower service:
  * <https://docs.rs/hyper/0.14.31/hyper/client/conn/struct.SendRequest.html#impl-Service%3CRequest%3CB%3E%3E-for-SendRequest%3CB%3E>
  * <https://docs.rs/hyper/1.5.1/hyper/client/conn/http2/struct.SendRequest.html#trait-implementations>

* `send_request()` now returns an anonymous `impl Future` and not a
  named `ResponseFuture`, as in `0.14`.
  * <https://docs.rs/hyper/0.14.31/hyper/client/conn/struct.ResponseFuture.html>
  * <https://docs.rs/hyper/1.5.1/hyper/client/conn/http2/struct.SendRequest.html#method.send_request>

NB: this change depends on <hyperium/hyper#3798>.

Signed-off-by: katelyn martin <[email protected]>
users of the `backports` feature that are attempting to migrate from
0.14 to 1.0 may need to convert from a legacy `SendRequest` (returned
by some of the connector builders) to an instance of the new protocol
specific `conn::http2::SendRequest<B>` or
`conn::http1::SendRequest<B>` senders.

this adds `From<T>` implementation to the type provided by the
`backports` feature, to help facilitate incremental migration.

Signed-off-by: katelyn martin <[email protected]>
@cratelyn cratelyn force-pushed the kate/send-request-legacy-glue branch from 701ddf2 to de82efb Compare December 3, 2024 21:44
cratelyn added a commit to linkerd/linkerd2-proxy that referenced this pull request Dec 3, 2024
…tion

this commit updates code in `linkerd-proxy-http`'s HTTP/2 client code,
and the `linkerd-app-test` crate's `TestServer`, to use the new
`hyper::client::conn::http2::SendRequest` backported from the 1.x major
release.

see <hyperium/hyper#2960> for more information.

this commit refrains from updating the broader client connection system,
and addresses the breaking changes to `SendRequest` made in the 1.0
major release, namely:

* send request is no longer a tower service:
  * <https://docs.rs/hyper/0.14.31/hyper/client/conn/struct.SendRequest.html#impl-Service%3CRequest%3CB%3E%3E-for-SendRequest%3CB%3E>
  * <https://docs.rs/hyper/1.5.1/hyper/client/conn/http2/struct.SendRequest.html#trait-implementations>

* `send_request()` now returns an anonymous `impl Future` and not a
  named `ResponseFuture`, as in `0.14`.
  * <https://docs.rs/hyper/0.14.31/hyper/client/conn/struct.ResponseFuture.html>
  * <https://docs.rs/hyper/1.5.1/hyper/client/conn/http2/struct.SendRequest.html#method.send_request>

NB: this change depends on <hyperium/hyper#3798>.

Signed-off-by: katelyn martin <[email protected]>
@cratelyn
Copy link
Author

cratelyn commented Dec 11, 2024

pardon the delay in following up on this pull request.

i've been working to upgrade from hyper 0.14 to hyper 1.0, re: linkerd/linkerd2#8733. along the way, i've been using the deprecated feature flag to incrementally prepare for this, but on further reflection i believe that you are right.

i'm going to close this particular pull request, pardon the trouble and thank you for your time!

@cratelyn cratelyn closed this Dec 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants