Commit 3e24477a authored by AWS SDK Rust Bot's avatar AWS SDK Rust Bot
Browse files

Update changelog

parent 79b7274d
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
<!-- Do not manually edit this file. Use the `changelogger` tool. -->
October 24th, 2022
==================
**Breaking Changes:**
- ⚠ (all, [smithy-rs#1825](https://github.com/awslabs/smithy-rs/issues/1825)) Bump MSRV to be 1.62.0.
- ⚠ (server, [smithy-rs#1825](https://github.com/awslabs/smithy-rs/issues/1825)) Bump pyo3 and pyo3-asyncio from 0.16.x to 0.17.0 for aws-smithy-http-server-python.
- ⚠ (client, [smithy-rs#1811](https://github.com/awslabs/smithy-rs/issues/1811)) Replace all usages of `AtomicU64` with `AtomicUsize` to support 32bit targets.
- ⚠ (server, [smithy-rs#1803](https://github.com/awslabs/smithy-rs/issues/1803)) Mark `operation` and `operation_handler` modules as private in the generated server crate.
    Both modules did not contain any public types, therefore there should be no actual breakage when updating.
- ⚠ (client, [smithy-rs#1740](https://github.com/awslabs/smithy-rs/issues/1740), [smithy-rs#256](https://github.com/awslabs/smithy-rs/issues/256)) A large list of breaking changes were made to accomodate default timeouts in the AWS SDK.
    See [the smithy-rs upgrade guide](https://github.com/awslabs/smithy-rs/issues/1760) for a full list
    of breaking changes and how to resolve them.
- ⚠ (server, [smithy-rs#1829](https://github.com/awslabs/smithy-rs/issues/1829)) Remove `Protocol` enum, removing an obstruction to extending smithy to third-party protocols.
- ⚠ (server, [smithy-rs#1829](https://github.com/awslabs/smithy-rs/issues/1829)) Convert the `protocol` argument on `PyMiddlewares::new` constructor to a type parameter.

**New this release:**
- (server, [smithy-rs#1811](https://github.com/awslabs/smithy-rs/issues/1811)) Replace all usages of `AtomicU64` with `AtomicUsize` to support 32bit targets.
- 🐛 (all, [smithy-rs#1802](https://github.com/awslabs/smithy-rs/issues/1802)) Sensitive fields in errors now respect @sensitive trait and are properly redacted.
- (server, [smithy-rs#1727](https://github.com/awslabs/smithy-rs/issues/1727), @GeneralSwiss) Pokémon Service example code now runs clippy during build.
- (server, [smithy-rs#1734](https://github.com/awslabs/smithy-rs/issues/1734)) Implement support for pure Python request middleware. Improve idiomatic logging support over tracing.
- 🐛 (client, [aws-sdk-rust#620](https://github.com/awslabs/aws-sdk-rust/issues/620), [smithy-rs#1748](https://github.com/awslabs/smithy-rs/issues/1748)) Paginators now stop on encountering a duplicate token by default rather than panic. This behavior can be customized by toggling the `stop_on_duplicate_token` property on the paginator before calling `send`.
- 🐛 (all, [smithy-rs#1817](https://github.com/awslabs/smithy-rs/issues/1817), @ethyi) Update aws-types zeroize to flexible version to prevent downstream version conflicts.
- (all, [smithy-rs#1852](https://github.com/awslabs/smithy-rs/issues/1852), @ogudavid) Enable local maven repo dependency override.

**Contributors**
Thank you for your contributions! ❤
- @GeneralSwiss ([smithy-rs#1727](https://github.com/awslabs/smithy-rs/issues/1727))
- @ethyi ([smithy-rs#1817](https://github.com/awslabs/smithy-rs/issues/1817))
- @ogudavid ([smithy-rs#1852](https://github.com/awslabs/smithy-rs/issues/1852))

September 20th, 2022
====================
**Breaking Changes:**
+1 −189
Original line number Diff line number Diff line
@@ -10,191 +10,3 @@
# references = ["smithy-rs#920"]
# meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "client | server | all"}
# author = "rcoh"
 No newline at end of file


[[smithy-rs]]
message = "Bump MSRV to be 1.62.0."
references = ["smithy-rs#1825"]
meta = { "breaking" = true, "tada" = false, "bug" = false, "target" = "all" }
author = "LukeMathWalker"

[[smithy-rs]]
message = "Bump pyo3 and pyo3-asyncio from 0.16.x to 0.17.0 for aws-smithy-http-server-python."
references = ["smithy-rs#1825"]
meta = { "breaking" = true, "tada" = false, "bug" = false, "target" = "server" }
author = "LukeMathWalker"

[[aws-sdk-rust]]
message = "Bump MSRV to be 1.62.0."
references = ["smithy-rs#1825"]
meta = { "breaking" = true, "tada" = false, "bug" = false }
author = "LukeMathWalker"

[[smithy-rs]]
message = """
Replace all usages of `AtomicU64` with `AtomicUsize` to support 32bit targets.
"""
references = ["smithy-rs#1811"]
meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "server"}
author = "LukeMathWalker"

[[smithy-rs]]
message = """
Replace all usages of `AtomicU64` with `AtomicUsize` to support 32bit targets.
"""
references = ["smithy-rs#1811"]
meta = { "breaking" = true, "tada" = false, "bug" = false, "target" = "client"}
author = "LukeMathWalker"

[[smithy-rs]]
message = """
Mark `operation` and `operation_handler` modules as private in the generated server crate.
Both modules did not contain any public types, therefore there should be no actual breakage when updating.
"""
references = ["smithy-rs#1803"]
meta = { "breaking" = true, "tada" = false, "bug" = false, "target" = "server"}
author = "LukeMathWalker"

[[smithy-rs]]
message = "Sensitive fields in errors now respect @sensitive trait and are properly redacted."
references = ["smithy-rs#1802"]
meta = { "breaking" = false, "tada" = false, "bug" = true, "target" = "all" }
author = "jjant"

[[smithy-rs]]
message = "Pokémon Service example code now runs clippy during build."
references = ["smithy-rs#1727"]
meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "server" }
author = "GeneralSwiss"

[[smithy-rs]]
message = "Implement support for pure Python request middleware. Improve idiomatic logging support over tracing."
references = ["smithy-rs#1734"]
meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "server" }
author = "crisidev"

[[aws-sdk-rust]]
message = """
The SDK, by default, now times out if socket connect or time to first byte read takes longer than
3.1 seconds. There are a large number of breaking changes that come with this change that may
affect you if you customize the client configuration at all.
See [the upgrade guide](https://github.com/awslabs/aws-sdk-rust/issues/622) for information
on how to configure timeouts, and how to resolve compilation issues after upgrading.
"""
references = ["smithy-rs#1740", "smithy-rs#256"]
meta = { "breaking" = true, "tada" = false, "bug" = false }
author = "jdisanti"

[[aws-sdk-rust]]
message = """
Setting connect/read timeouts with `SdkConfig` now works. Previously, these timeout config values
were lost during connector creation, so the only reliable way to set them was to manually override
the HTTP connector.
"""
references = ["smithy-rs#1740", "smithy-rs#256"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "jdisanti"

[[smithy-rs]]
message = """
A large list of breaking changes were made to accomodate default timeouts in the AWS SDK.
See [the smithy-rs upgrade guide](https://github.com/awslabs/smithy-rs/issues/1760) for a full list
of breaking changes and how to resolve them.
"""
references = ["smithy-rs#1740", "smithy-rs#256"]
meta = { "breaking" = true, "tada" = false, "bug" = false, "target" = "client" }
author = "jdisanti"

[[aws-sdk-rust]]
message = """
It is now possible to programmatically customize the locations of the profile config/credentials files in `aws-config`:
```rust
use aws_config::profile::{ProfileFileCredentialsProvider, ProfileFileRegionProvider};
use aws_config::profile::profile_file::{ProfileFiles, ProfileFileKind};

let profile_files = ProfileFiles::builder()
    .with_file(ProfileFileKind::Credentials, "some/path/to/credentials-file")
    .build();
let credentials_provider = ProfileFileCredentialsProvider::builder()
    .profile_files(profile_files.clone())
    .build();
let region_provider = ProfileFileRegionProvider::builder()
    .profile_files(profile_files)
    .build();

let sdk_config = aws_config::from_env()
    .credentials_provider(credentials_provider)
    .region(region_provider)
    .load()
    .await;
```
"""
references = ["aws-sdk-rust#237", "smithy-rs#1770"]
meta = { "breaking" = false, "tada" = true, "bug" = false }
author = "jdisanti"

[[aws-sdk-rust]]
message = "Paginators now stop on encountering a duplicate token by default rather than panic. This behavior can be customized by toggling the `stop_on_duplicate_token` property on the paginator before calling `send`."
references = ["aws-sdk-rust#620", "smithy-rs#1748"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "jdisanti"

[[smithy-rs]]
message = "Paginators now stop on encountering a duplicate token by default rather than panic. This behavior can be customized by toggling the `stop_on_duplicate_token` property on the paginator before calling `send`."
references = ["aws-sdk-rust#620", "smithy-rs#1748"]
meta = { "breaking" = false, "tada" = false, "bug" = true, "target" = "client" }
author = "jdisanti"

[[aws-sdk-rust]]
message = "The client Config now has getters for every value that it holds."
references = ["smithy-rs#1747"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "kastolars"

[[aws-sdk-rust]]
message = "Fix regression where `connect_timeout` and `read_timeout` fields are unused in the IMDS client"
references = ["smithy-rs#1822"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "kevinpark1217"

[[smithy-rs]]
message = "Remove `Protocol` enum, removing an obstruction to extending smithy to third-party protocols."
references = ["smithy-rs#1829"]
meta = { "breaking" = true, "tada" = false, "bug" = false, "target" = "server" }
author = "hlbarber"

[[smithy-rs]]
message = "Convert the `protocol` argument on `PyMiddlewares::new` constructor to a type parameter."
references = ["smithy-rs#1829"]
meta = { "breaking" = true, "tada" = false, "bug" = false, "target" = "server" }
author = "hlbarber"

[[smithy-rs]]
message = "Update aws-types zeroize to flexible version to prevent downstream version conflicts."
references = ["smithy-rs#1817"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "ethyi"

[[smithy-rs]]
message = "Enable local maven repo dependency override."
references = ["smithy-rs#1852"]
meta = { "breaking" = false, "tada" = false, "bug" = false }
author = "ogudavid"

[[aws-sdk-rust]]
message = "Ability to override the IMDS client in `DefaultCredentialsChain`"
references = ["aws-sdk-rust#625"]
meta = { "breaking" = false, "tada" = false, "bug" = false }
author = "kevinpark1217"

[[aws-sdk-rust]]
message = "Fix aws-sigv4 canonical request formatting fallibility."
references = ["smithy-rs#1656"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "ysaito1001"

[[aws-sdk-rust]]
message = "Add test to exercise excluded headers in aws-sigv4."
references = ["smithy-rs#1890"]
meta = { "breaking" = false, "tada" = false, "bug" = false }
author = "ysaito1001"
+156 −12
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@
        "smithy-rs#1641"
      ],
      "since-commit": "6e96137ca79b592960881b140ab17717b1ebb780",
      "age": 1
      "age": 2
    },
    {
      "message": "Service configs are now generated with new accessors for:\n- `Config::retry_config()` - Returns a reference to the inner retry configuration.\n- `Config::timeout_config()` - Returns a reference to the inner timeout configuration.\n- `Config::sleep_impl()` - Returns a clone of the inner async sleep implementation.\n\nPreviously, these were only accessible through `SdkConfig`.\n",
@@ -31,7 +31,7 @@
        "smithy-rs#1598"
      ],
      "since-commit": "6e96137ca79b592960881b140ab17717b1ebb780",
      "age": 1
      "age": 2
    },
    {
      "message": "Lossy converters into integer types for `aws_smithy_types::Number` have been\nremoved. Lossy converters into floating point types for\n`aws_smithy_types::Number` have been suffixed with `_lossy`. If you were\ndirectly using the integer lossy converters, we recommend you use the safe\nconverters.\n_Before:_\n```rust\nfn f1(n: aws_smithy_types::Number) {\n    let foo: f32 = n.to_f32(); // Lossy conversion!\n    let bar: u32 = n.to_u32(); // Lossy conversion!\n}\n```\n_After:_\n```rust\nfn f1(n: aws_smithy_types::Number) {\n    use std::convert::TryInto; // Unnecessary import if you're using Rust 2021 edition.\n    let foo: f32 = n.try_into().expect(\"lossy conversion detected\"); // Or handle the error instead of panicking.\n    // You can still do lossy conversions, but only into floating point types.\n    let foo: f32 = n.to_f32_lossy();\n    // To lossily convert into integer types, use an `as` cast directly.\n    let bar: u32 = n as u32; // Lossy conversion!\n}\n```\n",
@@ -45,7 +45,7 @@
        "smithy-rs#1274"
      ],
      "since-commit": "6e96137ca79b592960881b140ab17717b1ebb780",
      "age": 1
      "age": 2
    },
    {
      "message": "Bump [MSRV](https://github.com/awslabs/aws-sdk-rust#supported-rust-versions-msrv) from 1.58.1 to 1.61.0 per our policy.",
@@ -59,7 +59,7 @@
        "smithy-rs#1699"
      ],
      "since-commit": "6e96137ca79b592960881b140ab17717b1ebb780",
      "age": 1
      "age": 2
    },
    {
      "message": "The AWS S3 `GetObjectAttributes` operation will no longer fail with an XML error.",
@@ -73,7 +73,7 @@
        "aws-sdk-rust#609"
      ],
      "since-commit": "6e96137ca79b592960881b140ab17717b1ebb780",
      "age": 1
      "age": 2
    },
    {
      "message": "`aws_config::RetryConfig` no longer implements `Default`, and its `new` function has been replaced with `standard`.",
@@ -88,7 +88,7 @@
        "aws-sdk-rust#586"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 1
      "age": 2
    },
    {
      "message": "Direct configuration of `aws_config::SdkConfig` now defaults to retries being disabled.\nIf you're using `aws_config::load_from_env()` or `aws_config::from_env()` to configure\nthe SDK, then you are NOT affected by this change. If you use `SdkConfig::builder()` to\nconfigure the SDK, then you ARE affected by this change and should set the retry config\non that builder.\n",
@@ -103,7 +103,7 @@
        "aws-sdk-rust#586"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 1
      "age": 2
    },
    {
      "message": "Client creation now panics if retries or timeouts are enabled without an async sleep\nimplementation set on the SDK config.\nIf you're using the Tokio runtime and have the `rt-tokio` feature enabled (which is enabled by default),\nthen you shouldn't notice this change at all.\nOtherwise, if using something other than Tokio as the async runtime, the `AsyncSleep` trait must be implemented,\nand that implementation given to the config builder via the `sleep_impl` method. Alternatively, retry can be\nexplicitly turned off by setting the retry config to `RetryConfig::disabled()`, which will result in successful\nclient creation without an async sleep implementation.\n",
@@ -118,7 +118,7 @@
        "aws-sdk-rust#586"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 1
      "age": 2
    },
    {
      "message": "Implemented customizable operations per [RFC-0017](https://awslabs.github.io/smithy-rs/design/rfcs/rfc0017_customizable_client_operations.html).\n\nBefore this change, modifying operations before sending them required using lower-level APIs:\n\n```rust\nlet input = SomeOperationInput::builder().some_value(5).build()?;\n\nlet operation = {\n    let op = input.make_operation(&service_config).await?;\n    let (request, response) = op.into_request_response();\n\n    let request = request.augment(|req, _props| {\n        req.headers_mut().insert(\n            HeaderName::from_static(\"x-some-header\"),\n            HeaderValue::from_static(\"some-value\")\n        );\n        Result::<_, Infallible>::Ok(req)\n    })?;\n\n    Operation::from_parts(request, response)\n};\n\nlet response = smithy_client.call(operation).await?;\n```\n\nNow, users may easily modify operations before sending with the `customize` method:\n\n```rust\nlet response = client.some_operation()\n    .some_value(5)\n    .customize()\n    .await?\n    .mutate_request(|mut req| {\n        req.headers_mut().insert(\n            HeaderName::from_static(\"x-some-header\"),\n            HeaderValue::from_static(\"some-value\")\n        );\n    })\n    .send()\n    .await?;\n```\n",
@@ -133,7 +133,7 @@
        "smithy-rs#1112"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 1
      "age": 2
    },
    {
      "message": "The AWS STS SDK now automatically retries `IDPCommunicationError` when calling `AssumeRoleWithWebIdentity`",
@@ -148,7 +148,7 @@
        "smithy-rs#1718"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 1
      "age": 2
    },
    {
      "message": "The `SdkError::ResponseError`, typically caused by a connection terminating before the full response is received, is now treated as a transient failure and retried.",
@@ -163,7 +163,7 @@
        "smithy-rs#1717"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 1
      "age": 2
    },
    {
      "message": "`ClassifyResponse` was renamed to `ClassifyRetry` and is no longer implemented for the unit type.",
@@ -178,7 +178,7 @@
        "smithy-rs#1717"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 1
      "age": 2
    },
    {
      "message": "The `with_retry_policy` and `retry_policy` functions on `aws_smithy_http::operation::Operation` have been\nrenamed to `with_retry_classifier` and `retry_classifier` respectively. Public member `retry_policy` on\n`aws_smithy_http::operation::Parts` has been renamed to `retry_classifier`.\n",
@@ -193,6 +193,150 @@
        "smithy-rs#1717"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 2
    },
    {
      "message": "Bump MSRV to be 1.62.0.",
      "meta": {
        "bug": false,
        "breaking": true,
        "tada": false
      },
      "author": "LukeMathWalker",
      "references": [
        "smithy-rs#1825"
      ],
      "since-commit": "79b7274d180085a70cbcb565ea406a88b6f3cecb",
      "age": 1
    },
    {
      "message": "The SDK, by default, now times out if socket connect or time to first byte read takes longer than\n3.1 seconds. There are a large number of breaking changes that come with this change that may\naffect you if you customize the client configuration at all.\nSee [the upgrade guide](https://github.com/awslabs/aws-sdk-rust/issues/622) for information\non how to configure timeouts, and how to resolve compilation issues after upgrading.\n",
      "meta": {
        "bug": false,
        "breaking": true,
        "tada": false
      },
      "author": "jdisanti",
      "references": [
        "smithy-rs#1740",
        "smithy-rs#256"
      ],
      "since-commit": "79b7274d180085a70cbcb565ea406a88b6f3cecb",
      "age": 1
    },
    {
      "message": "Setting connect/read timeouts with `SdkConfig` now works. Previously, these timeout config values\nwere lost during connector creation, so the only reliable way to set them was to manually override\nthe HTTP connector.\n",
      "meta": {
        "bug": true,
        "breaking": false,
        "tada": false
      },
      "author": "jdisanti",
      "references": [
        "smithy-rs#1740",
        "smithy-rs#256"
      ],
      "since-commit": "79b7274d180085a70cbcb565ea406a88b6f3cecb",
      "age": 1
    },
    {
      "message": "It is now possible to programmatically customize the locations of the profile config/credentials files in `aws-config`:\n```rust\nuse aws_config::profile::{ProfileFileCredentialsProvider, ProfileFileRegionProvider};\nuse aws_config::profile::profile_file::{ProfileFiles, ProfileFileKind};\n\nlet profile_files = ProfileFiles::builder()\n    .with_file(ProfileFileKind::Credentials, \"some/path/to/credentials-file\")\n    .build();\nlet credentials_provider = ProfileFileCredentialsProvider::builder()\n    .profile_files(profile_files.clone())\n    .build();\nlet region_provider = ProfileFileRegionProvider::builder()\n    .profile_files(profile_files)\n    .build();\n\nlet sdk_config = aws_config::from_env()\n    .credentials_provider(credentials_provider)\n    .region(region_provider)\n    .load()\n    .await;\n```\n",
      "meta": {
        "bug": false,
        "breaking": false,
        "tada": true
      },
      "author": "jdisanti",
      "references": [
        "aws-sdk-rust#237",
        "smithy-rs#1770"
      ],
      "since-commit": "79b7274d180085a70cbcb565ea406a88b6f3cecb",
      "age": 1
    },
    {
      "message": "Paginators now stop on encountering a duplicate token by default rather than panic. This behavior can be customized by toggling the `stop_on_duplicate_token` property on the paginator before calling `send`.",
      "meta": {
        "bug": true,
        "breaking": false,
        "tada": false
      },
      "author": "jdisanti",
      "references": [
        "aws-sdk-rust#620",
        "smithy-rs#1748"
      ],
      "since-commit": "79b7274d180085a70cbcb565ea406a88b6f3cecb",
      "age": 1
    },
    {
      "message": "The client Config now has getters for every value that it holds.",
      "meta": {
        "bug": true,
        "breaking": false,
        "tada": false
      },
      "author": "kastolars",
      "references": [
        "smithy-rs#1747"
      ],
      "since-commit": "79b7274d180085a70cbcb565ea406a88b6f3cecb",
      "age": 1
    },
    {
      "message": "Fix regression where `connect_timeout` and `read_timeout` fields are unused in the IMDS client",
      "meta": {
        "bug": true,
        "breaking": false,
        "tada": false
      },
      "author": "kevinpark1217",
      "references": [
        "smithy-rs#1822"
      ],
      "since-commit": "79b7274d180085a70cbcb565ea406a88b6f3cecb",
      "age": 1
    },
    {
      "message": "Ability to override the IMDS client in `DefaultCredentialsChain`",
      "meta": {
        "bug": false,
        "breaking": false,
        "tada": false
      },
      "author": "kevinpark1217",
      "references": [
        "aws-sdk-rust#625"
      ],
      "since-commit": "79b7274d180085a70cbcb565ea406a88b6f3cecb",
      "age": 1
    },
    {
      "message": "Fix aws-sigv4 canonical request formatting fallibility.",
      "meta": {
        "bug": true,
        "breaking": false,
        "tada": false
      },
      "author": "ysaito1001",
      "references": [
        "smithy-rs#1656"
      ],
      "since-commit": "79b7274d180085a70cbcb565ea406a88b6f3cecb",
      "age": 1
    },
    {
      "message": "Add test to exercise excluded headers in aws-sigv4.",
      "meta": {
        "bug": false,
        "breaking": false,
        "tada": false
      },
      "author": "ysaito1001",
      "references": [
        "smithy-rs#1890"
      ],
      "since-commit": "79b7274d180085a70cbcb565ea406a88b6f3cecb",
      "age": 1
    }
  ],