smithy-rs/rust-runtime/aws-smithy-async/Cargo.toml

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

41 lines
1.3 KiB
TOML
Raw Normal View History

[package]
name = "aws-smithy-async"
version = "0.0.0-smithy-rs-head"
authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "John DiSanti <jdisanti@amazon.com>"]
description = "Async runtime agnostic abstractions for smithy-rs."
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/smithy-lang/smithy-rs"
[features]
rt-tokio = ["tokio/time"]
test-util = ["rt-tokio"]
[dependencies]
pin-project-lite = "0.2"
tokio = { version = "1.23.1", features = ["sync"] }
futures-util = { version = "0.3.29", default-features = false }
[dev-dependencies]
Remove `futures_core::stream::Stream` from `aws-smithy-async` (#2978) ## Motivation and Context Removes `futures_core::stream::Stream` from the `aws-smithy-async` crate. ## Description This PR is part of our ongoing effort, https://github.com/awslabs/smithy-rs/issues/2413. We remove the `futures_core::stream::Stream` trait from the public API in the `aws-smithy-async` crate. While doing so, we compensate - `FnStream` by providing the explicit `.next` and `.collect` methods to let the previously working code continue working. - `TryFlatMap` by making it return a new-type wrapper `PaginationStream` to hide `FnStream` from those who use paginators. With this change, the latest canary no longer uses `tokio_stream::StreamExt`, since the paginator does not work in terms of the `Stream` trait. Furthermore, `aws-sdk-rust` has been more than [3 releases since release-2023-01-26](https://github.com/awslabs/aws-sdk-rust/releases), so the module `release-2023-01-26` has been removed from `canary-lambda`. ## Testing No new tests added, but made sure the existing tests keep working with the change. ## Checklist <!--- If a checkbox below is not applicable, then please DELETE it rather than leaving it unchecked --> - [x] I have updated `CHANGELOG.next.toml` if I made changes to the smithy-rs codegen or runtime crates - [x] I have updated `CHANGELOG.next.toml` if I made changes to the AWS SDK, generated SDK code, or SDK runtime crates ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._
2023-09-28 05:14:40 +08:00
pin-utils = "0.1"
tokio = { version = "1.23.1", features = ["rt", "macros", "test-util"] }
tokio-test = "0.4.2"
Remove `futures_core::stream::Stream` from `aws-smithy-async` (#2978) ## Motivation and Context Removes `futures_core::stream::Stream` from the `aws-smithy-async` crate. ## Description This PR is part of our ongoing effort, https://github.com/awslabs/smithy-rs/issues/2413. We remove the `futures_core::stream::Stream` trait from the public API in the `aws-smithy-async` crate. While doing so, we compensate - `FnStream` by providing the explicit `.next` and `.collect` methods to let the previously working code continue working. - `TryFlatMap` by making it return a new-type wrapper `PaginationStream` to hide `FnStream` from those who use paginators. With this change, the latest canary no longer uses `tokio_stream::StreamExt`, since the paginator does not work in terms of the `Stream` trait. Furthermore, `aws-sdk-rust` has been more than [3 releases since release-2023-01-26](https://github.com/awslabs/aws-sdk-rust/releases), so the module `release-2023-01-26` has been removed from `canary-lambda`. ## Testing No new tests added, but made sure the existing tests keep working with the change. ## Checklist <!--- If a checkbox below is not applicable, then please DELETE it rather than leaving it unchecked --> - [x] I have updated `CHANGELOG.next.toml` if I made changes to the smithy-rs codegen or runtime crates - [x] I have updated `CHANGELOG.next.toml` if I made changes to the AWS SDK, generated SDK code, or SDK runtime crates ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._
2023-09-28 05:14:40 +08:00
# futures-util is used by `now_or_later`, for instance, but the tooling
# reports a false positive, saying it is unused.
[package.metadata.cargo-udeps.ignore]
normal = ["futures-util"]
[package.metadata.docs.rs]
all-features = true
targets = ["x86_64-unknown-linux-gnu"]
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
rustdoc-args = ["--cfg", "docsrs"]
# End of docs.rs metadata
Update release tooling to handle both stable and unstable crates (#3082) ## Motivation and Context This PR updates our smithy-rs release tooling to prepare for handling both stable and unstable crates. Merging this PR to `main` does not make any of the runtime crates stable, instead we will just have a supporting mechanism in place, ready to be turned on by implementing `TODO(GA)`. ## Description At a high level, this PR will - update the `Release smithy-rs` workflow UI to have an additional input `Stable semantic version`: ![Screenshot 2023-10-24 at 10 19 07 PM](https://github.com/awslabs/smithy-rs/assets/15333866/097502e6-3193-43f6-b39b-dd231c2d14d7) - split an existing gradle property `smithy.rs.runtime.crate.version` into `smithy.rs.runtime.crate.stable.version` and `smithy.rs.runtime.crate.unstable.version`. - make `publisher upgrade-runtime-crates-version` take a new, optional (for backwards compatibility) command line argument `--stable-version` to use the said gradle property `smithy.rs.runtime.crate.stable.version`. This will allow the `publisher` to set a value passed via a workflow input `Stable semantic version` to `smithy.rs.runtime.crate.stable.version` in `gradle.properties` (and the same goes for unstable crates). - update `fixRuntimeCrateVersions` so that it fixes up runtime crate versions based on properties `smithy.rs.runtime.crate.stable.version` and `smithy.rs.runtime.crate.unstable.version`. **NOTE** There is a guard in place. When this PR gets merged and then we enter a stable crate version in the `Stable semantic version` text box, it will be overwritten by a version in `Unstable semantic version`, so that 1.x.y version will NOT be published to `crates.io` before GA and that also replicates today's release workflow's behavior (only publishing unstable crates). Just make sure we specify a 0.x.y in the `Untable semantic version` text box because that does get shipped. ### What happens once `TODO(GA)` has been implemented? Roughly, it will look like this. When we run the `Release smithy-rs` workflow (not a dry-run), providing a stable version (say 1.0.0) and a unstable version (say 0.57.0) in the workflow text boxes, 1. the workflow will create a new release branch `smithy-rs-release-1.x.y`. 2. the workflow will set 1.0.0 to `smithy.rs.runtime.crate.stable.version` and 0.57.0 to `smithy.rs.runtime.crate.unstable.version` in `gradle.properties`. 3. for whatever smithy runtime crates whose package metadata says ``` [package.metadata.smithy-rs-release-tooling] stable = true ``` their `Cargo.toml` will include `version = 1.0.0` (and `version = 0.57.0` if `smithy-rs-release-tooling` is not specified or if its value is `stable = false`). 4. the workflow will publish smithy runtime crates accordingly to `crates.io`. 5. releasing `aws-sdk-rust` subsequently will render `version = 1.0.0` in `Cargo.toml` for stable AWS runtime crates (again as specified by `smithy-rs-release-tooling`), will render `version = 1.1.0` for SDK crates (we will not go into details here as to why it's not `1.0.0`), and will publish those crates to `crates.io`. ## Testing In a [separate branch](https://github.com/awslabs/smithy-rs/tree/ysaito/stable-and-unstable-crates) that implemented `TODO(GA)`, I verified that - our internal release pipeline was executed without errors - a generated AWS SDK had following manifests (showing excerpts from arbitrary crates) ``` [package] name = "aws-sdk-s3" version = "1.1.0" ``` ``` [package] name = "aws-smithy-types" version = "1.0.0" ``` ``` [package] name = "aws-smithy-http" version = "0.57.0" ``` ``` [package] name = "aws-types" version = "1.0.0" ``` ``` [package] name = "aws-config" version = "1.0.0" ``` ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._ --------- Co-authored-by: John DiSanti <jdisanti@amazon.com>
2023-11-08 12:03:46 +08:00
# make sure to keep crate stability in sync with the second element of the following tuple in
# buildSrc/src/main/kotlin/CrateSet.kt:
# Crate("aws-smithy-async", STABLE_VERSION_PROP_NAME),
[package.metadata.smithy-rs-release-tooling]
stable = true