diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f10a03263a..2c52681b21 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,19 +5,12 @@ on: tags: - '[0-9]+.*' -env: - RUSTFLAGS: -D warnings - RUST_BACKTRACE: 1 - jobs: create-release: if: github.repository_owner == 'rust-lang' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - name: Install Rust - run: rustup update stable - - run: cargo build --all - uses: taiki-e/create-gh-release-action@v1 with: changelog: CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md index e2c410917b..024e1c72ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,20 @@ +# 0.3.22 - 2022-08-14 + +* Fix `Sync` impl of `BiLockGuard` (#2570) +* Fix partial iteration in `FuturesUnordered` (#2574) +* Fix false detection of inner panics in `Shared` (#2576) +* Add `Mutex::lock_owned` and `Mutex::try_lock_owned` (#2571) +* Add `io::copy_buf_abortable` (#2507) +* Remove `Unpin` bound from `TryStreamExt::into_async_read` (#2599) +* Make `run_until_stalled` handle self-waking futures (#2593) +* Use `FuturesOrdered` in `try_join_all` (#2556) +* Fix orderings in `LocalPool` waker (#2608) +* Fix `stream::Chunk` adapters size hints (#2611) +* Add `push_front` and `push_back` to `FuturesOrdered` (#2591) +* Deprecate `FuturesOrdered::push` in favor of `FuturesOrdered::push_back` (#2591) +* Performance improvements (#2583, #2626) +* Documentation improvements (#2579, #2604, #2613) + # 0.3.21 - 2022-02-06 * Fix potential data race in `FlattenUnordered` that introduced in 0.3.20 (#2566) diff --git a/futures-channel/Cargo.toml b/futures-channel/Cargo.toml index f356eabd98..93a0ac3bac 100644 --- a/futures-channel/Cargo.toml +++ b/futures-channel/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-channel" -version = "0.3.21" +version = "0.3.22" edition = "2018" rust-version = "1.45" license = "MIT OR Apache-2.0" @@ -22,8 +22,8 @@ unstable = [] cfg-target-has-atomic = [] [dependencies] -futures-core = { path = "../futures-core", version = "0.3.21", default-features = false } -futures-sink = { path = "../futures-sink", version = "0.3.21", default-features = false, optional = true } +futures-core = { path = "../futures-core", version = "0.3.22", default-features = false } +futures-sink = { path = "../futures-sink", version = "0.3.22", default-features = false, optional = true } [dev-dependencies] futures = { path = "../futures", default-features = true } diff --git a/futures-core/Cargo.toml b/futures-core/Cargo.toml index 4a360f8a42..008e9d7149 100644 --- a/futures-core/Cargo.toml +++ b/futures-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-core" -version = "0.3.21" +version = "0.3.22" edition = "2018" rust-version = "1.36" license = "MIT OR Apache-2.0" diff --git a/futures-executor/Cargo.toml b/futures-executor/Cargo.toml index e1ce688581..1ad326b149 100644 --- a/futures-executor/Cargo.toml +++ b/futures-executor/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-executor" -version = "0.3.21" +version = "0.3.22" edition = "2018" rust-version = "1.45" license = "MIT OR Apache-2.0" @@ -16,9 +16,9 @@ std = ["futures-core/std", "futures-task/std", "futures-util/std"] thread-pool = ["std", "num_cpus"] [dependencies] -futures-core = { path = "../futures-core", version = "0.3.21", default-features = false } -futures-task = { path = "../futures-task", version = "0.3.21", default-features = false } -futures-util = { path = "../futures-util", version = "0.3.21", default-features = false } +futures-core = { path = "../futures-core", version = "0.3.22", default-features = false } +futures-task = { path = "../futures-task", version = "0.3.22", default-features = false } +futures-util = { path = "../futures-util", version = "0.3.22", default-features = false } num_cpus = { version = "1.8.0", optional = true } [dev-dependencies] diff --git a/futures-executor/src/local_pool.rs b/futures-executor/src/local_pool.rs index ec1751c7c4..8a9bc2fc90 100644 --- a/futures-executor/src/local_pool.rs +++ b/futures-executor/src/local_pool.rs @@ -104,7 +104,7 @@ fn run_executor) -> Poll>(mut f: F) -> T { /// Check for a wakeup, but don't consume it. fn woken() -> bool { - CURRENT_THREAD_NOTIFY.with(|thread_notify| thread_notify.unparked.load(Ordering::SeqCst)) + CURRENT_THREAD_NOTIFY.with(|thread_notify| thread_notify.unparked.load(Ordering::Acquire)) } impl LocalPool { diff --git a/futures-io/Cargo.toml b/futures-io/Cargo.toml index 8d446947b1..28e8e2f325 100644 --- a/futures-io/Cargo.toml +++ b/futures-io/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-io" -version = "0.3.21" +version = "0.3.22" edition = "2018" rust-version = "1.36" license = "MIT OR Apache-2.0" diff --git a/futures-macro/Cargo.toml b/futures-macro/Cargo.toml index a929d0f198..587649600c 100644 --- a/futures-macro/Cargo.toml +++ b/futures-macro/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-macro" -version = "0.3.21" +version = "0.3.22" edition = "2018" rust-version = "1.45" license = "MIT OR Apache-2.0" diff --git a/futures-sink/Cargo.toml b/futures-sink/Cargo.toml index 2c0685ac6b..1272c0cce1 100644 --- a/futures-sink/Cargo.toml +++ b/futures-sink/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-sink" -version = "0.3.21" +version = "0.3.22" edition = "2018" rust-version = "1.36" license = "MIT OR Apache-2.0" diff --git a/futures-task/Cargo.toml b/futures-task/Cargo.toml index 77fec6fd92..9195ff1bef 100644 --- a/futures-task/Cargo.toml +++ b/futures-task/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-task" -version = "0.3.21" +version = "0.3.22" edition = "2018" rust-version = "1.45" license = "MIT OR Apache-2.0" diff --git a/futures-test/Cargo.toml b/futures-test/Cargo.toml index 90e50ff919..bf03f96aee 100644 --- a/futures-test/Cargo.toml +++ b/futures-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-test" -version = "0.3.21" +version = "0.3.22" edition = "2018" rust-version = "1.45" license = "MIT OR Apache-2.0" @@ -11,13 +11,13 @@ Common utilities for testing components built off futures-rs. """ [dependencies] -futures-core = { version = "0.3.21", path = "../futures-core", default-features = false } -futures-task = { version = "0.3.21", path = "../futures-task", default-features = false } -futures-io = { version = "0.3.21", path = "../futures-io", default-features = false } -futures-util = { version = "0.3.21", path = "../futures-util", default-features = false } -futures-executor = { version = "0.3.21", path = "../futures-executor", default-features = false } -futures-sink = { version = "0.3.21", path = "../futures-sink", default-features = false } -futures-macro = { version = "=0.3.21", path = "../futures-macro", default-features = false } +futures-core = { version = "0.3.22", path = "../futures-core", default-features = false } +futures-task = { version = "0.3.22", path = "../futures-task", default-features = false } +futures-io = { version = "0.3.22", path = "../futures-io", default-features = false } +futures-util = { version = "0.3.22", path = "../futures-util", default-features = false } +futures-executor = { version = "0.3.22", path = "../futures-executor", default-features = false } +futures-sink = { version = "0.3.22", path = "../futures-sink", default-features = false } +futures-macro = { version = "=0.3.22", path = "../futures-macro", default-features = false } pin-utils = { version = "0.1.0", default-features = false } pin-project = "1.0.11" diff --git a/futures-util/Cargo.toml b/futures-util/Cargo.toml index e32b642aa2..dc30caa4fb 100644 --- a/futures-util/Cargo.toml +++ b/futures-util/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-util" -version = "0.3.21" +version = "0.3.22" edition = "2018" rust-version = "1.45" license = "MIT OR Apache-2.0" @@ -34,12 +34,12 @@ write-all-vectored = ["io"] cfg-target-has-atomic = [] [dependencies] -futures-core = { path = "../futures-core", version = "0.3.21", default-features = false } -futures-task = { path = "../futures-task", version = "0.3.21", default-features = false } -futures-channel = { path = "../futures-channel", version = "0.3.21", default-features = false, features = ["std"], optional = true } -futures-io = { path = "../futures-io", version = "0.3.21", default-features = false, features = ["std"], optional = true } -futures-sink = { path = "../futures-sink", version = "0.3.21", default-features = false, optional = true } -futures-macro = { path = "../futures-macro", version = "=0.3.21", default-features = false, optional = true } +futures-core = { path = "../futures-core", version = "0.3.22", default-features = false } +futures-task = { path = "../futures-task", version = "0.3.22", default-features = false } +futures-channel = { path = "../futures-channel", version = "0.3.22", default-features = false, features = ["std"], optional = true } +futures-io = { path = "../futures-io", version = "0.3.22", default-features = false, features = ["std"], optional = true } +futures-sink = { path = "../futures-sink", version = "0.3.22", default-features = false, optional = true } +futures-macro = { path = "../futures-macro", version = "=0.3.22", default-features = false, optional = true } slab = { version = "0.4.2", optional = true } memchr = { version = "2.2", optional = true } futures_01 = { version = "0.1.25", optional = true, package = "futures" } diff --git a/futures/Cargo.toml b/futures/Cargo.toml index b6ff22d387..1fa61d4a5d 100644 --- a/futures/Cargo.toml +++ b/futures/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures" -version = "0.3.21" +version = "0.3.22" edition = "2018" rust-version = "1.45" license = "MIT OR Apache-2.0" @@ -15,13 +15,13 @@ composability, and iterator-like interfaces. categories = ["asynchronous"] [dependencies] -futures-core = { path = "../futures-core", version = "0.3.21", default-features = false } -futures-task = { path = "../futures-task", version = "0.3.21", default-features = false } -futures-channel = { path = "../futures-channel", version = "0.3.21", default-features = false, features = ["sink"] } -futures-executor = { path = "../futures-executor", version = "0.3.21", default-features = false, optional = true } -futures-io = { path = "../futures-io", version = "0.3.21", default-features = false } -futures-sink = { path = "../futures-sink", version = "0.3.21", default-features = false } -futures-util = { path = "../futures-util", version = "0.3.21", default-features = false, features = ["sink"] } +futures-core = { path = "../futures-core", version = "0.3.22", default-features = false } +futures-task = { path = "../futures-task", version = "0.3.22", default-features = false } +futures-channel = { path = "../futures-channel", version = "0.3.22", default-features = false, features = ["sink"] } +futures-executor = { path = "../futures-executor", version = "0.3.22", default-features = false, optional = true } +futures-io = { path = "../futures-io", version = "0.3.22", default-features = false } +futures-sink = { path = "../futures-sink", version = "0.3.22", default-features = false } +futures-util = { path = "../futures-util", version = "0.3.22", default-features = false, features = ["sink"] } [dev-dependencies] futures-executor = { path = "../futures-executor", features = ["thread-pool"] }