Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into jdisanti-semver-metadata
Browse files Browse the repository at this point in the history
  • Loading branch information
jdisanti committed Jan 11, 2024
2 parents 80f142b + 6ffd990 commit 35233d1
Show file tree
Hide file tree
Showing 68 changed files with 4,374 additions and 834 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ jobs:
runner: smithy_ubuntu-latest_8-core
- action: check-rust-runtimes
runner: smithy_ubuntu-latest_8-core
fetch-depth: 0
- action: check-sdk-codegen-unit-tests
runner: ubuntu-latest
- action: check-server-codegen-integration-tests
Expand Down Expand Up @@ -119,6 +120,8 @@ jobs:
with:
path: smithy-rs
ref: ${{ inputs.git_ref }}
# Defaults to 1 if not set
fetch-depth: ${{ matrix.test.fetch-depth }}
- name: Run ${{ matrix.test.action }}
uses: ./smithy-rs/.github/actions/docker-build
with:
Expand Down
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,26 @@
<!-- Do not manually edit this file. Use the `changelogger` tool. -->
January 10th, 2024
==================
**New this release:**
- :tada: (all, [smithy-rs#3300](https://github.com/smithy-lang/smithy-rs/issues/3300), [aws-sdk-rust#977](https://github.com/awslabs/aws-sdk-rust/issues/977)) Add support for constructing [`SdkBody`] and [`ByteStream`] from `http-body` 1.0 bodies. Note that this is initial support and works via a backwards compatibility shim to http-body 0.4. Hyper 1.0 is not supported.
- :tada: (all, [smithy-rs#3333](https://github.com/smithy-lang/smithy-rs/issues/3333), [aws-sdk-rust#998](https://github.com/awslabs/aws-sdk-rust/issues/998), [aws-sdk-rust#1010](https://github.com/awslabs/aws-sdk-rust/issues/1010)) Add `as_service_err()` to `SdkError` to allow checking the type of an error is without taking ownership.
- (client, [smithy-rs#3299](https://github.com/smithy-lang/smithy-rs/issues/3299), @Ploppz) Add `PaginationStreamExt` extension trait to `aws-smithy-types-convert` behind the `convert-streams` feature. This makes it possible to treat a paginator as a [`futures_core::Stream`](https://docs.rs/futures-core/latest/futures_core/stream/trait.Stream.html), allowing customers to use stream combinators like [`map`](https://docs.rs/tokio-stream/latest/tokio_stream/trait.StreamExt.html#method.map) and [`filter`](https://docs.rs/tokio-stream/latest/tokio_stream/trait.StreamExt.html#method.filter).

Example:

```rust
use aws_smithy_types_convert::stream::PaginationStreamExt
let stream = s3_client.list_objects_v2().bucket("...").into_paginator().send().into_stream_03x();
```
- :bug: (client, [smithy-rs#3252](https://github.com/smithy-lang/smithy-rs/issues/3252), [smithy-rs#3312](https://github.com/smithy-lang/smithy-rs/issues/3312), @milesziemer) Serialize 0/false in query parameters, and ignore actual default value during serialization instead of just 0/false. See [changelog discussion](https://github.com/smithy-lang/smithy-rs/discussions/3312) for details.
- (all, [smithy-rs#3292](https://github.com/smithy-lang/smithy-rs/issues/3292)) `requireEndpointResolver: false` is no longer required to remove the need for an endpoint resolver. Instead, `"awsSdkBuilder"` (default false), now _removes_ that requirement.

**Contributors**
Thank you for your contributions!
- @Ploppz ([smithy-rs#3299](https://github.com/smithy-lang/smithy-rs/issues/3299))
- @milesziemer ([smithy-rs#3252](https://github.com/smithy-lang/smithy-rs/issues/3252), [smithy-rs#3312](https://github.com/smithy-lang/smithy-rs/issues/3312))


December 13th, 2023
===================

Expand Down
82 changes: 0 additions & 82 deletions CHANGELOG.next.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,88 +11,6 @@
# meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "client | server | all"}
# author = "rcoh"

[[smithy-rs]]
message = "Add support for constructing [`SdkBody`] and [`ByteStream`] from `http-body` 1.0 bodies. Note that this is initial support and works via a backwards compatibility shim to http-body 0.4. Hyper 1.0 is not supported."
references = ["smithy-rs#3300", "aws-sdk-rust#977"]
meta = { "breaking" = false, "tada" = true, "bug" = false, "target" = "all" }
author = "rcoh"

[[aws-sdk-rust]]
message = "Add support for constructing [`SdkBody`] and [`ByteStream`] from `http-body` 1.0 bodies. Note that this is initial support and works via a backwards compatibility shim to http-body 0.4. Hyper 1.0 is not supported."
references = ["smithy-rs#3300", "aws-sdk-rust#977"]
meta = { "breaking" = false, "tada" = true, "bug" = false }
author = "rcoh"

[[smithy-rs]]
message = """ Add `PaginationStreamExt` extension trait to `aws-smithy-types-convert` behind the `convert-streams` feature. This makes it possible to treat a paginator as a [`futures_core::Stream`](https://docs.rs/futures-core/latest/futures_core/stream/trait.Stream.html), allowing customers to use stream combinators like [`map`](https://docs.rs/tokio-stream/latest/tokio_stream/trait.StreamExt.html#method.map) and [`filter`](https://docs.rs/tokio-stream/latest/tokio_stream/trait.StreamExt.html#method.filter).
Example:
```rust
use aws_smithy_types_convert::stream::PaginationStreamExt
let stream = s3_client.list_objects_v2().bucket("...").into_paginator().send().into_stream_03x();
```
"""
references = ["smithy-rs#3299"]
meta = { "breaking" = false, "tada" = false, "bug" = false, "target" = "client"}
author = "Ploppz"

[[aws-sdk-rust]]
message = """ Add `PaginationStreamExt` extension trait to `aws-smithy-types-convert` behind the `convert-streams` feature. This makes it possible to treat a paginator as a [`futures_core::Stream`](https://docs.rs/futures-core/latest/futures_core/stream/trait.Stream.html), allowing customers to use stream combinators like [`map`](https://docs.rs/tokio-stream/latest/tokio_stream/trait.StreamExt.html#method.map) and [`filter`](https://docs.rs/tokio-stream/latest/tokio_stream/trait.StreamExt.html#method.filter).
Example:
```rust
use aws_smithy_types_convert::stream::PaginationStreamExt
let stream = s3_client.list_objects_v2().bucket("...").into_paginator().send().into_stream_03x();
```
"""
references = ["smithy-rs#3299"]
meta = { "breaking" = false, "tada" = false, "bug" = false }
author = "Ploppz"

[[smithy-rs]]
message = "Serialize 0/false in query parameters, and ignore actual default value during serialization instead of just 0/false. See [changelog discussion](https://github.com/smithy-lang/smithy-rs/discussions/3312) for details."
references = ["smithy-rs#3252", "smithy-rs#3312"]
meta = { "breaking" = false, "tada" = false, "bug" = true, "target" = "client" }
author = "milesziemer"

[[aws-sdk-rust]]
message = "Serialize 0/false in query parameters, and ignore actual default value during serialization instead of just 0/false. See [changelog discussion](https://github.com/smithy-lang/smithy-rs/discussions/3312) for details."
references = ["smithy-rs#3252", "smithy-rs#3312"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "milesziemer"

[[smithy-rs]]
message = "Add `as_service_err()` to `SdkError` to allow checking the type of an error is without taking ownership."
references = ["smithy-rs#3333", "aws-sdk-rust#998", "aws-sdk-rust#1010"]
meta = { "breaking" = false, "tada" = true, "bug" = false }
author = "rcoh"

[[aws-sdk-rust]]
message = "Add `as_service_err()` to `SdkError` to allow checking the type of an error is without taking ownership."
references = ["smithy-rs#3333", "aws-sdk-rust#998", "aws-sdk-rust#1010"]
meta = { "breaking" = false, "tada" = true, "bug" = false }
author = "rcoh"

[[smithy-rs]]
message = """`requireEndpointResolver: false` is no longer required to remove the need for an endpoint resolver. Instead, `"awsSdkBuilder"` (default false), now _removes_ that requirement."""
references = ["smithy-rs#3292"]
meta = { "breaking" = false, "tada" = false, "bug" = false }
author = "rcoh"

[[aws-sdk-rust]]
message = "Fix bug in `CredentialsProcess` provider where `expiry` was incorrectly treated as a required field."
references = ["smithy-rs#3335", "aws-sdk-rust#1021"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "rcoh"

[[aws-sdk-rust]]
message = "~/.aws/config and ~/.aws/credentials now parse keys in a case-insensitive way. This means the `AWS_SECRET_ACCESS_KEY` is supported in addition to `aws_secret_access_key`."
references = ["aws-sdk#574", "aws-sdk-rust#1020", "smithy-rs#3344"]
meta = { "breaking" = false, "bug" = true, "tada" = false }
author = "rcoh"

[[smithy-rs]]
message = "The `Metadata` storable was moved from aws_smithy_http into aws_smithy_runtime_api. A deprecated type alias was left in place with a note showing where the new location is."
references = ["smithy-rs#3325"]
Expand Down
140 changes: 101 additions & 39 deletions aws/SDK_CHANGELOG.next.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,35 +5,6 @@
{
"smithy-rs": [],
"aws-sdk-rust": [
{
"message": "Retry additional classes of H2 errors (H2 GoAway & H2 ResetStream)",
"meta": {
"bug": false,
"breaking": false,
"tada": false
},
"author": "rcoh",
"references": [
"aws-sdk-rust#738",
"aws-sdk-rust#858"
],
"since-commit": "88970ba88ef45266aade152c7c1da8e90b24c0d7",
"age": 5
},
{
"message": "Make some properties for IoT types optional. Previously, they defaulted to false, but that isn't how the service actual works.",
"meta": {
"bug": true,
"breaking": true,
"tada": false
},
"author": "milesziemer",
"references": [
"smithy-rs#3256"
],
"since-commit": "88970ba88ef45266aade152c7c1da8e90b24c0d7",
"age": 5
},
{
"message": "Fix `config::Builder::set_credentials_provider` to override a credentials provider previously set.",
"meta": {
Expand All @@ -47,7 +18,7 @@
"smithy-rs#3278"
],
"since-commit": "529b3f03e2b945ea2e5e879183ccfd8e74b7377c",
"age": 4
"age": 5
},
{
"message": "`config::Config::credentials_provider` has been broken since `release-2023-11-15` and is now marked as `deprecated` explicitly.",
Expand All @@ -62,7 +33,7 @@
"smithy-rs#3278"
],
"since-commit": "529b3f03e2b945ea2e5e879183ccfd8e74b7377c",
"age": 4
"age": 5
},
{
"message": "Loading native TLS trusted certs for the default HTTP client now only occurs if the default HTTP client is not overridden in config.",
Expand All @@ -76,7 +47,7 @@
"smithy-rs#3262"
],
"since-commit": "fc335cbc87e70aa63895828fca55b51795b94a6c",
"age": 3
"age": 4
},
{
"message": "Client creation now takes microseconds instead of milliseconds.\nPreviously, it would take 2-3 milliseconds for each client instantiation due to time spent compiling regexes.\nFor applications that used several clients, this would increase start-up time in cases where it really matters,\nsuch as for AWS Lambda cold starts. This time was improved by both changing regex implementation and caching the\nresult of the compilation.",
Expand All @@ -91,7 +62,7 @@
"smithy-rs#3269"
],
"since-commit": "fc335cbc87e70aa63895828fca55b51795b94a6c",
"age": 3
"age": 4
},
{
"message": "Add `test_credentials` to `ConfigLoader` in `aws_config`. This allows the following pattern during tests:\n\n```rust\nasync fn main() {\n let conf = aws_config::defaults(BehaviorVersion::latest())\n .test_credentials()\n .await;\n}\n```\n\nThis is designed for unit tests and using local mocks like DynamoDB Local and LocalStack with the SDK.\n",
Expand All @@ -106,7 +77,7 @@
"aws-sdk-rust#971"
],
"since-commit": "fc335cbc87e70aa63895828fca55b51795b94a6c",
"age": 3
"age": 4
},
{
"message": "Improve the error messages for when auth fails to select an auth scheme for a request.",
Expand All @@ -121,7 +92,7 @@
"smithy-rs#3277"
],
"since-commit": "fc335cbc87e70aa63895828fca55b51795b94a6c",
"age": 3
"age": 4
},
{
"message": "Fix documentation and examples on HyperConnector and HyperClientBuilder.",
Expand All @@ -136,7 +107,7 @@
"smithy-rs#3282"
],
"since-commit": "fc335cbc87e70aa63895828fca55b51795b94a6c",
"age": 3
"age": 4
},
{
"message": "All generated docs now include docsrs labels when features are required",
Expand All @@ -151,7 +122,7 @@
"smithy-rs#3295"
],
"since-commit": "fc335cbc87e70aa63895828fca55b51795b94a6c",
"age": 3
"age": 4
},
{
"message": "`crate::event_receiver::EventReceiver` is now re-exported as `crate::primitives::event_stream::EventReceiver` when a service supports event stream operations.",
Expand All @@ -165,8 +136,99 @@
"smithy-rs#3305"
],
"since-commit": "9f0ba850e03241f657e2e40ca185780e0a5878cb",
"age": 2
"age": 3
},
{
"message": "Add support for constructing [`SdkBody`] and [`ByteStream`] from `http-body` 1.0 bodies. Note that this is initial support and works via a backwards compatibility shim to http-body 0.4. Hyper 1.0 is not supported.",
"meta": {
"bug": false,
"breaking": false,
"tada": true
},
"author": "rcoh",
"references": [
"smithy-rs#3300",
"aws-sdk-rust#977"
],
"since-commit": "e235a2fd9ec45335a3b2018028c2d3a2ac13ffdf",
"age": 1
},
{
"message": " Add `PaginationStreamExt` extension trait to `aws-smithy-types-convert` behind the `convert-streams` feature. This makes it possible to treat a paginator as a [`futures_core::Stream`](https://docs.rs/futures-core/latest/futures_core/stream/trait.Stream.html), allowing customers to use stream combinators like [`map`](https://docs.rs/tokio-stream/latest/tokio_stream/trait.StreamExt.html#method.map) and [`filter`](https://docs.rs/tokio-stream/latest/tokio_stream/trait.StreamExt.html#method.filter).\n\nExample:\n\n```rust\nuse aws_smithy_types_convert::stream::PaginationStreamExt\nlet stream = s3_client.list_objects_v2().bucket(\"...\").into_paginator().send().into_stream_03x();\n```\n",
"meta": {
"bug": false,
"breaking": false,
"tada": false
},
"author": "Ploppz",
"references": [
"smithy-rs#3299"
],
"since-commit": "e235a2fd9ec45335a3b2018028c2d3a2ac13ffdf",
"age": 1
},
{
"message": "Serialize 0/false in query parameters, and ignore actual default value during serialization instead of just 0/false. See [changelog discussion](https://github.com/smithy-lang/smithy-rs/discussions/3312) for details.",
"meta": {
"bug": true,
"breaking": false,
"tada": false
},
"author": "milesziemer",
"references": [
"smithy-rs#3252",
"smithy-rs#3312"
],
"since-commit": "e235a2fd9ec45335a3b2018028c2d3a2ac13ffdf",
"age": 1
},
{
"message": "Add `as_service_err()` to `SdkError` to allow checking the type of an error is without taking ownership.",
"meta": {
"bug": false,
"breaking": false,
"tada": true
},
"author": "rcoh",
"references": [
"smithy-rs#3333",
"aws-sdk-rust#998",
"aws-sdk-rust#1010"
],
"since-commit": "e235a2fd9ec45335a3b2018028c2d3a2ac13ffdf",
"age": 1
},
{
"message": "Fix bug in `CredentialsProcess` provider where `expiry` was incorrectly treated as a required field.",
"meta": {
"bug": true,
"breaking": false,
"tada": false
},
"author": "rcoh",
"references": [
"smithy-rs#3335",
"aws-sdk-rust#1021"
],
"since-commit": "e235a2fd9ec45335a3b2018028c2d3a2ac13ffdf",
"age": 1
},
{
"message": "~/.aws/config and ~/.aws/credentials now parse keys in a case-insensitive way. This means the `AWS_SECRET_ACCESS_KEY` is supported in addition to `aws_secret_access_key`.",
"meta": {
"bug": true,
"breaking": false,
"tada": false
},
"author": "rcoh",
"references": [
"aws-sdk#574",
"aws-sdk-rust#1020",
"smithy-rs#3344"
],
"since-commit": "e235a2fd9ec45335a3b2018028c2d3a2ac13ffdf",
"age": 1
}
],
"aws-sdk-model": []
}
}
9 changes: 2 additions & 7 deletions aws/sdk/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,7 @@ fun generateSmithyBuild(services: AwsServices): String {
"plugins": {
"rust-client-codegen": {
"runtimeConfig": {
"relativePath": "../",
"version": "DEFAULT"
"relativePath": "../"
},
"codegen": {
"includeFluentClient": false,
Expand Down Expand Up @@ -359,11 +358,7 @@ tasks.register<ExecRustBuildTool>("fixManifests") {

toolPath = publisherToolPath
binaryName = "publisher"
arguments = mutableListOf("fix-manifests", "--location", outputDir.asFile.absolutePath).apply {
if (crateVersioner.independentVersioningEnabled()) {
add("--disable-version-number-validation")
}
}
arguments = mutableListOf("fix-manifests", "--location", outputDir.asFile.absolutePath)
}

tasks.register<ExecRustBuildTool>("hydrateReadme") {
Expand Down
7 changes: 5 additions & 2 deletions buildSrc/src/main/kotlin/ManifestPatcher.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,11 @@ fun rewriteCrateVersion(
)

/**
* Smithy runtime crate versions in smithy-rs are all `0.0.0-smithy-rs-head`. When copying over to the AWS SDK,
* these should be changed to the smithy-rs version.
* Dependently versioned Smithy runtime crate versions in smithy-rs are all `0.0.0-smithy-rs-head`.
* When copying over to the AWS SDK, these should be changed to the corresponding
* stable/unstable runtime crate version from gradle.properties.
*
* In the future when all the runtime crates are independently versioned, this can be removed.
*/
fun rewriteRuntimeCrateVersion(
version: String,
Expand Down
Loading

0 comments on commit 35233d1

Please sign in to comment.