Skip to content

Commit 5e8001f

Browse files
authored
Merge branch 'main' into crc-fast
2 parents e1db9cf + 80ea5b9 commit 5e8001f

34 files changed

Lines changed: 766 additions & 290 deletions

File tree

.changelog/1767741904.md

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

.changelog/1768244447.md

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

.changelog/bump-lru.md

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

.changelog/observability-metrics.md

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

.changelog/token_bucket_time_source.md

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

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,23 @@
11
<!-- Do not manually edit this file. Use the `changelogger` tool. -->
2+
January 14th, 2026
3+
==================
4+
**New this release:**
5+
- (client) Add support for tracking observability business metrics (OBSERVABILITY_TRACING, OBSERVABILITY_OTEL_TRACING, OBSERVABILITY_OTEL_METRICS) in User-Agent headers when telemetry providers are configured.
6+
- :bug: (client, [smithy-rs#4459](https://github.com/smithy-lang/smithy-rs/issues/4459), @lnj) Updated the `TokenBucket` creation to initialize the bucket with the user-provided `TimeSource` from the `Config`.
7+
This fixes the bug in [issue 4459](https://github.com/smithy-lang/smithy-rs/issues/4459) that caused failures
8+
in WASM since the TokenBucket was being created with a default `SystemTime` based `TimeSource`
9+
- :bug: (client, @svix-jbrown) Update the `lru` dependency for `aws-sdk-s3` and `rust-runtime`
10+
- (client, [smithy-rs#4469](https://github.com/smithy-lang/smithy-rs/issues/4469), @greenwoodcm) Add support for `aws-smithy-mocks` interceptor to handle concurrent requests.
11+
- :bug: (client, [smithy-rs#4413](https://github.com/smithy-lang/smithy-rs/issues/4413)) Deprecate [NoAuthRuntimePlugin](https://docs.rs/aws-smithy-runtime/1.9.4/aws_smithy_runtime/client/auth/no_auth/struct.NoAuthRuntimePlugin.html), which does not properly configure the auth scheme option resolver for noAuth, and introduce `NoAuthRuntimePluginV2` that does.
12+
- (client) Update crc-fast to 1.9
13+
14+
**Contributors**
15+
Thank you for your contributions! ❤
16+
- @greenwoodcm ([smithy-rs#4469](https://github.com/smithy-lang/smithy-rs/issues/4469))
17+
- @lnj ([smithy-rs#4459](https://github.com/smithy-lang/smithy-rs/issues/4459))
18+
- @svix-jbrown
19+
20+
221
December 16th, 2025
322
===================
423
**New this release:**

aws/SDK_CHANGELOG.next.json

Lines changed: 29 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -5,64 +5,6 @@
55
{
66
"smithy-rs": [],
77
"aws-sdk-rust": [
8-
{
9-
"message": "Update clients to allow `initial-response` events to be accepted on event streams, even when know modeled initial response exists.\n\nThis is required for spec compliance, backwards compatibility, and compatibility with non-smithy-rs based servers that\nMAY unconditionally send `initial-response` messages.\n",
10-
"meta": {
11-
"bug": true,
12-
"breaking": false,
13-
"tada": false
14-
},
15-
"author": "rcoh",
16-
"references": [
17-
"smithy-rs#4352",
18-
"smithy-rs#4353"
19-
],
20-
"since-commit": "cf1e783d15842aab12e1ee02ce9d329b8443e848",
21-
"age": 5
22-
},
23-
{
24-
"message": "Add tags to `AssumeRoleProviderBuilder`\n",
25-
"meta": {
26-
"bug": false,
27-
"breaking": false,
28-
"tada": true
29-
},
30-
"author": "c-thiel",
31-
"references": [
32-
"aws-sdk-rust#1366"
33-
],
34-
"since-commit": "cf1e783d15842aab12e1ee02ce9d329b8443e848",
35-
"age": 5
36-
},
37-
{
38-
"message": "Adds new `with_test_defaults_v2()` for all clients supporting region configuration which applies `us-east-1` as default region if not set by user. This allows `aws-smithy-mocks` to work for non AWS SDK generated clients. Also clarify `test-util` feature requirement when using `aws-smithy-mocks`.\n",
39-
"meta": {
40-
"bug": true,
41-
"breaking": false,
42-
"tada": false
43-
},
44-
"author": "aajtodd",
45-
"references": [
46-
"smithy-rs#4265",
47-
"smithy-rs#4189"
48-
],
49-
"since-commit": "cf1e783d15842aab12e1ee02ce9d329b8443e848",
50-
"age": 5
51-
},
52-
{
53-
"message": "Upgrade MSRV to Rust 1.88.0.\n",
54-
"meta": {
55-
"bug": false,
56-
"breaking": true,
57-
"tada": false
58-
},
59-
"author": "ysaito1001",
60-
"references": [
61-
"smithy-rs#4367"
62-
],
63-
"since-commit": "cf1e783d15842aab12e1ee02ce9d329b8443e848",
64-
"age": 5
65-
},
668
{
679
"message": "Bump crc-fast version to 1.6.0\n",
6810
"meta": {
@@ -73,7 +15,7 @@
7315
"author": "landonxjames",
7416
"references": [],
7517
"since-commit": "4533810c833251e78df3d8a4992b8ccc5f2fc67c",
76-
"age": 4
18+
"age": 5
7719
},
7820
{
7921
"message": "Validate `Region` is a valid host label when constructing endpoints.\n",
@@ -85,7 +27,7 @@
8527
"author": "aajtodd",
8628
"references": [],
8729
"since-commit": "4533810c833251e78df3d8a4992b8ccc5f2fc67c",
88-
"age": 4
30+
"age": 5
8931
},
9032
{
9133
"message": "Fix Content-Type and Accept headers for event streams in RPC v2 CBOR to set `application/vnd.amazon.eventstream`\n",
@@ -99,7 +41,7 @@
9941
"smithy-rs#4427"
10042
],
10143
"since-commit": "8a939c7b0de5ddd921132e7d558851f7957c18a8",
102-
"age": 2
44+
"age": 3
10345
},
10446
{
10547
"message": "In `legacy-rustls-ring`, polyfill `with_native_roots` to use `rustls_native_certs 0.8` to avoid\nRUSTSEC-2025-0134.",
@@ -113,7 +55,7 @@
11355
"aws-sdk-rust#1390"
11456
],
11557
"since-commit": "8a939c7b0de5ddd921132e7d558851f7957c18a8",
116-
"age": 2
58+
"age": 3
11759
},
11860
{
11961
"message": "Publish an MSRV for all packages\n\n",
@@ -125,7 +67,7 @@
12567
"author": "arielby",
12668
"references": [],
12769
"since-commit": "8a939c7b0de5ddd921132e7d558851f7957c18a8",
128-
"age": 2
70+
"age": 3
12971
},
13072
{
13173
"message": "Add `expect_number_as_string_or_null` function to `aws-smithy-json` that extracts JSON numbers as strings without converting to u64/i64/f64. This preserves arbitrary precision for BigInteger and BigDecimal support, preventing precision loss for numbers larger than standard numeric types can represent.\n",
@@ -139,6 +81,30 @@
13981
"smithy-rs#4418"
14082
],
14183
"since-commit": "26c59c21b638bbd33a9f46060ff8cc8d4c9df67c",
84+
"age": 2
85+
},
86+
{
87+
"message": "Update the `lru` dependency for `aws-sdk-s3` and `rust-runtime`\n",
88+
"meta": {
89+
"bug": true,
90+
"breaking": false,
91+
"tada": false
92+
},
93+
"author": "svix-jbrown",
94+
"references": [],
95+
"since-commit": "543c1879256ddb033d5c73a10e98611328cbc37c",
96+
"age": 1
97+
},
98+
{
99+
"message": "Update crc-fast to 1.9\n",
100+
"meta": {
101+
"bug": false,
102+
"breaking": false,
103+
"tada": false
104+
},
105+
"author": "aajtodd",
106+
"references": [],
107+
"since-commit": "543c1879256ddb033d5c73a10e98611328cbc37c",
142108
"age": 1
143109
}
144110
],

aws/codegen-aws-sdk/src/main/kotlin/software/amazon/smithy/rustsdk/AwsFluentClientDecorator.kt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ class AwsFluentClientDecorator : ClientCodegenDecorator {
6060
AwsPresignedFluentBuilderMethod(codegenContext),
6161
AwsFluentClientDocs(codegenContext),
6262
AwsFluentClientRetryPartition(codegenContext),
63+
AwsFluentClientEnableRetries(codegenContext),
6364
).letIf(codegenContext.serviceShape.id == ShapeId.from("com.amazonaws.s3#AmazonS3")) {
6465
it + S3ExpressFluentClientCustomization(codegenContext)
6566
},
@@ -199,3 +200,25 @@ private class AwsFluentClientRetryPartition(private val codegenContext: ClientCo
199200
}
200201
}
201202
}
203+
204+
/**
205+
* Enables retries by default for AWS SDK clients when awsSdkBuild is true.
206+
*
207+
* Only applies to real AWS SDK builds (controlled by awsSdkBuild in JSON settings).
208+
*/
209+
private class AwsFluentClientEnableRetries(private val codegenContext: ClientCodegenContext) : FluentClientCustomization() {
210+
override fun section(section: FluentClientSection): Writable {
211+
if (!codegenContext.sdkSettings().awsSdkBuild) {
212+
return emptySection
213+
}
214+
215+
return when (section) {
216+
is FluentClientSection.CustomizeDefaultPluginParams -> {
217+
writable {
218+
rust(".with_is_aws_sdk(true)")
219+
}
220+
}
221+
else -> emptySection
222+
}
223+
}
224+
}

aws/codegen-aws-sdk/src/test/kotlin/software/amazon/smithy/rustsdk/HttpChecksumTest.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,7 @@ internal class HttpChecksumTest {
456456
.region(Region::from_static("doesntmatter"))
457457
.with_test_defaults()
458458
.http_client(http_client)
459+
.retry_config(#{RetryConfig}::disabled())
459460
.build();
460461
461462
let client = $moduleName::Client::from_conf(config);
@@ -489,6 +490,7 @@ internal class HttpChecksumTest {
489490
"tokio" to CargoDependency.Tokio.toType(),
490491
"capture_request" to RuntimeType.captureRequest(rc),
491492
"http_1x" to CargoDependency.Http1x.toType(),
493+
"RetryConfig" to RuntimeType.smithyTypes(rc).resolve("retry::RetryConfig"),
492494
)
493495
}
494496
}

aws/codegen-aws-sdk/src/test/kotlin/software/amazon/smithy/rustsdk/TimeoutConfigMergingTest.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ class TimeoutConfigMergingTest {
6565
let operation = Duration::from_secs(4);
6666
let http_client = infallible_client_fn(|_req| http::Response::builder().body(SdkBody::empty()).unwrap());
6767
let sdk_config = SdkConfig::builder()
68+
.behavior_version(aws_smithy_runtime_api::client::behavior_version::BehaviorVersion::v2026_01_12())
6869
.timeout_config(
6970
TimeoutConfig::builder()
7071
.connect_timeout(connect_timeout)
@@ -157,8 +158,6 @@ class TimeoutConfigMergingTest {
157158
&TimeoutConfig::builder()
158159
.read_timeout(Duration::from_secs(10))
159160
.connect_timeout(connect_timeout)
160-
.disable_operation_attempt_timeout()
161-
.disable_operation_timeout()
162161
.build(),
163162
"read timeout overridden"
164163
);

0 commit comments

Comments
 (0)