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

enable hyper1 behind BMV #3973

Merged
merged 4 commits into from
Jan 22, 2025
Merged

enable hyper1 behind BMV #3973

merged 4 commits into from
Jan 22, 2025

Conversation

aajtodd
Copy link
Contributor

@aajtodd aajtodd commented Jan 17, 2025

Motivation and Context

Description

Follow up to #3939 to change how we enable hyper1 as the default.

  • This approach adds a new cargo feature flag on generated SDK packages (default-https-client) and restores the rustls feature to mean what it did before. Both will remain enabled as default features for some undetermined amount of time with the intent to remove rustls as a default feature as a breaking change in the future.
  • Renamed feature flags to be consistent. We settled on default-https-client. This new flag when enabled and the appropriate min BMV is set will result in the new HTTPS stack being the default for clients. Otherwise we fallback to the old behavior (still requires rustls and connector-hyper-0-14 features enabled)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Copy link

A new generated diff is ready to view.

A new doc preview is ready to view.

Copy link

A new generated diff is ready to view.

A new doc preview is ready to view.

Copy link

A new generated diff is ready to view.

A new doc preview is ready to view.

Copy link

A new generated diff is ready to view.

A new doc preview is ready to view.

@aajtodd aajtodd marked this pull request as ready for review January 21, 2025 18:42
@aajtodd aajtodd requested review from a team as code owners January 21, 2025 18:42
Copy link
Contributor

@landonxjames landonxjames left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall LGTM. I still think it is probably worth adding a README entry to the generated SDKs (or maybe just aws-config?) explaining the interplay between the feature flags and the BMV, but that isn't a blocker for merging to the feature branch.

@aajtodd
Copy link
Contributor Author

aajtodd commented Jan 22, 2025

Overall LGTM. I still think it is probably worth adding a README entry to the generated SDKs (or maybe just aws-config?) explaining the interplay between the feature flags and the BMV, but that isn't a blocker for merging to the feature branch.

Agreed. I'm working on customer messaging as next step and will seek feedback from team of course.

Copy link
Contributor

@ysaito1001 ysaito1001 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Comment on lines +71 to +74
// TODO(hyper1): disable rustls as a default feature in future release
// NOTE: We enable both rustls and default-https-client as default features. This keeps the legacy hyper+rustls
// stack working as is and lets BehaviorVersion control which client you get. In a future release we will
// break this and disable the rustls feature by default (and break old BMV versions w.r.t http client default).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Like the description 👍

@aajtodd aajtodd merged commit 42744a9 into hyper1 Jan 22, 2025
40 of 44 checks passed
@aajtodd aajtodd deleted the hyper1-feat-flags branch January 22, 2025 17:06
github-merge-queue bot pushed a commit that referenced this pull request Mar 10, 2025
## Motivation and Context
<!--- Why is this change required? What problem does it solve? -->
<!--- If it fixes an open issue, please link to the issue here -->
* #3710
* #1925
* awslabs/aws-sdk-rust#977


## Description
Updates the default HTTPS client to be based off hyper 1.x, rustls, and
aws-lc. See the GitHub discussion:
awslabs/aws-sdk-rust#1257

This PR is a rollup of previously reviewed PRs:

* Refactor the runtime structure and consolidate HTTP client
implementation(s):
[smithy-rs#3866](#3866)
* Migrate HTTP test utils:
[smithy-rs#3888](#3888)
* Update runtime to use new test utils:
[smithy-rs#3898](#3898)
* Backport connection poisoning:
[smithy-rs#3795](#3795)
* Deprecate HTTP 02x presign APIs:
[smithy-rs#3823](#3823)
* Enable hyper1 as default client: [smithy-rs#]()
* Enable hyper1 behind
BMV:[smithy-rs#3973](#3973)
* s2n-tls provider (by Sam):
[smithy-rs#3965](#3965)
* custom TLS config:
[smithy-rs#4032](#4032)

## Testing
<!--- Please describe in detail how you tested your changes -->
<!--- Include details of your testing environment, and the tests you ran
to -->
<!--- see how your change affects other areas of the code, etc. -->

## Checklist
<!--- If a checkbox below is not applicable, then please DELETE it
rather than leaving it unchecked -->
- [x] For changes to the smithy-rs codegen or runtime crates, I have
created a changelog entry Markdown file in the `.changelog` directory,
specifying "client," "server," or both in the `applies_to` key.
- [x] For changes to the AWS SDK, generated SDK code, or SDK runtime
crates, I have created a changelog entry Markdown file in the
`.changelog` directory, specifying "aws-sdk-rust" in the `applies_to`
key.

----

_By submitting this pull request, I confirm that you can use, modify,
copy, and redistribute this contribution, under the terms of your
choice._

---------

Co-authored-by: Sam Clark <[email protected]>
Co-authored-by: Landon James <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants