Skip to content

Commit

Permalink
Update changelog
Browse files Browse the repository at this point in the history
  • Loading branch information
aws-sdk-rust-ci committed Feb 14, 2023
1 parent 6c7fa4d commit 1b4eead
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 130 deletions.
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,17 @@
<!-- Do not manually edit this file. Use the `changelogger` tool. -->
February 14th, 2023
===================
**Breaking Changes:**
- ⚠🎉 (all, [smithy-rs#2222](https://github.com/awslabs/smithy-rs/issues/2222), @Nugine) Upgrade Rust MSRV to 1.63.0

**New this release:**
- 🐛 (server, [smithy-rs#2349](https://github.com/awslabs/smithy-rs/issues/2349)) Fix inconsistent casing in services re-export.
- 🐛 (client, [aws-sdk-rust#736](https://github.com/awslabs/aws-sdk-rust/issues/736)) Fix issue where clients using native-tls connector were prevented from making HTTPS requests.

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

February 6th, 2023
==================
**Breaking Changes:**
Expand Down
38 changes: 1 addition & 37 deletions CHANGELOG.next.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,40 +9,4 @@
# message = "Fix typos in module documentation for generated crates"
# references = ["smithy-rs#920"]
# meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "client | server | all"}
# author = "rcoh"

[[aws-sdk-rust]]
message = "Upgrade Rust MSRV to 1.63.0"
references = ["smithy-rs#2222"]
meta = { "breaking" = true, "tada" = true, "bug" = false }
author = "Nugine"

[[smithy-rs]]
message = "Upgrade Rust MSRV to 1.63.0"
references = ["smithy-rs#2222"]
meta = { "breaking" = true, "tada" = true, "bug" = false, "target" = "all" }
author = "Nugine"

[[aws-sdk-rust]]
message = "Adds jitter to `LazyCredentialsCache`. This allows credentials with the same expiry to expire at slightly different times, thereby preventing thundering herds."
references = ["smithy-rs#2335"]
meta = { "breaking" = false, "tada" = false, "bug" = false }
author = "ysaito1001"

[[smithy-rs]]
message = "Fix inconsistent casing in services re-export."
references = ["smithy-rs#2349"]
meta = { "breaking" = false, "tada" = false, "bug" = true, "target" = "server" }
author = "hlbarber"

[[aws-sdk-rust]]
message = "Fix issue where clients using native-tls connector were prevented from making HTTPS requests."
references = ["aws-sdk-rust#736"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "Velfi"

[[smithy-rs]]
message = "Fix issue where clients using native-tls connector were prevented from making HTTPS requests."
references = ["aws-sdk-rust#736"]
meta = { "breaking" = false, "tada" = false, "bug" = true, "target" = "client" }
author = "Velfi"
# author = "rcoh"
142 changes: 49 additions & 93 deletions aws/SDK_CHANGELOG.next.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,92 +5,6 @@
{
"smithy-rs": [],
"aws-sdk-rust": [
{
"message": "Integrate Endpoints 2.0 into the Rust SDK. Endpoints 2.0 enables features like S3 virtual addressing & S3\nobject lambda. As part of this change, there are several breaking changes although efforts have been made to deprecate\nwhere possible to smooth the upgrade path.\n1. `aws_smithy_http::endpoint::Endpoint` and the `endpoint_resolver` methods have been deprecated. In general, these usages\n should be replaced with usages of `endpoint_url` instead. `endpoint_url` accepts a string so an `aws_smithy_http::Endpoint`\n does not need to be constructed. This structure and methods will be removed in a future release.\n2. The `endpoint_resolver` method on `<service>::config::Builder` now accepts a service specific endpoint resolver instead\n of an implementation of `ResolveAwsEndpoint`. Most users will be able to replace these usages with a usage of `endpoint_url`.\n3. `ResolveAwsEndpoint` has been deprecated and will be removed in a future version of the SDK.\n4. The SDK does not support \"pseudo regions\" anymore. Specifically, regions like `iam-fips` will no longer resolve to a FIPS endpoint.\n",
"meta": {
"bug": false,
"breaking": true,
"tada": true
},
"author": "rcoh",
"references": [
"smithy-rs#1784",
"smithy-rs#2074"
],
"since-commit": "40da9a32b38e198da6ca2223b86c314b26438230",
"age": 5
},
{
"message": "Add additional configuration parameters to `aws_sdk_s3::Config`.\n\nThe launch of endpoints 2.0 includes more configuration options for S3. The default behavior for endpoint resolution has\nbeen changed. Before, all requests hit the path-style endpoint. Going forward, all requests that can be routed to the\nvirtually hosted bucket will be routed there automatically.\n- `force_path_style`: Requests will now default to the virtually-hosted endpoint `<bucketname>.s3.<region>.amazonaws.com`\n- `use_arn_region`: Enables this client to use an ARN’s region when constructing an endpoint instead of the client’s configured region.\n- `accelerate`: Enables this client to use S3 Transfer Acceleration endpoints.\n\nNote: the AWS SDK for Rust does not currently support Multi Region Access Points (MRAP).\n",
"meta": {
"bug": false,
"breaking": true,
"tada": true
},
"author": "rcoh",
"references": [
"smithy-rs#1784",
"smithy-rs#2074"
],
"since-commit": "40da9a32b38e198da6ca2223b86c314b26438230",
"age": 5
},
{
"message": "Move types for AWS SDK credentials to a separate crate.\nA new AWS runtime crate called `aws-credential-types` has been introduced. Types for AWS SDK credentials have been moved to that crate from `aws-config` and `aws-types`. The new crate is placed at the top of the dependency graph among AWS runtime crates with the aim of the downstream crates having access to the types defined in it.\n",
"meta": {
"bug": false,
"breaking": true,
"tada": false
},
"author": "ysaito1001",
"references": [
"smithy-rs#2108"
],
"since-commit": "40da9a32b38e198da6ca2223b86c314b26438230",
"age": 5
},
{
"message": "Add support for overriding profile name and profile file location across all providers. Prior to this change, each provider needed to be updated individually.\n\n### Before\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\n### After\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 sdk_config = aws_config::from_env()\n .profile_files(profile_files)\n .load()\n .await;\n/// ```\n",
"meta": {
"bug": false,
"breaking": false,
"tada": false
},
"author": "rcoh",
"references": [
"smithy-rs#2152"
],
"since-commit": "40da9a32b38e198da6ca2223b86c314b26438230",
"age": 5
},
{
"message": "`aws_config::profile::retry_config` && `aws_config::environment::retry_config` have been removed. Use `aws_config::default_provider::retry_config` instead.",
"meta": {
"bug": false,
"breaking": true,
"tada": false
},
"author": "rcoh",
"references": [
"smithy-rs#2162"
],
"since-commit": "40da9a32b38e198da6ca2223b86c314b26438230",
"age": 5
},
{
"message": "Add support for resolving FIPS and dual-stack endpoints.\n\nFIPS and dual-stack endpoints can each be configured in multiple ways:\n1. Automatically from the environment and AWS profile\n2. Across all clients loaded from the same `SdkConfig` via `from_env().use_dual_stack(true).load().await`\n3. At a client level when constructing the configuration for an individual client.\n\nNote: Not all services support FIPS and dual-stack.\n",
"meta": {
"bug": false,
"breaking": false,
"tada": true
},
"author": "rcoh",
"references": [
"smithy-rs#2168"
],
"since-commit": "40da9a32b38e198da6ca2223b86c314b26438230",
"age": 5
},
{
"message": "Improve SDK credentials caching through type safety. `LazyCachingCredentialsProvider` has been renamed to `LazyCredentialsCache` and is no longer treated as a credentials provider. Furthermore, you do not create a `LazyCredentialsCache` directly, and instead you interact with `CredentialsCache`. This introduces the following breaking changes.\n\nIf you previously used `LazyCachingCredentialsProvider`, you can replace it with `CredentialsCache`.\n<details>\n<summary>Example</summary>\n\nBefore:\n```rust\nuse aws_config::meta::credentials::lazy_caching::LazyCachingCredentialsProvider;\nuse aws_types::provider::ProvideCredentials;\n\nfn make_provider() -> impl ProvideCredentials {\n // --snip--\n}\n\nlet credentials_provider =\n LazyCachingCredentialsProvider::builder()\n .load(make_provider())\n .build();\n\nlet sdk_config = aws_config::from_env()\n .credentials_provider(credentials_provider)\n .load()\n .await;\n\nlet client = aws_sdk_s3::Client::new(&sdk_config);\n```\n\nAfter:\n```rust\nuse aws_credential_types::cache::CredentialsCache;\nuse aws_types::provider::ProvideCredentials;\n\nfn make_provider() -> impl ProvideCredentials {\n // --snip--\n}\n\n// Wrapping a result of `make_provider` in `LazyCredentialsCache` is done automatically.\nlet sdk_config = aws_config::from_env()\n .credentials_cache(CredentialsCache::lazy()) // This line can be omitted because it is on by default.\n .credentials_provider(make_provider())\n .load()\n .await;\n\nlet client = aws_sdk_s3::Client::new(&sdk_config);\n```\n\nIf you previously configured a `LazyCachingCredentialsProvider`, you can use the builder for `LazyCredentialsCache` instead.\n\nBefore:\n```rust\nuse aws_config::meta::credentials::lazy_caching::LazyCachingCredentialsProvider;\nuse aws_types::provider::ProvideCredentials;\nuse std::time::Duration;\n\nfn make_provider() -> impl ProvideCredentials {\n // --snip--\n}\n\nlet credentials_provider =\n LazyCachingCredentialsProvider::builder()\n .load(make_provider())\n .load_timeout(Duration::from_secs(60)) // Configures timeout.\n .build();\n\nlet sdk_config = aws_config::from_env()\n .credentials_provider(credentials_provider)\n .load()\n .await;\n\nlet client = aws_sdk_s3::Client::new(&sdk_config);\n```\n\nAfter:\n```rust\nuse aws_credential_types::cache::CredentialsCache;\nuse aws_types::provider::ProvideCredentials;\nuse std::time::Duration;\n\nfn make_provider() -> impl ProvideCredentials {\n // --snip--\n}\n\nlet sdk_config = aws_config::from_env()\n .credentials_cache(\n CredentialsCache::lazy_builder()\n .load_timeout(Duration::from_secs(60)) // Configures timeout.\n .into_credentials_cache(),\n )\n .credentials_provider(make_provider())\n .load()\n .await;\n\nlet client = aws_sdk_s3::Client::new(&sdk_config);\n```\n\nThe examples above only demonstrate how to use `credentials_cache` and `credentials_provider` methods on `aws_config::ConfigLoader` but the same code update can be applied when you interact with `aws_types::sdk_config::Builder` or the builder for a service-specific config, e.g. `aws_sdk_s3::config::Builder`.\n\n</details>\n\n\nIf you previously configured a `DefaultCredentialsChain` by calling `load_timeout`, `buffer_time`, or `default_credential_expiration` on its builder, you need to call the same set of methods on the builder for `LazyCredentialsCache` instead.\n<details>\n<summary>Example</summary>\n\nBefore:\n```rust\nuse aws_config::default_provider::credentials::DefaultCredentialsChain;\nuse std::time::Duration;\n\nlet credentials_provider = DefaultCredentialsChain::builder()\n .buffer_time(Duration::from_secs(30))\n .default_credential_expiration(Duration::from_secs(20 * 60))\n .build()\n .await;\n\nlet sdk_config = aws_config::from_env()\n .credentials_provider(credentials_provider)\n .load()\n .await;\n\nlet client = aws_sdk_s3::Client::new(&sdk_config);\n```\n\nAfter:\n```rust\nuse aws_config::default_provider::credentials::default_provider;\nuse aws_credential_types::cache::CredentialsCache;\nuse std::time::Duration;\n\n// Previously used methods no longer exist on the builder for `DefaultCredentialsChain`.\nlet credentials_provider = default_provider().await;\n\nlet sdk_config = aws_config::from_env()\n .credentials_cache(\n CredentialsCache::lazy_builder()\n .buffer_time(Duration::from_secs(30))\n .default_credential_expiration(Duration::from_secs(20 * 60))\n .into_credentials_cache(),\n )\n .credentials_provider(credentials_provider)\n .load()\n .await;\n\nlet client = aws_sdk_s3::Client::new(&sdk_config);\n```\n\n</details>\n",
"meta": {
Expand All @@ -104,7 +18,7 @@
"smithy-rs#2227"
],
"since-commit": "48ce90d3a32cc87337d87d1f291b41fc64f1e5bd",
"age": 3
"age": 4
},
{
"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",
Expand All @@ -119,7 +33,7 @@
"smithy-rs#2227"
],
"since-commit": "48ce90d3a32cc87337d87d1f291b41fc64f1e5bd",
"age": 3
"age": 4
},
{
"message": "Fix endpoint for s3.write_get_object_response(). This bug was introduced in 0.53.",
Expand All @@ -133,7 +47,7 @@
"smithy-rs#2204"
],
"since-commit": "48ce90d3a32cc87337d87d1f291b41fc64f1e5bd",
"age": 3
"age": 4
},
{
"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.",
Expand All @@ -147,7 +61,7 @@
"smithy-rs#2204"
],
"since-commit": "48ce90d3a32cc87337d87d1f291b41fc64f1e5bd",
"age": 3
"age": 4
},
{
"message": "Provide a way to retrieve fallback credentials if a call to `provide_credentials` is interrupted. An interrupt can occur when a timeout future is raced against a future for `provide_credentials`, and the former wins the race. A new method, `fallback_on_interrupt` on the `ProvideCredentials` trait, can be used in that case. The following code snippet from `LazyCredentialsCache::provide_cached_credentials` has been updated like so:\n\nBefore:\n```rust\nlet timeout_future = self.sleeper.sleep(self.load_timeout);\n// --snip--\nlet future = Timeout::new(provider.provide_credentials(), timeout_future);\nlet result = cache\n .get_or_load(|| {\n async move {\n let credentials = future.await.map_err(|_err| {\n CredentialsError::provider_timed_out(load_timeout)\n })??;\n // --snip--\n }\n }).await;\n// --snip--\n```\n\nAfter:\n```rust\nlet timeout_future = self.sleeper.sleep(self.load_timeout);\n// --snip--\nlet future = Timeout::new(provider.provide_credentials(), timeout_future);\nlet result = cache\n .get_or_load(|| {\n async move {\n let credentials = match future.await {\n Ok(creds) => creds?,\n Err(_err) => match provider.fallback_on_interrupt() { // can provide fallback credentials\n Some(creds) => creds,\n None => return Err(CredentialsError::provider_timed_out(load_timeout)),\n }\n };\n // --snip--\n }\n }).await;\n// --snip--\n```\n",
Expand All @@ -161,7 +75,7 @@
"smithy-rs#2246"
],
"since-commit": "1f3951f7f5100efdbd7465effe5615d9c75c225d",
"age": 1
"age": 2
},
{
"message": "Add static stability support to IMDS credentials provider. It does not alter common use cases for the provider, but allows the provider to serve expired credentials in case IMDS is unreachable. This allows requests to be dispatched to a target service with expired credentials. This, in turn, allows the target service to make the ultimate decision as to whether requests sent are valid or not.\n",
Expand All @@ -175,7 +89,7 @@
"smithy-rs#2258"
],
"since-commit": "1f3951f7f5100efdbd7465effe5615d9c75c225d",
"age": 1
"age": 2
},
{
"message": "Fix broken doc link for `tokio_stream::Stream` that is a re-export of `futures_core::Stream`.",
Expand All @@ -189,7 +103,7 @@
"smithy-rs#2271"
],
"since-commit": "1f3951f7f5100efdbd7465effe5615d9c75c225d",
"age": 1
"age": 2
},
{
"message": "Fix request canonicalization for HTTP requests with repeated headers (for example S3's `GetObjectAttributes`). Previously requests with repeated headers would fail with a 403 signature mismatch due to this bug.\n",
Expand All @@ -204,6 +118,48 @@
"aws-sdk-rust#720"
],
"since-commit": "1f3951f7f5100efdbd7465effe5615d9c75c225d",
"age": 2
},
{
"message": "Upgrade Rust MSRV to 1.63.0",
"meta": {
"bug": false,
"breaking": true,
"tada": true
},
"author": "Nugine",
"references": [
"smithy-rs#2222"
],
"since-commit": "6c7fa4d227b1224de4b6a1980ce4544603e8ba72",
"age": 1
},
{
"message": "Adds jitter to `LazyCredentialsCache`. This allows credentials with the same expiry to expire at slightly different times, thereby preventing thundering herds.",
"meta": {
"bug": false,
"breaking": false,
"tada": false
},
"author": "ysaito1001",
"references": [
"smithy-rs#2335"
],
"since-commit": "6c7fa4d227b1224de4b6a1980ce4544603e8ba72",
"age": 1
},
{
"message": "Fix issue where clients using native-tls connector were prevented from making HTTPS requests.",
"meta": {
"bug": true,
"breaking": false,
"tada": false
},
"author": "Velfi",
"references": [
"aws-sdk-rust#736"
],
"since-commit": "6c7fa4d227b1224de4b6a1980ce4544603e8ba72",
"age": 1
}
],
Expand Down

0 comments on commit 1b4eead

Please sign in to comment.