|
1 | 1 | <!-- Do not manually edit this file. Use the `changelogger` tool. -->
|
| 2 | +December 14th, 2022 |
| 3 | +=================== |
| 4 | +**Breaking Changes:** |
| 5 | +- 🐛⚠ ([smithy-rs#1847](https://github.com/awslabs/smithy-rs/issues/1847)) Support Sigv4 signature generation on PowerPC 32 and 64 bit. This architecture cannot compile `ring`, so the implementation has been updated to rely on `hamc` + `sha2` to achive the same result with broader platform compatibility and higher performance. We also updated the CI which is now running as many tests as possible against i686 and PowerPC 32 and 64 bit. |
| 6 | +- ⚠ ([smithy-rs#1225](https://github.com/awslabs/smithy-rs/issues/1225), [smithy-rs#1918](https://github.com/awslabs/smithy-rs/issues/1918)) `<service>::Client::from_conf_conn` has been removed since it's now possible to configure the connection from the |
| 7 | + shared and service configs. To update your code, pass connections to the `http_connector` method during config creation. |
| 8 | + |
| 9 | + <details> |
| 10 | + <summary>Example</summary> |
| 11 | + |
| 12 | + before: |
| 13 | + |
| 14 | + ```rust |
| 15 | + let conf = aws_sdk_sts::Config::builder() |
| 16 | + // The builder has no defaults but setting other fields is omitted for brevity... |
| 17 | + .build(); |
| 18 | + let (server, request) = capture_request(None); |
| 19 | + let client = aws_sdk_sts::Client::from_conf_conn(conf, server); |
| 20 | + ``` |
| 21 | + |
| 22 | + after: |
| 23 | + |
| 24 | + ```rust |
| 25 | + let (server, request) = capture_request(None); |
| 26 | + let conf = aws_sdk_sts::Config::builder() |
| 27 | + // The builder has no defaults but setting other fields is omitted for brevity... |
| 28 | + .http_connector(server) |
| 29 | + .build(); |
| 30 | + let client = aws_sdk_sts::Client::from_conf(conf); |
| 31 | + ``` |
| 32 | + |
| 33 | + </details> |
| 34 | +- ⚠ ([smithy-rs#1935](https://github.com/awslabs/smithy-rs/issues/1935)) Removed re-export of `aws_smithy_client::retry::Config` from the `middleware` module. |
| 35 | +- ⚠ ([smithy-rs#1926](https://github.com/awslabs/smithy-rs/issues/1926), [smithy-rs#1819](https://github.com/awslabs/smithy-rs/issues/1819)) Several breaking changes have been made to errors. See [the upgrade guide](https://github.com/awslabs/aws-sdk-rust/issues/657) for more information. |
| 36 | +- ⚠ ([smithy-rs#1945](https://github.com/awslabs/smithy-rs/issues/1945)) Generate enums that guide the users to write match expressions in a forward-compatible way. |
| 37 | + Before this change, users could write a match expression against an enum in a non-forward-compatible way: |
| 38 | + ```rust |
| 39 | + match some_enum { |
| 40 | + SomeEnum::Variant1 => { /* ... */ }, |
| 41 | + SomeEnum::Variant2 => { /* ... */ }, |
| 42 | + Unknown(value) if value == "NewVariant" => { /* ... */ }, |
| 43 | + _ => { /* ... */ }, |
| 44 | + } |
| 45 | + ``` |
| 46 | + This code can handle a case for "NewVariant" with a version of SDK where the enum does not yet include `SomeEnum::NewVariant`, but breaks with another version of SDK where the enum defines `SomeEnum::NewVariant` because the execution will hit a different match arm, i.e. the last one. |
| 47 | + After this change, users are guided to write the above match expression as follows: |
| 48 | + ```rust |
| 49 | + match some_enum { |
| 50 | + SomeEnum::Variant1 => { /* ... */ }, |
| 51 | + SomeEnum::Variant2 => { /* ... */ }, |
| 52 | + other @ _ if other.as_str() == "NewVariant" => { /* ... */ }, |
| 53 | + _ => { /* ... */ }, |
| 54 | + } |
| 55 | + ``` |
| 56 | + This is forward-compatible because the execution will hit the second last match arm regardless of whether the enum defines `SomeEnum::NewVariant` or not. |
| 57 | +- ⚠ ([smithy-rs#1984](https://github.com/awslabs/smithy-rs/issues/1984), [smithy-rs#1496](https://github.com/awslabs/smithy-rs/issues/1496)) Functions on `aws_smithy_http::endpoint::Endpoint` now return a `Result` instead of panicking. |
| 58 | +- ⚠ ([smithy-rs#1984](https://github.com/awslabs/smithy-rs/issues/1984), [smithy-rs#1496](https://github.com/awslabs/smithy-rs/issues/1496)) `Endpoint::mutable` now takes `impl AsRef<str>` instead of `Uri`. For the old functionality, use `Endpoint::mutable_uri`. |
| 59 | +- ⚠ ([smithy-rs#1984](https://github.com/awslabs/smithy-rs/issues/1984), [smithy-rs#1496](https://github.com/awslabs/smithy-rs/issues/1496)) `Endpoint::immutable` now takes `impl AsRef<str>` instead of `Uri`. For the old functionality, use `Endpoint::immutable_uri`. |
| 60 | +- ⚠ ([smithy-rs#1983](https://github.com/awslabs/smithy-rs/issues/1983), [smithy-rs#2029](https://github.com/awslabs/smithy-rs/issues/2029)) Implementation of the Debug trait for container shapes now redacts what is printed per the sensitive trait. |
| 61 | +- ⚠ ([smithy-rs#2065](https://github.com/awslabs/smithy-rs/issues/2065)) `SdkBody` callbacks have been removed. If you were using these, please [file an issue](https://github.com/awslabs/aws-sdk-rust/issues/new) so that we can better understand your use-case and provide the support you need. |
| 62 | +- ⚠ ([smithy-rs#2063](https://github.com/awslabs/smithy-rs/issues/2063)) `AwsEndpointStage`, a middleware which set endpoints and auth has been split into `AwsAuthStage` and `SmithyEndpointStage`. Related types have also been renamed. |
| 63 | +- ⚠ ([smithy-rs#1989](https://github.com/awslabs/smithy-rs/issues/1989)) The Unit type for a Union member is no longer rendered. The serializers and parsers generated now function accordingly in the absence of the inner data associated with the Unit type. |
| 64 | + |
| 65 | +**New this release:** |
| 66 | +- 🎉 ([smithy-rs#1225](https://github.com/awslabs/smithy-rs/issues/1225), [smithy-rs#1918](https://github.com/awslabs/smithy-rs/issues/1918)) <details> |
| 67 | + <summary>The HTTP connector used when making requests is now configurable through `SdkConfig`.</summary> |
| 68 | + |
| 69 | + ```rust |
| 70 | + use std::time::Duration; |
| 71 | + use aws_smithy_client::{Client, hyper_ext}; |
| 72 | + use aws_smithy_client::erase::DynConnector; |
| 73 | + use aws_smithy_client::http_connector::ConnectorSettings; |
| 74 | + use aws_types::SdkConfig; |
| 75 | + |
| 76 | + let https_connector = hyper_rustls::HttpsConnectorBuilder::new() |
| 77 | + .with_webpki_roots() |
| 78 | + .https_only() |
| 79 | + .enable_http1() |
| 80 | + .enable_http2() |
| 81 | + .build(); |
| 82 | + |
| 83 | + let smithy_connector = hyper_ext::Adapter::builder() |
| 84 | + // Optionally set things like timeouts as well |
| 85 | + .connector_settings( |
| 86 | + ConnectorSettings::builder() |
| 87 | + .connect_timeout(Duration::from_secs(5)) |
| 88 | + .build() |
| 89 | + ) |
| 90 | + .build(https_connector); |
| 91 | + |
| 92 | + let sdk_config = aws_config::from_env() |
| 93 | + .http_connector(smithy_connector) |
| 94 | + .load() |
| 95 | + .await; |
| 96 | + |
| 97 | + let client = Client::new(&sdk_config); |
| 98 | + |
| 99 | + // When sent, this operation will go through the custom smithy connector instead of |
| 100 | + // the default HTTP connector. |
| 101 | + let op = client |
| 102 | + .get_object() |
| 103 | + .bucket("some-test-bucket") |
| 104 | + .key("test.txt") |
| 105 | + .send() |
| 106 | + .await |
| 107 | + .unwrap(); |
| 108 | + ``` |
| 109 | + |
| 110 | + </details> |
| 111 | +- 🎉 ([aws-sdk-rust#641](https://github.com/awslabs/aws-sdk-rust/issues/641), [smithy-rs#1892](https://github.com/awslabs/smithy-rs/issues/1892), @albe-rosado) Ability to add an inline policy or a list of policy ARNs to the `AssumeRoleProvider` builder. |
| 112 | +- 🎉 ([smithy-rs#2044](https://github.com/awslabs/smithy-rs/issues/2044), [smithy-rs#371](https://github.com/awslabs/smithy-rs/issues/371)) Fixed and improved the request `tracing` span hierarchy to improve log messages, profiling, and debuggability. |
| 113 | +- ([smithy-rs#1890](https://github.com/awslabs/smithy-rs/issues/1890)) Add test to exercise excluded headers in aws-sigv4. |
| 114 | +- ([smithy-rs#1801](https://github.com/awslabs/smithy-rs/issues/1801)) Add test ensuring that a response will error if the response body returns an EOF before the entire body has been read. |
| 115 | +- ([smithy-rs#1923](https://github.com/awslabs/smithy-rs/issues/1923)) Fix cargo audit issue on criterion. |
| 116 | +- ([smithy-rs#1918](https://github.com/awslabs/smithy-rs/issues/1918)) Add `to_vec` method to `aws_smithy_http::byte_stream::AggregatedBytes`. |
| 117 | +- 🐛 ([smithy-rs#1957](https://github.com/awslabs/smithy-rs/issues/1957)) It was possible in some cases to send some S3 requests without a required upload ID, causing a risk of unintended data |
| 118 | + deletion and modification. Now, when an operation has query parameters that are marked as required, the omission of |
| 119 | + those query parameters will cause a BuildError, preventing the invalid operation from being sent. |
| 120 | +- 🐛 ([smithy-rs#2018](https://github.com/awslabs/smithy-rs/issues/2018)) Normalize URI paths per RFC3986 when constructing canonical requests, except for S3. |
| 121 | +- ([smithy-rs#2064](https://github.com/awslabs/smithy-rs/issues/2064), [aws-sdk-rust#632](https://github.com/awslabs/aws-sdk-rust/issues/632)) The SDK clients now default max idle connections to 70 (previously unlimited) to reduce the likelihood of hitting max file handles in AWS Lambda. |
| 122 | +- ([smithy-rs#2057](https://github.com/awslabs/smithy-rs/issues/2057), [smithy-rs#371](https://github.com/awslabs/smithy-rs/issues/371)) Add more `tracing` events to signing and event streams |
| 123 | +- ([smithy-rs#2062](https://github.com/awslabs/smithy-rs/issues/2062)) Log an `info` on credentials cache miss and adjust level of some credential `tracing` spans/events. |
| 124 | + |
| 125 | +**Contributors** |
| 126 | +Thank you for your contributions! ❤ |
| 127 | +- @albe-rosado ([aws-sdk-rust#641](https://github.com/awslabs/aws-sdk-rust/issues/641), [smithy-rs#1892](https://github.com/awslabs/smithy-rs/issues/1892)) |
| 128 | + |
2 | 129 | October 26th, 2022
|
3 | 130 | ==================
|
4 | 131 | **Breaking Changes:**
|
|
0 commit comments