Skip to content

Commit bf99456

Browse files
authored
Merge branch 'main' into no_once_cell
2 parents 41f99f1 + 7ace503 commit bf99456

File tree

39 files changed

+2184
-348
lines changed

39 files changed

+2184
-348
lines changed

.github/workflows/ci-merge-queue.yml

Lines changed: 0 additions & 103 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ on:
3333
required: false
3434

3535
env:
36-
rust_version: 1.81.0
36+
rust_version: 1.82.0
3737
rust_toolchain_components: clippy,rustfmt
3838
ENCRYPTED_DOCKER_PASSWORD: ${{ secrets.ENCRYPTED_DOCKER_PASSWORD }}
3939
DOCKER_LOGIN_TOKEN_PASSPHRASE: ${{ secrets.DOCKER_LOGIN_TOKEN_PASSPHRASE }}

.github/workflows/claim-crate-names.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ concurrency:
1010
cancel-in-progress: true
1111

1212
env:
13-
rust_version: 1.81.0
13+
rust_version: 1.82.0
1414

1515
name: Claim unpublished crate names on crates.io
1616
run-name: ${{ github.workflow }}

.github/workflows/github-pages.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88
name: Update GitHub Pages
99

1010
env:
11-
rust_version: 1.81.0
11+
rust_version: 1.82.0
1212

1313
# Allow only one doc pages build to run at a time for the entire smithy-rs repo
1414
concurrency:

.github/workflows/pull-request-bot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ env:
3030
apt_dependencies: libssl-dev gnuplot jq
3131
java_version: 17
3232
rust_toolchain_components: clippy,rustfmt
33-
rust_nightly_version: nightly-2024-06-30
33+
rust_nightly_version: nightly-2025-05-04
3434

3535
jobs:
3636
generate-diff:

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ concurrency:
1010
cancel-in-progress: true
1111

1212
env:
13-
rust_version: 1.81.0
13+
rust_version: 1.82.0
1414

1515
name: Release smithy-rs
1616
on:

.github/workflows/update-sdk-next.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
- name: Set up Rust
4747
uses: dtolnay/rust-toolchain@master
4848
with:
49-
toolchain: 1.81.0
49+
toolchain: 1.82.0
5050
- name: Delete old SDK
5151
run: |
5252
- name: Generate a fresh SDK

