Commit 7b27f376 authored by AWS SDK Rust Bot's avatar AWS SDK Rust Bot
Browse files

Update changelog

parent 3952a10c
Loading
Loading
Loading
Loading
+73 −0
Original line number Diff line number Diff line
<!-- Do not manually edit this file. Use the `changelogger` tool. -->
September 20th, 2022
====================
**Breaking Changes:**
- ⚠ (client, [smithy-rs#1603](https://github.com/awslabs/smithy-rs/issues/1603), [aws-sdk-rust#586](https://github.com/awslabs/aws-sdk-rust/issues/586)) `aws_smithy_types::RetryConfig` no longer implements `Default`, and its `new` function has been replaced with `standard`.
- ⚠ (client, [smithy-rs#1603](https://github.com/awslabs/smithy-rs/issues/1603), [aws-sdk-rust#586](https://github.com/awslabs/aws-sdk-rust/issues/586)) Client creation now panics if retries or timeouts are enabled without an async sleep implementation.
    If you're using the Tokio runtime and have the `rt-tokio` feature enabled (which is enabled by default),
    then you shouldn't notice this change at all.
    Otherwise, if using something other than Tokio as the async runtime, the `AsyncSleep` trait must be implemented,
    and that implementation given to the config builder via the `sleep_impl` method. Alternatively, retry can be
    explicitly turned off by setting `max_attempts` to 1, which will result in successful client creation without an
    async sleep implementation.
- ⚠ (client, [smithy-rs#1603](https://github.com/awslabs/smithy-rs/issues/1603), [aws-sdk-rust#586](https://github.com/awslabs/aws-sdk-rust/issues/586)) The `default_async_sleep` method on the `Client` builder has been removed. The default async sleep is
    wired up by default if none is provided.
- ⚠ (client, [smithy-rs#976](https://github.com/awslabs/smithy-rs/issues/976), [smithy-rs#1710](https://github.com/awslabs/smithy-rs/issues/1710)) Removed the need to generate operation output and retry aliases in codegen.
- ⚠ (client, [smithy-rs#1715](https://github.com/awslabs/smithy-rs/issues/1715), [smithy-rs#1717](https://github.com/awslabs/smithy-rs/issues/1717)) `ClassifyResponse` was renamed to `ClassifyRetry` and is no longer implemented for the unit type.
- ⚠ (client, [smithy-rs#1715](https://github.com/awslabs/smithy-rs/issues/1715), [smithy-rs#1717](https://github.com/awslabs/smithy-rs/issues/1717)) The `with_retry_policy` and `retry_policy` functions on `aws_smithy_http::operation::Operation` have been
    renamed to `with_retry_classifier` and `retry_classifier` respectively. Public member `retry_policy` on
    `aws_smithy_http::operation::Parts` has been renamed to `retry_classifier`.

**New this release:**
- 🎉 (client, [smithy-rs#1647](https://github.com/awslabs/smithy-rs/issues/1647), [smithy-rs#1112](https://github.com/awslabs/smithy-rs/issues/1112)) Implemented customizable operations per [RFC-0017](https://awslabs.github.io/smithy-rs/design/rfcs/rfc0017_customizable_client_operations.html).

    Before this change, modifying operations before sending them required using lower-level APIs:

    ```rust
    let input = SomeOperationInput::builder().some_value(5).build()?;

    let operation = {
        let op = input.make_operation(&service_config).await?;
        let (request, response) = op.into_request_response();

        let request = request.augment(|req, _props| {
            req.headers_mut().insert(
                HeaderName::from_static("x-some-header"),
                HeaderValue::from_static("some-value")
            );
            Result::<_, Infallible>::Ok(req)
        })?;

        Operation::from_parts(request, response)
    };

    let response = smithy_client.call(operation).await?;
    ```

    Now, users may easily modify operations before sending with the `customize` method:

    ```rust
    let response = client.some_operation()
        .some_value(5)
        .customize()
        .await?
        .mutate_request(|mut req| {
            req.headers_mut().insert(
                HeaderName::from_static("x-some-header"),
                HeaderValue::from_static("some-value")
            );
        })
        .send()
        .await?;
    ```
- (client, [smithy-rs#1735](https://github.com/awslabs/smithy-rs/issues/1735), @vojtechkral) Lower log level of two info-level log messages.
- (all, [smithy-rs#1710](https://github.com/awslabs/smithy-rs/issues/1710)) Added `writable` property to `RustType` and `RuntimeType` that returns them in `Writable` form
- (all, [smithy-rs#1680](https://github.com/awslabs/smithy-rs/issues/1680), @ogudavid) Smithy IDL v2 mixins are now supported
- 🐛 (client, [smithy-rs#1715](https://github.com/awslabs/smithy-rs/issues/1715), [smithy-rs#1717](https://github.com/awslabs/smithy-rs/issues/1717)) Generated clients now retry transient errors without replacing the retry policy.
- 🐛 (all, [smithy-rs#1725](https://github.com/awslabs/smithy-rs/issues/1725), @sugmanue) Correctly determine nullability of members in IDLv2 models

**Contributors**
Thank you for your contributions! ❤
- @ogudavid ([smithy-rs#1680](https://github.com/awslabs/smithy-rs/issues/1680))
- @sugmanue ([smithy-rs#1725](https://github.com/awslabs/smithy-rs/issues/1725))
- @vojtechkral ([smithy-rs#1735](https://github.com/awslabs/smithy-rs/issues/1735))

August 31st, 2022
=================
**Breaking Changes:**
+1 −239
Original line number Diff line number Diff line
@@ -10,241 +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 = "Lower log level of two info-level log messages."
references = ["smithy-rs#1735"]
meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "client" }
author = "vojtechkral"

[[aws-sdk-rust]]
message = "`aws_config::RetryConfig` no longer implements `Default`, and its `new` function has been replaced with `standard`."
references = ["smithy-rs#1603", "aws-sdk-rust#586"]
meta = { "breaking" = true, "tada" = false, "bug" = false }
author = "jdisanti"

[[smithy-rs]]
message = "`aws_smithy_types::RetryConfig` no longer implements `Default`, and its `new` function has been replaced with `standard`."
references = ["smithy-rs#1603", "aws-sdk-rust#586"]
meta = { "breaking" = true, "tada" = false, "bug" = false, "target" = "client" }
author = "jdisanti"

[[aws-sdk-rust]]
message = """
Direct configuration of `aws_config::SdkConfig` now defaults to retries being disabled.
If you're using `aws_config::load_from_env()` or `aws_config::from_env()` to configure
the SDK, then you are NOT affected by this change. If you use `SdkConfig::builder()` to
configure the SDK, then you ARE affected by this change and should set the retry config
on that builder.
"""
references = ["smithy-rs#1603", "aws-sdk-rust#586"]
meta = { "breaking" = true, "tada" = false, "bug" = false }
author = "jdisanti"

[[aws-sdk-rust]]
message = """
Client creation now panics if retries or timeouts are enabled without an async sleep
implementation set on the SDK config.
If you're using the Tokio runtime and have the `rt-tokio` feature enabled (which is enabled by default),
then you shouldn't notice this change at all.
Otherwise, if using something other than Tokio as the async runtime, the `AsyncSleep` trait must be implemented,
and that implementation given to the config builder via the `sleep_impl` method. Alternatively, retry can be
explicitly turned off by setting the retry config to `RetryConfig::disabled()`, which will result in successful
client creation without an async sleep implementation.
"""
references = ["smithy-rs#1603", "aws-sdk-rust#586"]
meta = { "breaking" = true, "tada" = false, "bug" = false }
author = "jdisanti"

[[smithy-rs]]
message = """
Client creation now panics if retries or timeouts are enabled without an async sleep implementation.
If you're using the Tokio runtime and have the `rt-tokio` feature enabled (which is enabled by default),
then you shouldn't notice this change at all.
Otherwise, if using something other than Tokio as the async runtime, the `AsyncSleep` trait must be implemented,
and that implementation given to the config builder via the `sleep_impl` method. Alternatively, retry can be
explicitly turned off by setting `max_attempts` to 1, which will result in successful client creation without an
async sleep implementation.
"""
references = ["smithy-rs#1603", "aws-sdk-rust#586"]
meta = { "breaking" = true, "tada" = false, "bug" = false, "target" = "client" }
author = "jdisanti"

[[smithy-rs]]
message = """
The `default_async_sleep` method on the `Client` builder has been removed. The default async sleep is
wired up by default if none is provided.
"""
references = ["smithy-rs#1603", "aws-sdk-rust#586"]
meta = { "breaking" = true, "tada" = false, "bug" = false, "target" = "client" }
author = "jdisanti"

[[aws-sdk-rust]]
message = """
Implemented customizable operations per [RFC-0017](https://awslabs.github.io/smithy-rs/design/rfcs/rfc0017_customizable_client_operations.html).

Before this change, modifying operations before sending them required using lower-level APIs:

```rust
let input = SomeOperationInput::builder().some_value(5).build()?;

let operation = {
    let op = input.make_operation(&service_config).await?;
    let (request, response) = op.into_request_response();

    let request = request.augment(|req, _props| {
        req.headers_mut().insert(
            HeaderName::from_static("x-some-header"),
            HeaderValue::from_static("some-value")
        );
        Result::<_, Infallible>::Ok(req)
    })?;

    Operation::from_parts(request, response)
};

let response = smithy_client.call(operation).await?;
```

Now, users may easily modify operations before sending with the `customize` method:

```rust
let response = client.some_operation()
    .some_value(5)
    .customize()
    .await?
    .mutate_request(|mut req| {
        req.headers_mut().insert(
            HeaderName::from_static("x-some-header"),
            HeaderValue::from_static("some-value")
        );
    })
    .send()
    .await?;
```
"""
references = ["smithy-rs#1647", "smithy-rs#1112"]
meta = { "breaking" = false, "tada" = true, "bug" = false }
author = "Velfi"

[[smithy-rs]]
message = """
Implemented customizable operations per [RFC-0017](https://awslabs.github.io/smithy-rs/design/rfcs/rfc0017_customizable_client_operations.html).

Before this change, modifying operations before sending them required using lower-level APIs:

```rust
let input = SomeOperationInput::builder().some_value(5).build()?;

let operation = {
    let op = input.make_operation(&service_config).await?;
    let (request, response) = op.into_request_response();

    let request = request.augment(|req, _props| {
        req.headers_mut().insert(
            HeaderName::from_static("x-some-header"),
            HeaderValue::from_static("some-value")
        );
        Result::<_, Infallible>::Ok(req)
    })?;

    Operation::from_parts(request, response)
};

let response = smithy_client.call(operation).await?;
```

Now, users may easily modify operations before sending with the `customize` method:

```rust
let response = client.some_operation()
    .some_value(5)
    .customize()
    .await?
    .mutate_request(|mut req| {
        req.headers_mut().insert(
            HeaderName::from_static("x-some-header"),
            HeaderValue::from_static("some-value")
        );
    })
    .send()
    .await?;
```
"""
references = ["smithy-rs#1647", "smithy-rs#1112"]
meta = { "breaking" = false, "tada" = true, "bug" = false, "target" = "client"}
author = "Velfi"

[[smithy-rs]]
message = "Removed the need to generate operation output and retry aliases in codegen."
references = ["smithy-rs#976", "smithy-rs#1710"]
meta = { "breaking" = true, "tada" = false, "bug" = false, "target" = "client" }
author = "Velfi"

[[smithy-rs]]
message = "Added `writable` property to `RustType` and `RuntimeType` that returns them in `Writable` form"
references = ["smithy-rs#1710"]
meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "all" }
author = "Velfi"

[[smithy-rs]]
message = "Smithy IDL v2 mixins are now supported"
references = ["smithy-rs#1680"]
meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "all"}
author = "ogudavid"

[[aws-sdk-rust]]
message = "The AWS STS SDK now automatically retries `IDPCommunicationError` when calling `AssumeRoleWithWebIdentity`"
references = ["smithy-rs#966", "smithy-rs#1718"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "jdisanti"

[[smithy-rs]]
message = "Generated clients now retry transient errors without replacing the retry policy."
references = ["smithy-rs#1715", "smithy-rs#1717"]
meta = { "breaking" = false, "tada" = false, "bug" = true, "target" = "client" }
author = "jdisanti"

[[smithy-rs]]
message = "`ClassifyResponse` was renamed to `ClassifyRetry` and is no longer implemented for the unit type."
references = ["smithy-rs#1715", "smithy-rs#1717"]
meta = { "breaking" = true, "tada" = false, "bug" = false, "target" = "client" }
author = "jdisanti"

[[smithy-rs]]
message = """
The `with_retry_policy` and `retry_policy` functions on `aws_smithy_http::operation::Operation` have been
renamed to `with_retry_classifier` and `retry_classifier` respectively. Public member `retry_policy` on
`aws_smithy_http::operation::Parts` has been renamed to `retry_classifier`.
"""
references = ["smithy-rs#1715", "smithy-rs#1717"]
meta = { "breaking" = true, "tada" = false, "bug" = false, "target" = "client" }
author = "jdisanti"

[[aws-sdk-rust]]
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."
references = ["aws-sdk-rust#303", "smithy-rs#1717"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "jdisanti"

[[aws-sdk-rust]]
message = "`ClassifyResponse` was renamed to `ClassifyRetry` and is no longer implemented for the unit type."
references = ["smithy-rs#1715", "smithy-rs#1717"]
meta = { "breaking" = true, "tada" = false, "bug" = false }
author = "jdisanti"

[[aws-sdk-rust]]
message = """
The `with_retry_policy` and `retry_policy` functions on `aws_smithy_http::operation::Operation` have been
renamed to `with_retry_classifier` and `retry_classifier` respectively. Public member `retry_policy` on
`aws_smithy_http::operation::Parts` has been renamed to `retry_classifier`.
"""
references = ["smithy-rs#1715", "smithy-rs#1717"]
meta = { "breaking" = true, "tada" = false, "bug" = false }
author = "jdisanti"

[[smithy-rs]]
message = "Correctly determine nullability of members in IDLv2 models"
references = ["smithy-rs#1725"]
meta = { "breaking" = false, "tada" = false, "bug" = true, "target" = "all"}
author = "sugmanue"
+130 −5
Original line number Diff line number Diff line
@@ -16,7 +16,8 @@
      "references": [
        "smithy-rs#1641"
      ],
      "since-commit": "6e96137ca79b592960881b140ab17717b1ebb780"
      "since-commit": "6e96137ca79b592960881b140ab17717b1ebb780",
      "age": 1
    },
    {
      "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",
@@ -29,7 +30,8 @@
      "references": [
        "smithy-rs#1598"
      ],
      "since-commit": "6e96137ca79b592960881b140ab17717b1ebb780"
      "since-commit": "6e96137ca79b592960881b140ab17717b1ebb780",
      "age": 1
    },
    {
      "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",
@@ -42,7 +44,8 @@
      "references": [
        "smithy-rs#1274"
      ],
      "since-commit": "6e96137ca79b592960881b140ab17717b1ebb780"
      "since-commit": "6e96137ca79b592960881b140ab17717b1ebb780",
      "age": 1
    },
    {
      "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.",
@@ -55,7 +58,8 @@
      "references": [
        "smithy-rs#1699"
      ],
      "since-commit": "6e96137ca79b592960881b140ab17717b1ebb780"
      "since-commit": "6e96137ca79b592960881b140ab17717b1ebb780",
      "age": 1
    },
    {
      "message": "The AWS S3 `GetObjectAttributes` operation will no longer fail with an XML error.",
@@ -68,7 +72,128 @@
      "references": [
        "aws-sdk-rust#609"
      ],
      "since-commit": "6e96137ca79b592960881b140ab17717b1ebb780"
      "since-commit": "6e96137ca79b592960881b140ab17717b1ebb780",
      "age": 1
    },
    {
      "message": "`aws_config::RetryConfig` no longer implements `Default`, and its `new` function has been replaced with `standard`.",
      "meta": {
        "bug": false,
        "breaking": true,
        "tada": false
      },
      "author": "jdisanti",
      "references": [
        "smithy-rs#1603",
        "aws-sdk-rust#586"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 1
    },
    {
      "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",
      "meta": {
        "bug": false,
        "breaking": true,
        "tada": false
      },
      "author": "jdisanti",
      "references": [
        "smithy-rs#1603",
        "aws-sdk-rust#586"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 1
    },
    {
      "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",
      "meta": {
        "bug": false,
        "breaking": true,
        "tada": false
      },
      "author": "jdisanti",
      "references": [
        "smithy-rs#1603",
        "aws-sdk-rust#586"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 1
    },
    {
      "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",
      "meta": {
        "bug": false,
        "breaking": false,
        "tada": true
      },
      "author": "Velfi",
      "references": [
        "smithy-rs#1647",
        "smithy-rs#1112"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 1
    },
    {
      "message": "The AWS STS SDK now automatically retries `IDPCommunicationError` when calling `AssumeRoleWithWebIdentity`",
      "meta": {
        "bug": true,
        "breaking": false,
        "tada": false
      },
      "author": "jdisanti",
      "references": [
        "smithy-rs#966",
        "smithy-rs#1718"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 1
    },
    {
      "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.",
      "meta": {
        "bug": true,
        "breaking": false,
        "tada": false
      },
      "author": "jdisanti",
      "references": [
        "aws-sdk-rust#303",
        "smithy-rs#1717"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 1
    },
    {
      "message": "`ClassifyResponse` was renamed to `ClassifyRetry` and is no longer implemented for the unit type.",
      "meta": {
        "bug": false,
        "breaking": true,
        "tada": false
      },
      "author": "jdisanti",
      "references": [
        "smithy-rs#1715",
        "smithy-rs#1717"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 1
    },
    {
      "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",
      "meta": {
        "bug": false,
        "breaking": true,
        "tada": false
      },
      "author": "jdisanti",
      "references": [
        "smithy-rs#1715",
        "smithy-rs#1717"
      ],
      "since-commit": "3952a10c44ec1f2eed4a8d5e401d36e07e8a2c73",
      "age": 1
    }
  ],
  "aws-sdk-model": []