Skip to content

Conversation

@cratelyn
Copy link
Member

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
Member 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