2021-08-03 05:54:59 +08:00
|
|
|
[package]
|
2021-10-21 01:21:15 +08:00
|
|
|
name = "aws-smithy-async"
|
2021-10-13 05:42:36 +08:00
|
|
|
version = "0.0.0-smithy-rs-head"
|
2021-08-03 05:54:59 +08:00
|
|
|
authors = ["AWS Rust SDK Team <aws-sdk-rust@amazon.com>", "John DiSanti <jdisanti@amazon.com>"]
|
2021-10-13 05:42:36 +08:00
|
|
|
description = "Async runtime agnostic abstractions for smithy-rs."
|
2022-03-23 05:29:04 +08:00
|
|
|
edition = "2021"
|
2021-10-13 05:42:36 +08:00
|
|
|
license = "Apache-2.0"
|
2023-11-11 02:51:04 +08:00
|
|
|
repository = "https://github.com/smithy-lang/smithy-rs"
|
2021-08-03 05:54:59 +08:00
|
|
|
|
|
|
|
[features]
|
2022-01-06 01:46:57 +08:00
|
|
|
rt-tokio = ["tokio/time"]
|
2023-10-07 01:32:35 +08:00
|
|
|
test-util = ["rt-tokio"]
|
2021-08-03 05:54:59 +08:00
|
|
|
|
|
|
|
[dependencies]
|
|
|
|
pin-project-lite = "0.2"
|
2023-03-21 01:44:00 +08:00
|
|
|
tokio = { version = "1.23.1", features = ["sync"] }
|
2023-12-15 03:30:23 +08:00
|
|
|
futures-util = { version = "0.3.29", default-features = false }
|
2021-08-03 05:54:59 +08:00
|
|
|
|
|
|
|
[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"
|
2023-03-21 01:44:00 +08:00
|
|
|
tokio = { version = "1.23.1", features = ["rt", "macros", "test-util"] }
|
2022-10-27 23:09:18 +08:00
|
|
|
tokio-test = "0.4.2"
|
2021-12-01 19:26:47 +08:00
|
|
|
|
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"]
|
|
|
|
|
2021-12-01 19:26:47 +08:00
|
|
|
[package.metadata.docs.rs]
|
|
|
|
all-features = true
|
|
|
|
targets = ["x86_64-unknown-linux-gnu"]
|
2023-12-21 02:11:43 +08:00
|
|
|
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]
|
2021-12-01 19:26:47 +08:00
|
|
|
rustdoc-args = ["--cfg", "docsrs"]
|
2021-12-02 02:01:53 +08:00
|
|
|
# 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
|