Unverified Commit 52902411 authored by John DiSanti's avatar John DiSanti Committed by GitHub
Browse files

Merge changelog from the `smithy-rs-release-0.55.x` branch (#2731)



## Motivation and Context
This PR merges the changelog changes made by the release script from the
`smithy-rs-release-0.55.x` branch.

----

_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: default avatarAWS SDK Rust Bot <aws-sdk-rust-primary@amazon.com>
parent f89b1433
Loading
Loading
Loading
Loading
+42 −0
Original line number Diff line number Diff line
<!-- Do not manually edit this file. Use the `changelogger` tool. -->
May 23rd, 2023
==============
**New this release:**
- (all, [smithy-rs#2612](https://github.com/awslabs/smithy-rs/issues/2612)) The `Debug` implementation for `PropertyBag` now prints a list of the types it contains. This significantly improves debuggability.
- (all, [smithy-rs#2653](https://github.com/awslabs/smithy-rs/issues/2653), [smithy-rs#2656](https://github.com/awslabs/smithy-rs/issues/2656), @henriiik) Implement `Ord` and `PartialOrd` for `DateTime`.
- 🐛 (client, [smithy-rs#2696](https://github.com/awslabs/smithy-rs/issues/2696)) Fix compiler errors in generated code when naming shapes after types in the Rust standard library prelude.

**Contributors**
Thank you for your contributions! ❤
- @henriiik ([smithy-rs#2653](https://github.com/awslabs/smithy-rs/issues/2653), [smithy-rs#2656](https://github.com/awslabs/smithy-rs/issues/2656))


April 26th, 2023
================
**Breaking Changes:**
- ⚠ (all, [smithy-rs#2611](https://github.com/awslabs/smithy-rs/issues/2611)) Update MSRV to Rust 1.67.1

**New this release:**
- 🎉 (server, [smithy-rs#2540](https://github.com/awslabs/smithy-rs/issues/2540)) Implement layer for servers to handle [ALB health checks](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html).
    Take a look at `aws_smithy_http_server::plugin::alb_health_check` to learn about it.
- 🎉 (client, [smithy-rs#2254](https://github.com/awslabs/smithy-rs/issues/2254), @eduardomourar) Clients now compile for the `wasm32-unknown-unknown` and `wasm32-wasi` targets when no default features are enabled. WebAssembly is not officially supported yet, but this is a great first step towards it!
- (server, [smithy-rs#2540](https://github.com/awslabs/smithy-rs/issues/2540)) Implement `PluginPipeline::http_layer` which allows you to apply a `tower::Layer` to all operations.
- (client, [aws-sdk-rust#784](https://github.com/awslabs/aws-sdk-rust/issues/784), @abusch) Implement std::error::Error#source() properly for the service meta Error enum.
- 🐛 (all, [smithy-rs#2496](https://github.com/awslabs/smithy-rs/issues/2496)) The outputs for event stream operations now implement the `Sync` auto-trait.
- 🐛 (all, [smithy-rs#2495](https://github.com/awslabs/smithy-rs/issues/2495)) Streaming operations now emit the request ID at the `debug` log level like their non-streaming counterparts.
- 🐛 (client, [smithy-rs#2495](https://github.com/awslabs/smithy-rs/issues/2495)) Streaming operations now emit the request ID at the `debug` log level like their non-streaming counterparts.
- (client, [smithy-rs#2507](https://github.com/awslabs/smithy-rs/issues/2507)) The `enableNewCrateOrganizationScheme` codegen flag has been removed. If you opted out of the new crate organization scheme, it must be adopted now in order to upgrade (see [the upgrade guidance](https://github.com/awslabs/smithy-rs/discussions/2449) from March 23rd's release).
- (client, [smithy-rs#2534](https://github.com/awslabs/smithy-rs/issues/2534)) `aws_smithy_types::date_time::Format` has been re-exported in service client crates.
- 🐛 (server, [smithy-rs#2582](https://github.com/awslabs/smithy-rs/issues/2582), [smithy-rs#2585](https://github.com/awslabs/smithy-rs/issues/2585)) Fix generation of constrained shapes reaching `@sensitive` shapes
- 🐛 (server, [smithy-rs#2583](https://github.com/awslabs/smithy-rs/issues/2583), [smithy-rs#2584](https://github.com/awslabs/smithy-rs/issues/2584)) Fix server code generation bug affecting constrained shapes bound with `@httpPayload`
- (client, [smithy-rs#2603](https://github.com/awslabs/smithy-rs/issues/2603)) Add a sensitive method to `ParseHttpResponse`. When this returns true, logging of the HTTP response body will be suppressed.

**Contributors**
Thank you for your contributions! ❤
- @abusch ([aws-sdk-rust#784](https://github.com/awslabs/aws-sdk-rust/issues/784))
- @eduardomourar ([smithy-rs#2254](https://github.com/awslabs/smithy-rs/issues/2254))


April 11th, 2023
================


March 23rd, 2023
================
**Breaking Changes:**
+0 −25
Original line number Diff line number Diff line
@@ -11,31 +11,6 @@
# meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "client | server | all"}
# author = "rcoh"

[[smithy-rs]]
message = "The `Debug` implementation for `PropertyBag` now prints a list of the types it contains. This significantly improves debuggability."
author = "rcoh"
references = ["smithy-rs#2612"]
meta = { "breaking" = false, "tada" = false, "bug" = false }


[[smithy-rs]]
message = "Implement `Ord` and `PartialOrd` for `DateTime`."
author = "henriiik"
references = ["smithy-rs#2653", "smithy-rs#2656"]
meta = { "breaking" = false, "tada" = false, "bug" = false }

[[aws-sdk-rust]]
message = "Avoid extending IMDS credentials' expiry unconditionally, which may incorrectly extend it beyond what is originally defined; If returned credentials are not stale, use them as they are."
references = ["smithy-rs#2687", "smithy-rs#2694"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "ysaito1001"

[[smithy-rs]]
message = "Fix compiler errors in generated code when naming shapes after types in the Rust standard library prelude."
references = ["smithy-rs#2696"]
meta = { "breaking" = false, "tada" = false, "bug" = true, "target" = "client"}
author = "jdisanti"

[[aws-sdk-rust]]
message = "Fix error message when `credentials-sso` feature is not enabled on `aws-config`. NOTE: if you use `no-default-features`, you will need to manually able `credentials-sso` after 0.55.*"
references = ["smithy-rs#2722", "aws-sdk-rust#703"]
+203 −19
Original line number Diff line number Diff line
@@ -104,7 +104,7 @@
        "smithy-rs#2227"
      ],
      "since-commit": "48ce90d3a32cc87337d87d1f291b41fc64f1e5bd",
      "age": 3
      "age": 5
    },
    {
      "message": "The introduction of `CredentialsCache` comes with an accompanying type `SharedCredentialsCache`, which we will store in the property bag instead of a `SharedCredentialsProvider`. As a result, `aws_http::auth:set_provider` has been updated to `aws_http::auth::set_credentials_cache`.\n\nBefore:\n```rust\nuse aws_credential_types::Credentials;\nuse aws_credential_types::provider::SharedCredentialsProvider;\nuse aws_http::auth::set_provider;\nuse aws_smithy_http::body::SdkBody;\nuse aws_smithy_http::operation;\n\nlet mut req = operation::Request::new(http::Request::new(SdkBody::from(\"some body\")));\nlet credentials = Credentials::new(\"example\", \"example\", None, None, \"my_provider_name\");\nset_provider(\n    &mut req.properties_mut(),\n    SharedCredentialsProvider::new(credentials),\n);\n```\n\nAfter:\n```rust\nuse aws_credential_types::Credentials;\nuse aws_credential_types::cache::{CredentialsCache, SharedCredentialsCache};\nuse aws_credential_types::provider::SharedCredentialsProvider;\nuse aws_http::auth::set_credentials_cache;\nuse aws_smithy_http::body::SdkBody;\nuse aws_smithy_http::operation;\n\nlet mut req = operation::Request::new(http::Request::new(SdkBody::from(\"some body\")));\nlet credentials = Credentials::new(\"example\", \"example\", None, None, \"my_provider_name\");\nlet credentials_cache = CredentialsCache::lazy_builder()\n    .into_credentials_cache()\n    .create_cache(SharedCredentialsProvider::new(credentials));\nset_credentials_cache(\n    &mut req.properties_mut(),\n    SharedCredentialsCache::new(credentials_cache),\n);\n```\n",
@@ -119,7 +119,7 @@
        "smithy-rs#2227"
      ],
      "since-commit": "48ce90d3a32cc87337d87d1f291b41fc64f1e5bd",
      "age": 3
      "age": 5
    },
    {
      "message": "Fix endpoint for s3.write_get_object_response(). This bug was introduced in 0.53.",
@@ -133,7 +133,7 @@
        "smithy-rs#2204"
      ],
      "since-commit": "48ce90d3a32cc87337d87d1f291b41fc64f1e5bd",
      "age": 3
      "age": 5
    },
    {
      "message": "Add `with_test_defaults()` and `set_test_defaults()` to `<service>::Config`. These methods fill in defaults for configuration that is mandatory to successfully send a request.",
@@ -147,7 +147,7 @@
        "smithy-rs#2204"
      ],
      "since-commit": "48ce90d3a32cc87337d87d1f291b41fc64f1e5bd",
      "age": 3
      "age": 5
    },
    {
      "message": "Request IDs can now be easily retrieved on successful responses. For example, with S3:\n```rust\n// Import the trait to get the `request_id` method on outputs\nuse aws_sdk_s3::types::RequestId;\nlet output = client.list_buckets().send().await?;\nprintln!(\"Request ID: {:?}\", output.request_id());\n```\n",
@@ -162,7 +162,7 @@
        "smithy-rs#2129"
      ],
      "since-commit": "562e196bbfb5c57270b2855479a5c365ba3d2dff",
      "age": 1
      "age": 3
    },
    {
      "message": "Retrieving a request ID from errors now requires importing the `RequestId` trait. For example, with S3:\n```rust\nuse aws_sdk_s3::types::RequestId;\nprintln!(\"Request ID: {:?}\", error.request_id());\n```\n",
@@ -177,7 +177,7 @@
        "smithy-rs#2129"
      ],
      "since-commit": "562e196bbfb5c57270b2855479a5c365ba3d2dff",
      "age": 1
      "age": 3
    },
    {
      "message": "The `message()` and `code()` methods on errors have been moved into `ProvideErrorMetadata` trait. This trait will need to be imported to continue calling these.",
@@ -192,7 +192,7 @@
        "smithy-rs#2129"
      ],
      "since-commit": "562e196bbfb5c57270b2855479a5c365ba3d2dff",
      "age": 1
      "age": 3
    },
    {
      "message": "The `*Error` and `*ErrorKind` types have been combined to make error matching simpler.\n<details>\n<summary>Example with S3</summary>\n**Before:**\n```rust\nlet result = client\n    .get_object()\n    .bucket(BUCKET_NAME)\n    .key(\"some-key\")\n    .send()\n    .await;\nmatch result {\n    Ok(_output) => { /* Do something with the output */ }\n    Err(err) => match err.into_service_error() {\n        GetObjectError { kind, .. } => match kind {\n            GetObjectErrorKind::InvalidObjectState(value) => println!(\"invalid object state: {:?}\", value),\n            GetObjectErrorKind::NoSuchKey(_) => println!(\"object didn't exist\"),\n        }\n        err @ GetObjectError { .. } if err.code() == Some(\"SomeUnmodeledError\") => {}\n        err @ _ => return Err(err.into()),\n    },\n}\n```\n**After:**\n```rust\n// Needed to access the `.code()` function on the error type:\nuse aws_sdk_s3::types::ProvideErrorMetadata;\nlet result = client\n    .get_object()\n    .bucket(BUCKET_NAME)\n    .key(\"some-key\")\n    .send()\n    .await;\nmatch result {\n    Ok(_output) => { /* Do something with the output */ }\n    Err(err) => match err.into_service_error() {\n        GetObjectError::InvalidObjectState(value) => {\n            println!(\"invalid object state: {:?}\", value);\n        }\n        GetObjectError::NoSuchKey(_) => {\n            println!(\"object didn't exist\");\n        }\n        err if err.code() == Some(\"SomeUnmodeledError\") => {}\n        err @ _ => return Err(err.into()),\n    },\n}\n```\n</details>\n",
@@ -208,7 +208,7 @@
        "smithy-rs#2075"
      ],
      "since-commit": "562e196bbfb5c57270b2855479a5c365ba3d2dff",
      "age": 1
      "age": 3
    },
    {
      "message": "`aws_smithy_types::Error` has been renamed to `aws_smithy_types::error::ErrorMetadata`.",
@@ -223,7 +223,7 @@
        "smithy-rs#2129"
      ],
      "since-commit": "562e196bbfb5c57270b2855479a5c365ba3d2dff",
      "age": 1
      "age": 3
    },
    {
      "message": "Fluent builder methods on the client are now marked as deprecated when the related operation is deprecated.",
@@ -237,7 +237,7 @@
        "aws-sdk-rust#740"
      ],
      "since-commit": "562e196bbfb5c57270b2855479a5c365ba3d2dff",
      "age": 1
      "age": 3
    },
    {
      "message": "`SdkError` variants can now be constructed for easier unit testing.",
@@ -252,7 +252,7 @@
        "smithy-rs#2208"
      ],
      "since-commit": "562e196bbfb5c57270b2855479a5c365ba3d2dff",
      "age": 1
      "age": 3
    },
    {
      "message": "Add more client re-exports. Specifically, it re-exports `aws_smithy_http::body::SdkBody`, `aws_smithy_http::byte_stream::error::Error`, and `aws_smithy_http::operation::{Request, Response}`.",
@@ -267,7 +267,7 @@
        "aws-sdk-rust#600"
      ],
      "since-commit": "562e196bbfb5c57270b2855479a5c365ba3d2dff",
      "age": 1
      "age": 3
    },
    {
      "message": "Enable presigning for S3's `HeadObject` operation.",
@@ -282,7 +282,7 @@
        "smithy-rs#2451"
      ],
      "since-commit": "562e196bbfb5c57270b2855479a5c365ba3d2dff",
      "age": 1
      "age": 3
    },
    {
      "message": "The modules in the SDK crates have been reorganized. See the [SDK Crate Reorganization Upgrade Guidance](https://github.com/awslabs/aws-sdk-rust/discussions/752) to see how to fix your code after this change.",
@@ -296,7 +296,7 @@
        "smithy-rs#2433"
      ],
      "since-commit": "562e196bbfb5c57270b2855479a5c365ba3d2dff",
      "age": 1
      "age": 3
    },
    {
      "message": "Reconnect on transient errors.\n\nIf a transient error (timeout, 500, 503, 503) is encountered, the connection will be evicted from the pool and will not\nbe reused. This is enabled by default for all AWS services. It can be disabled by setting `RetryConfig::with_reconnect_mode`\n\nAlthough there is no API breakage from this change, it alters the client behavior in a way that may cause breakage for customers.\n",
@@ -311,7 +311,7 @@
        "smithy-rs#2445"
      ],
      "since-commit": "562e196bbfb5c57270b2855479a5c365ba3d2dff",
      "age": 1
      "age": 3
    },
    {
      "message": "Update MSRV to 1.66.1",
@@ -325,7 +325,7 @@
        "smithy-rs#2467"
      ],
      "since-commit": "562e196bbfb5c57270b2855479a5c365ba3d2dff",
      "age": 1
      "age": 3
    },
    {
      "message": "Default connector provided by `aws-config` now respects `ConnectorSettings`.\n\nPreviously, it used the timeout settings provided by aws-config. A test from @Oliboy50 has been incorporated to verify this behavior.\n\n**Behavior Change**: Prior to this change, the Hyper client would be shared between all service clients. After this change, each service client will use its own Hyper Client.\nTo revert to the previous behavior, set `HttpConnector::Prebuilt` on `SdkConfig::http_connector`.\n",
@@ -341,7 +341,7 @@
        "smithy-rs#2151"
      ],
      "since-commit": "562e196bbfb5c57270b2855479a5c365ba3d2dff",
      "age": 1
      "age": 3
    },
    {
      "message": "Remove deprecated `ResolveAwsEndpoint` interfaces.\n[For details see the longform changelog entry](https://github.com/awslabs/aws-sdk-rust/discussions/755).\n",
@@ -356,7 +356,7 @@
        "smithy-rs#1784"
      ],
      "since-commit": "562e196bbfb5c57270b2855479a5c365ba3d2dff",
      "age": 1
      "age": 3
    },
    {
      "message": "Increase Tokio version to 1.23.1 for all crates. This is to address [RUSTSEC-2023-0001](https://rustsec.org/advisories/RUSTSEC-2023-0001)",
@@ -370,6 +370,190 @@
        "smithy-rs#2474"
      ],
      "since-commit": "562e196bbfb5c57270b2855479a5c365ba3d2dff",
      "age": 3
    },
    {
      "message": "Implement std::error::Error#source() properly for the service meta Error enum.",
      "meta": {
        "bug": false,
        "breaking": false,
        "tada": false
      },
      "author": "abusch",
      "references": [
        "aws-sdk-rust#784"
      ],
      "since-commit": "9201176c9876c9f7bf6599f8a93fe69d25ee0f03",
      "age": 2
    },
    {
      "message": "The outputs for event stream operations (for example, S3's SelectObjectContent) now implement the `Sync` auto-trait.",
      "meta": {
        "bug": true,
        "breaking": false,
        "tada": false
      },
      "author": "jdisanti",
      "references": [
        "smithy-rs#2496"
      ],
      "since-commit": "9201176c9876c9f7bf6599f8a93fe69d25ee0f03",
      "age": 2
    },
    {
      "message": "The AWS SDK now compiles for the `wasm32-unknown-unknown` and `wasm32-wasi` targets when no default features are enabled. WebAssembly is not officially supported yet, but this is a great first step towards it!",
      "meta": {
        "bug": false,
        "breaking": false,
        "tada": true
      },
      "author": "eduardomourar",
      "references": [
        "smithy-rs#2254"
      ],
      "since-commit": "9201176c9876c9f7bf6599f8a93fe69d25ee0f03",
      "age": 2
    },
    {
      "message": "S3's `GetObject` will no longer panic when checksum validation is enabled and the target object was uploaded as a multi-part upload.\nHowever, these objects cannot be checksum validated by the SDK due to the way checksums are calculated for multipart uploads.\nFor more information, see [this page](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums).\n",
      "meta": {
        "bug": true,
        "breaking": false,
        "tada": false
      },
      "author": "Velfi",
      "references": [
        "aws-sdk-rust#764"
      ],
      "since-commit": "9201176c9876c9f7bf6599f8a93fe69d25ee0f03",
      "age": 2
    },
    {
      "message": "`AppName` is now configurable from within `ConfigLoader`.",
      "meta": {
        "bug": true,
        "breaking": false,
        "tada": false
      },
      "author": "ysaito1001",
      "references": [
        "smithy-rs#2513"
      ],
      "since-commit": "9201176c9876c9f7bf6599f8a93fe69d25ee0f03",
      "age": 2
    },
    {
      "message": "Add support for omitting session token in canonical requests for SigV4 signing.",
      "meta": {
        "bug": false,
        "breaking": false,
        "tada": false
      },
      "author": "martinjlowm",
      "references": [
        "smithy-rs#2473"
      ],
      "since-commit": "9201176c9876c9f7bf6599f8a93fe69d25ee0f03",
      "age": 2
    },
    {
      "message": "Add `into_segments` method to `AggregatedBytes`, for zero-copy conversions.",
      "meta": {
        "bug": false,
        "breaking": false,
        "tada": false
      },
      "author": "parker-timmerman",
      "references": [
        "smithy-rs#2525"
      ],
      "since-commit": "9201176c9876c9f7bf6599f8a93fe69d25ee0f03",
      "age": 2
    },
    {
      "message": "Fix bug where an incorrect endpoint was produced for `WriteGetObjectResponse`",
      "meta": {
        "bug": true,
        "breaking": false,
        "tada": false
      },
      "author": "rcoh",
      "references": [
        "smithy-rs#781",
        "aws-sdk-rust#781"
      ],
      "since-commit": "9201176c9876c9f7bf6599f8a93fe69d25ee0f03",
      "age": 2
    },
    {
      "message": "Update the `std::fmt::Debug` implementation for `aws-sigv4::SigningParams` so that it will no longer print sensitive information.",
      "meta": {
        "bug": true,
        "breaking": false,
        "tada": true
      },
      "author": "Velfi",
      "references": [
        "smithy-rs#2562"
      ],
      "since-commit": "9201176c9876c9f7bf6599f8a93fe69d25ee0f03",
      "age": 2
    },
    {
      "message": "`aws_smithy_types::date_time::Format` has been re-exported in SDK crates.",
      "meta": {
        "bug": false,
        "breaking": false,
        "tada": false
      },
      "author": "ysaito1001",
      "references": [
        "smithy-rs#2534"
      ],
      "since-commit": "9201176c9876c9f7bf6599f8a93fe69d25ee0f03",
      "age": 2
    },
    {
      "message": "Reduce several instances of credential exposure in the SDK logs:\n- IMDS now suppresses the body of the response from logs\n- `aws-sigv4` marks the `x-amz-session-token` header as sensitive\n- STS & SSO credentials have been manually marked as sensitive which suppresses logging of response bodies for relevant operations\n",
      "meta": {
        "bug": false,
        "breaking": false,
        "tada": false
      },
      "author": "rcoh",
      "references": [
        "smithy-rs#2603"
      ],
      "since-commit": "9201176c9876c9f7bf6599f8a93fe69d25ee0f03",
      "age": 2
    },
    {
      "message": "Update MSRV to Rust 1.67.1",
      "meta": {
        "bug": false,
        "breaking": true,
        "tada": false
      },
      "author": "jdisanti",
      "references": [
        "smithy-rs#2611"
      ],
      "since-commit": "9201176c9876c9f7bf6599f8a93fe69d25ee0f03",
      "age": 2
    },
    {
      "message": "Avoid extending IMDS credentials' expiry unconditionally, which may incorrectly extend it beyond what is originally defined; If returned credentials are not stale, use them as they are.",
      "meta": {
        "bug": true,
        "breaking": false,
        "tada": false
      },
      "author": "ysaito1001",
      "references": [
        "smithy-rs#2687",
        "smithy-rs#2694"
      ],
      "since-commit": "3b5fc51a41700c88270145e38fa708eca72dc414",
      "age": 1
    }
  ],