CHANGELOG.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,65 @@
11
<!-- Do not manually edit this file. Use the `changelogger` tool. -->
2+
May 9th, 2025
3+
=============
4+
**Breaking Changes:**
5+
- :warning: (all, [smithy-rs#4120](https://github.com/smithy-lang/smithy-rs/issues/4120)) Update MSRV to 1.82.0
6+
7+
**New this release:**
8+
- :bug::tada: (client, [smithy-rs#4074](https://github.com/smithy-lang/smithy-rs/issues/4074), [smithy-rs#3926](https://github.com/smithy-lang/smithy-rs/issues/3926)) Promote `aws-smithy-mocks-experimental` to `aws-smithy-mocks`. This crate is now a recommended tool for testing
9+
generated SDK clients. This release includes several fixes as well as a new sequence builder API that can be
10+
used to test more complex scenarios such as retries.
11+
12+
```rust
13+
use aws_sdk_s3::operation::get_object::GetObjectOutput;
14+
use aws_sdk_s3::config::retry::RetryConfig;
15+
use aws_smithy_types::byte_stream::ByteStream;
16+
use aws_smithy_mocks::{mock, mock_client, RuleMode};
17+
18+
#[tokio::test]
19+
async fn test_retry_behavior() {
20+
// Create a rule that returns 503 twice, then succeeds
21+
let retry_rule = mock!(aws_sdk_s3::Client::get_object)
22+
.sequence()
23+
.http_status(503, None)
24+
.times(2) // Return 503 HTTP status twice
25+
.output(|| GetObjectOutput::builder() // Finally return a successful output
26+
.body(ByteStream::from_static(b"success"))
27+
.build())
28+
.build();
29+
30+
// Create a mocked client with the rule
31+
let s3 = mock_client!(
32+
aws_sdk_s3,
33+
RuleMode::Sequential,
34+
[&retry_rule],
35+
|client_builder| {
36+
client_builder.retry_config(RetryConfig::standard().with_max_attempts(3))
37+
}
38+
);
39+
40+
// This should succeed after two retries
41+
let result = s3
42+
.get_object()
43+
.bucket("test-bucket")
44+
.key("test-key")
45+
.send()
46+
.await
47+
.expect("success after retries");
48+
49+
// Verify the response
50+
let data = result.body.collect().await.expect("successful read").to_vec();
51+
assert_eq!(data, b"success");
52+
53+
// Verify all responses were used
54+
assert_eq!(retry_rule.num_calls(), 3);
55+
}
56+
```
57+
- :bug: (all, [smithy-rs#4117](https://github.com/smithy-lang/smithy-rs/issues/4117)) Fix a bug where fields that were initially annotated with the `required` trait and later updated to use the `addedDefault` trait were not serialized when their values matched the default, even when the values were explicitly set. With this fix, fields with `addedDefault` are now always serialized.
58+
59+
60+
May 2nd, 2025
61+
=============
62+
263
April 23rd, 2025
364
================
465
**Breaking Changes:**

aws/SDK_CHANGELOG.next.json

Lines changed: 42 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -6,118 +6,116 @@
66
"smithy-rs": [],
77
"aws-sdk-rust": [
88
{
9-
"message": "Adds support for event stream operations with non-REST protocols such as AWS JSON. This update enables operations, including `SubscribeToShard` in Kinesis and `StartLiveTail` in CloudWatchLogs in the Rust SDK.\n",
9+
"message": "Update spans to better align with spec.\n",
1010
"meta": {
1111
"bug": false,
1212
"breaking": false,
13-
"tada": true
13+
"tada": false
1414
},
15-
"author": "ysaito1001",
15+
"author": "landonxjames",
1616
"references": [
17-
"aws-sdk-rust#213",
18-
"aws-sdk-rust#1188"
17+
"smithy-rs#4052"
1918
],
20-
"since-commit": "64144f4024f71b092facd40d4635d4011ea0b7e5",
19+
"since-commit": "7558d31f17b69bce8785ffa833c575d0b172209c",
2120
"age": 5
2221
},
2322
{
24-
"message": "Add missing `request_checksum_calculation` and `response_checksum_validation` setters to the `ConfigLoader`\n",
23+
"message": "Replace the `once_cell` crate with the `std` counterpart in AWS runtime crates.\n",
2524
"meta": {
26-
"bug": true,
25+
"bug": false,
2726
"breaking": false,
2827
"tada": false
2928
},
30-
"author": "landonxjames",
29+
"author": "FalkWoldmann",
3130
"references": [
32-
"smithy-rs#920"
31+
"smithy-rs#4050"
3332
],
34-
"since-commit": "64144f4024f71b092facd40d4635d4011ea0b7e5",
35-
"age": 5
33+
"since-commit": "f0c92d92b680771787af8ab60995d0e1fae02611",
34+
"age": 3
3635
},
3736
{
38-
"message": "Updates the default HTTP client to be based on the 1.x version of hyper and updates the default TLS provider to [rustls](https://github.com/rustls/rustls) with [aws-lc](https://github.com/aws/aws-lc-rs). For more information see the GitHub [discussion](https://github.com/awslabs/aws-sdk-rust/discussions/1257).\n",
37+
"message": "Fix an issue where a custom `Content-Encoding` header was incorrectly overwritten by the `aws-chunked` header value.\n",
3938
"meta": {
40-
"bug": false,
39+
"bug": true,
4140
"breaking": false,
4241
"tada": false
4342
},
44-
"author": "aajtodd",
43+
"author": "ysaito1001",
4544
"references": [
46-
"aws-sdk-rust#977",
47-
"smithy-rs#1925",
48-
"smithy-rs#3710"
45+
"aws-sdk-rust#1281"
4946
],
50-
"since-commit": "bdec1a232a5dfdba16bafd1f637c99a920a30734",
51-
"age": 4
47+
"since-commit": "f0c92d92b680771787af8ab60995d0e1fae02611",
48+
"age": 3
5249
},
5350
{
54-
"message": "Update spans to better align with spec.\n",
51+
"message": "Add support for the account-based endpoints in AWS SDKs. For more details, please refer to the [AWS SDKs and Tools Reference Guide on Account-Based Endpoints](https://docs.aws.amazon.com/sdkref/latest/guide/feature-account-endpoints.html).\n",
5552
"meta": {
5653
"bug": false,
5754
"breaking": false,
58-
"tada": false
55+
"tada": true
5956
},
60-
"author": "landonxjames",
57+
"author": "ysaito1001",
6158
"references": [
62-
"smithy-rs#4052"
59+
"smithy-rs#3776"
6360
],
64-
"since-commit": "7558d31f17b69bce8785ffa833c575d0b172209c",
61+
"since-commit": "f0c92d92b680771787af8ab60995d0e1fae02611",
6562
"age": 3
6663
},
6764
{
68-
"message": "Replace the `once_cell` crate with the `std` counterpart in AWS runtime crates.\n",
65+
"message": "Fix service specific endpoint url keys\n",
6966
"meta": {
70-
"bug": false,
67+
"bug": true,
7168
"breaking": false,
7269
"tada": false
7370
},
74-
"author": "FalkWoldmann",
71+
"author": "aajtodd",
7572
"references": [
76-
"smithy-rs#4050"
73+
"aws-sdk-rust#1252"
7774
],
7875
"since-commit": "f0c92d92b680771787af8ab60995d0e1fae02611",
79-
"age": 1
76+
"age": 3
8077
},
8178
{
82-
"message": "Fix an issue where a custom `Content-Encoding` header was incorrectly overwritten by the `aws-chunked` header value.\n",
79+
"message": "Fix a bug where fields that were initially annotated with the `required` trait and later updated to use the `addedDefault` trait were not serialized when their values matched the default, even when the values were explicitly set. With this fix, fields with `addedDefault` are now always serialized.\n",
8380
"meta": {
8481
"bug": true,
8582
"breaking": false,
8683
"tada": false
8784
},
8885
"author": "ysaito1001",
8986
"references": [
90-
"aws-sdk-rust#1281"
87+
"smithy-rs#4117"
9188
],
92-
"since-commit": "f0c92d92b680771787af8ab60995d0e1fae02611",
89+
"since-commit": "84f5464aacf3544f706d75af0aaddfea42c20e9f",
9390
"age": 1
9491
},
9592
{
96-
"message": "Add support for the account-based endpoints in AWS SDKs. For more details, please refer to the [AWS SDKs and Tools Reference Guide on Account-Based Endpoints](https://docs.aws.amazon.com/sdkref/latest/guide/feature-account-endpoints.html).\n",
93+
"message": "Promote `aws-smithy-mocks-experimental` to `aws-smithy-mocks`. This crate is now a recommended tool for testing\ngenerated SDK clients. This release includes several fixes as well as a new sequence builder API that can be\nused to test more complex scenarios such as retries.\n\n```rust\nuse aws_sdk_s3::operation::get_object::GetObjectOutput;\nuse aws_sdk_s3::config::retry::RetryConfig;\nuse aws_smithy_types::byte_stream::ByteStream;\nuse aws_smithy_mocks::{mock, mock_client, RuleMode};\n\n#[tokio::test]\nasync fn test_retry_behavior() {\n // Create a rule that returns 503 twice, then succeeds\n let retry_rule = mock!(aws_sdk_s3::Client::get_object)\n .sequence()\n .http_status(503, None)\n .times(2) // Return 503 HTTP status twice\n .output(|| GetObjectOutput::builder() // Finally return a successful output\n .body(ByteStream::from_static(b\"success\"))\n .build())\n .build();\n\n // Create a mocked client with the rule\n let s3 = mock_client!(\n aws_sdk_s3,\n RuleMode::Sequential,\n [&retry_rule],\n |client_builder| {\n client_builder.retry_config(RetryConfig::standard().with_max_attempts(3))\n }\n );\n\n // This should succeed after two retries\n let result = s3\n .get_object()\n .bucket(\"test-bucket\")\n .key(\"test-key\")\n .send()\n .await\n .expect(\"success after retries\");\n\n // Verify the response\n let data = result.body.collect().await.expect(\"successful read\").to_vec();\n assert_eq!(data, b\"success\");\n\n // Verify all responses were used\n assert_eq!(retry_rule.num_calls(), 3);\n}\n```\n",
9794
"meta": {
98-
"bug": false,
95+
"bug": true,
9996
"breaking": false,
10097
"tada": true
10198
},
102-
"author": "ysaito1001",
99+
"author": "aajtodd",
103100
"references": [
104-
"smithy-rs#3776"
101+
"smithy-rs#4074",
102+
"smithy-rs#3926"
105103
],
106-
"since-commit": "f0c92d92b680771787af8ab60995d0e1fae02611",
104+
"since-commit": "84f5464aacf3544f706d75af0aaddfea42c20e9f",
107105
"age": 1
108106
},
109107
{
110-
"message": "Fix service specific endpoint url keys\n",
108+
"message": "Update MSRV to 1.82.0\n",
111109
"meta": {
112-
"bug": true,
113-
"breaking": false,
110+
"bug": false,
111+
"breaking": true,
114112
"tada": false
115113
},
116-
"author": "aajtodd",
114+
"author": "ysaito1001",
117115
"references": [
118-
"aws-sdk-rust#1252"
116+
"smithy-rs#4120"
119117
],
120-
"since-commit": "f0c92d92b680771787af8ab60995d0e1fae02611",
118+
"since-commit": "84f5464aacf3544f706d75af0aaddfea42c20e9f",
121119
"age": 1
122120
}
123121
],

0 commit comments

Comments
 (0)