diff --git a/CHANGELOG.md b/CHANGELOG.md index a1b633b2b..992a457a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +# 0.3.31 - 2024-10-05 + +* Fix use after free of task in `FuturesUnordered` when dropped future panics (#2886) +* Fix soundness bug in `task::waker_ref` (#2830) + This is a breaking change but allowed because it is soundness bug fix. +* Fix bugs in `AsyncBufRead::read_line` and `AsyncBufReadExt::lines` (#2884) +* Fix parsing issue in `select!`/`select_biased!` (#2832) + This is technically a breaking change as it will now reject a very odd undocumented syntax that was previously accidentally accepted. +* Work around issue due to upstream `Waker::will_wake` change (#2865) +* Add `stream::Iter::{get_ref,get_mut,into_inner}` (#2875) +* Add `future::AlwaysReady` (#2825) +* Relax trait bound on non-constructor methods of `io::{BufReader,BufWriter}` (#2848) + # 0.3.30 - 2023-12-24 * Add `{BiLock,SplitStream,SplitSink,ReadHalf,WriteHalf}::is_pair_of` (#2797) diff --git a/examples/functional/Cargo.toml b/examples/functional/Cargo.toml index a1618d312..bb95a6f6a 100644 --- a/examples/functional/Cargo.toml +++ b/examples/functional/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "futures-example-functional" +version = "0.0.0" edition = "2018" -version = "0.1.0" publish = false [dependencies] diff --git a/examples/imperative/Cargo.toml b/examples/imperative/Cargo.toml index c8076e4b9..afd7a2042 100644 --- a/examples/imperative/Cargo.toml +++ b/examples/imperative/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "futures-example-imperative" +version = "0.0.0" edition = "2018" -version = "0.1.0" publish = false [dependencies] diff --git a/futures-channel/Cargo.toml b/futures-channel/Cargo.toml index 81ebc42de..4d430b78d 100644 --- a/futures-channel/Cargo.toml +++ b/futures-channel/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" edition = "2018" rust-version = "1.56" license = "MIT OR Apache-2.0" @@ -22,8 +22,8 @@ unstable = [] cfg-target-has-atomic = [] [dependencies] -futures-core = { path = "../futures-core", version = "0.3.30", default-features = false } -futures-sink = { path = "../futures-sink", version = "0.3.30", default-features = false, optional = true } +futures-core = { path = "../futures-core", version = "0.3.31", default-features = false } +futures-sink = { path = "../futures-sink", version = "0.3.31", 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 137385c41..a7d710e6a 100644 --- a/futures-core/Cargo.toml +++ b/futures-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-core" -version = "0.3.30" +version = "0.3.31" 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 87201d384..978f8ae01 100644 --- a/futures-executor/Cargo.toml +++ b/futures-executor/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" edition = "2018" rust-version = "1.56" 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.30", default-features = false } -futures-task = { path = "../futures-task", version = "0.3.30", default-features = false } -futures-util = { path = "../futures-util", version = "0.3.30", default-features = false } +futures-core = { path = "../futures-core", version = "0.3.31", default-features = false } +futures-task = { path = "../futures-task", version = "0.3.31", default-features = false } +futures-util = { path = "../futures-util", version = "0.3.31", default-features = false } num_cpus = { version = "1.8.0", optional = true } [dev-dependencies] diff --git a/futures-io/Cargo.toml b/futures-io/Cargo.toml index d51c4c9d6..e5320d428 100644 --- a/futures-io/Cargo.toml +++ b/futures-io/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-io" -version = "0.3.30" +version = "0.3.31" 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 b154f125b..fdd7be3dd 100644 --- a/futures-macro/Cargo.toml +++ b/futures-macro/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" edition = "2018" rust-version = "1.56" license = "MIT OR Apache-2.0" diff --git a/futures-sink/Cargo.toml b/futures-sink/Cargo.toml index dda3504a3..21f825915 100644 --- a/futures-sink/Cargo.toml +++ b/futures-sink/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" 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 40f07a835..f1848dacb 100644 --- a/futures-task/Cargo.toml +++ b/futures-task/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-task" -version = "0.3.30" +version = "0.3.31" edition = "2018" rust-version = "1.56" license = "MIT OR Apache-2.0" diff --git a/futures-test/Cargo.toml b/futures-test/Cargo.toml index 6b5a3045d..46d933415 100644 --- a/futures-test/Cargo.toml +++ b/futures-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-test" -version = "0.3.30" +version = "0.3.31" edition = "2018" rust-version = "1.56" 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.30", path = "../futures-core", default-features = false } -futures-task = { version = "0.3.30", path = "../futures-task", default-features = false } -futures-io = { version = "0.3.30", path = "../futures-io", default-features = false } -futures-util = { version = "0.3.30", path = "../futures-util", default-features = false } -futures-executor = { version = "0.3.30", path = "../futures-executor", default-features = false } -futures-sink = { version = "0.3.30", path = "../futures-sink", default-features = false } -futures-macro = { version = "=0.3.30", path = "../futures-macro", default-features = false } +futures-core = { version = "0.3.31", path = "../futures-core", default-features = false } +futures-task = { version = "0.3.31", path = "../futures-task", default-features = false } +futures-io = { version = "0.3.31", path = "../futures-io", default-features = false } +futures-util = { version = "0.3.31", path = "../futures-util", default-features = false } +futures-executor = { version = "0.3.31", path = "../futures-executor", default-features = false } +futures-sink = { version = "0.3.31", path = "../futures-sink", default-features = false } +futures-macro = { version = "=0.3.31", path = "../futures-macro", default-features = false } pin-project = "1.0.11" [dev-dependencies] diff --git a/futures-util/Cargo.toml b/futures-util/Cargo.toml index 1b0bcb788..825a20412 100644 --- a/futures-util/Cargo.toml +++ b/futures-util/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures-util" -version = "0.3.30" +version = "0.3.31" edition = "2018" rust-version = "1.56" license = "MIT OR Apache-2.0" @@ -35,12 +35,12 @@ write-all-vectored = ["io"] cfg-target-has-atomic = [] [dependencies] -futures-core = { path = "../futures-core", version = "0.3.30", default-features = false } -futures-task = { path = "../futures-task", version = "0.3.30", default-features = false } -futures-channel = { path = "../futures-channel", version = "0.3.30", default-features = false, features = ["std"], optional = true } -futures-io = { path = "../futures-io", version = "0.3.30", default-features = false, features = ["std"], optional = true } -futures-sink = { path = "../futures-sink", version = "0.3.30", default-features = false, optional = true } -futures-macro = { path = "../futures-macro", version = "=0.3.30", default-features = false, optional = true } +futures-core = { path = "../futures-core", version = "0.3.31", default-features = false } +futures-task = { path = "../futures-task", version = "0.3.31", default-features = false } +futures-channel = { path = "../futures-channel", version = "0.3.31", default-features = false, features = ["std"], optional = true } +futures-io = { path = "../futures-io", version = "0.3.31", default-features = false, features = ["std"], optional = true } +futures-sink = { path = "../futures-sink", version = "0.3.31", default-features = false, optional = true } +futures-macro = { path = "../futures-macro", version = "=0.3.31", 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 cd8cf8270..102f9215c 100644 --- a/futures/Cargo.toml +++ b/futures/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "futures" -version = "0.3.30" +version = "0.3.31" edition = "2018" rust-version = "1.56" 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.30", default-features = false } -futures-task = { path = "../futures-task", version = "0.3.30", default-features = false } -futures-channel = { path = "../futures-channel", version = "0.3.30", default-features = false, features = ["sink"] } -futures-executor = { path = "../futures-executor", version = "0.3.30", default-features = false, optional = true } -futures-io = { path = "../futures-io", version = "0.3.30", default-features = false } -futures-sink = { path = "../futures-sink", version = "0.3.30", default-features = false } -futures-util = { path = "../futures-util", version = "0.3.30", default-features = false, features = ["sink"] } +futures-core = { path = "../futures-core", version = "0.3.31", default-features = false } +futures-task = { path = "../futures-task", version = "0.3.31", default-features = false } +futures-channel = { path = "../futures-channel", version = "0.3.31", default-features = false, features = ["sink"] } +futures-executor = { path = "../futures-executor", version = "0.3.31", default-features = false, optional = true } +futures-io = { path = "../futures-io", version = "0.3.31", default-features = false } +futures-sink = { path = "../futures-sink", version = "0.3.31", default-features = false } +futures-util = { path = "../futures-util", version = "0.3.31", default-features = false, features = ["sink"] } [dev-dependencies] futures-executor = { path = "../futures-executor", features = ["thread-pool"] } diff --git a/futures/tests/macro-reexport/Cargo.toml b/futures/tests/macro-reexport/Cargo.toml index 731ad5f45..2ddd1587a 100644 --- a/futures/tests/macro-reexport/Cargo.toml +++ b/futures/tests/macro-reexport/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "macro-reexport" -version = "0.1.0" +version = "0.0.0" edition = "2018" publish = false diff --git a/futures/tests/macro-tests/Cargo.toml b/futures/tests/macro-tests/Cargo.toml index 10430ddad..db72bd41b 100644 --- a/futures/tests/macro-tests/Cargo.toml +++ b/futures/tests/macro-tests/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "macro-tests" -version = "0.1.0" +version = "0.0.0" edition = "2018" publish = false diff --git a/futures/tests/no-std/Cargo.toml b/futures/tests/no-std/Cargo.toml index f638b8a4a..ec7d4c787 100644 --- a/futures/tests/no-std/Cargo.toml +++ b/futures/tests/no-std/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "no-std" -version = "0.1.0" +version = "0.0.0" edition = "2018" publish = false