Skip to content

Commit

Permalink
Stage 0.3.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
cramertj committed Nov 6, 2019
1 parent d774379 commit 19c7dfd
Show file tree
Hide file tree
Showing 23 changed files with 133 additions and 118 deletions.
23 changes: 22 additions & 1 deletion CHANGELOG.md
@@ -1,3 +1,24 @@
# 0.3.0 - 2019-11-5
* Stable release along with stable async/await!
* Added async/await to default features (#1953)
* Changed `Spawn` trait and `FuturesUnordered::push` to take `&self` (#1950)
* Moved `Spawn` and `FutureObj` out of `futures-core` and into `futures-task (#1925)
* Changed case convention for feature names (#1937)
* Added `executor` feature (#1949)
* Moved `copy_into`/`copy_buf_into` (#1948)
* Changed `SinkExt::send_all` to accept a `TryStream` (#1946)
* Removed `ThreadPool::run` (#1944)
* Changed to use our own definition of `io::Cursor` (#1943)
* Removed `BufReader::poll_seek_relative` (#1938)
* Changed `skip` to take a `usize` rather than `u64` (#1931)
* Removed `Stream` impl for `VecDeque` (#1930)
* Renamed `Peekable::peek` to `poll_peek` (#1928)
* Added immutable iterators for `FuturesUnordered` (#1922)
* Made `ThreadPool` optional (#1910)
* Renamed `oneshot::Sender::poll_cancel` to `poll_canceled` (#1908)
* Added some missing `Clone` implementations
* Documentation fixes

# 0.3.0-alpha.19 - 2019-9-25
* Stabilized the `async-await` feature (#1816)
* Made `async-await` feature no longer require `std` feature (#1815)
Expand Down Expand Up @@ -216,7 +237,7 @@
* `FuturesUnordered` optimization: Since the context stores a `&LocalWaker` reference, it was possible to avoid cloning the `Arc` of the waker
* Futures-rs now uses Clippy
* We now use in-band lifetimes
* The `join!` and `select!` macros are now exposed by the `futures-preview` crate
* The `join!` and `select!` macros are now exposed by the `futures` crate
* The project logo was added to the `README.md`
* `sink::MapErr::get_pinned_mut` is now called `get_pin_mut`
* We now use the unstable `use_extern_macros` feature for macro reexports
Expand Down
30 changes: 12 additions & 18 deletions README.md
Expand Up @@ -11,8 +11,8 @@
<img alt="Build Status" src="https://travis-ci.com/rust-lang-nursery/futures-rs.svg?branch=master">
</a>

<a href="https://crates.io/crates/futures-preview">
<img alt="Crates.io" src="https://img.shields.io/crates/v/futures-preview.svg">
<a href="https://crates.io/crates/futures">
<img alt="Crates.io" src="https://img.shields.io/crates/v/futures.svg">
</a>

<a href="https://blog.rust-lang.org/2019/07/04/Rust-1.36.0.html">
Expand All @@ -21,29 +21,34 @@
</p>

<p align="center">
<a href="https://docs.rs/futures-preview/">
<a href="https://docs.rs/futures/">
Documentation
</a> | <a href="https://rust-lang-nursery.github.io/futures-rs/">
Website
</a>
</p>

`futures-rs` is a library providing the foundations for asynchronous programming in Rust.
It includes key trait definitions like `Stream`, as well as utilities like `join!`,
`select!`, and various futures combinator methods which enable expressive asynchronous
control flow.

## Usage

Add this to your `Cargo.toml`:

```toml
[dependencies]
futures-preview = "=0.3.0-alpha.19"
futures = "0.3"
```

Now, you can use futures-rs:

```rust
use futures::future::Future; // Note: It's not `futures_preview`
use futures::future::Future;
```

The current futures-rs requires Rust 1.36 or later.
The current futures-rs requires Rust 1.39 or later.

### Feature `std`

Expand All @@ -53,20 +58,9 @@ a `#[no_std]` environment, use:

```toml
[dependencies]
futures-preview = { version = "=0.3.0-alpha.19", default-features = false }
```

### Feature `async-await`

The `async-await` feature provides several convenient features using async/await. To use futures-rs with async/await, use:

```toml
[dependencies]
futures-preview = { version = "=0.3.0-alpha.19", features = ["async-await"] }
futures = { version = "0.3.0", default-features = false }
```

The current `async-await` feature requires Rust 1.39 or later.

# License

This project is licensed under either of
Expand Down
24 changes: 12 additions & 12 deletions futures-channel/Cargo.toml
@@ -1,12 +1,12 @@
[package]
name = "futures-channel-preview"
name = "futures-channel"
edition = "2018"
version = "0.3.0-alpha.19"
version = "0.3.0"
authors = ["Alex Crichton <alex@alexcrichton.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-lang-nursery/futures-rs"
homepage = "https://rust-lang-nursery.github.io/futures-rs"
documentation = "https://docs.rs/futures-channel-preview/0.3.0-alpha.19"
documentation = "https://docs.rs/futures-channel/0.3.0"
description = """
Channels for asynchronous communication using futures-rs.
"""
Expand All @@ -16,20 +16,20 @@ name = "futures_channel"

[features]
default = ["std"]
std = ["alloc", "futures-core-preview/std"]
alloc = ["futures-core-preview/alloc"]
sink = ["futures-sink-preview"]
std = ["alloc", "futures-core/std"]
alloc = ["futures-core/alloc"]
sink = ["futures-sink"]

# Unstable features
# These features are outside of the normal semver guarantees and require the
# `unstable` feature as an explicit opt-in to unstable API.
unstable = ["futures-core-preview/unstable"]
cfg-target-has-atomic = ["futures-core-preview/cfg-target-has-atomic"]
unstable = ["futures-core/unstable"]
cfg-target-has-atomic = ["futures-core/cfg-target-has-atomic"]

[dependencies]
futures-core-preview = { path = "../futures-core", version = "=0.3.0-alpha.19", default-features = false }
futures-sink-preview = { path = "../futures-sink", version = "=0.3.0-alpha.19", default-features = false, optional = true }
futures-core = { path = "../futures-core", version = "0.3.0", default-features = false }
futures-sink = { path = "../futures-sink", version = "0.3.0", default-features = false, optional = true }

[dev-dependencies]
futures-preview = { path = "../futures", version = "=0.3.0-alpha.19", default-features = true }
futures-test-preview = { path = "../futures-test", version = "=0.3.0-alpha.19", default-features = true }
futures = { path = "../futures", version = "0.3.0", default-features = true }
futures-test = { path = "../futures-test", version = "0.3.0", default-features = true }
2 changes: 1 addition & 1 deletion futures-channel/src/lib.rs
Expand Up @@ -13,7 +13,7 @@
#![cfg_attr(test, warn(single_use_lifetimes))]
#![warn(clippy::all)]
#![doc(test(attr(deny(warnings), allow(dead_code, unused_assignments, unused_variables))))]
#![doc(html_root_url = "https://docs.rs/futures-channel-preview/0.3.0-alpha.19")]
#![doc(html_root_url = "https://docs.rs/futures-channel/0.3.0")]

#[cfg(all(feature = "cfg-target-has-atomic", not(feature = "unstable")))]
compile_error!("The `cfg-target-has-atomic` feature requires the `unstable` feature as an explicit opt-in to unstable features");
Expand Down
8 changes: 4 additions & 4 deletions futures-core/Cargo.toml
@@ -1,12 +1,12 @@
[package]
name = "futures-core-preview"
name = "futures-core"
edition = "2018"
version = "0.3.0-alpha.19"
version = "0.3.0"
authors = ["Alex Crichton <alex@alexcrichton.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-lang-nursery/futures-rs"
homepage = "https://rust-lang-nursery.github.io/futures-rs"
documentation = "https://docs.rs/futures-core-preview/0.3.0-alpha.19"
documentation = "https://docs.rs/futures-core/0.3.0"
description = """
The core traits and types in for the `futures` library.
"""
Expand All @@ -28,4 +28,4 @@ cfg-target-has-atomic = []
[dependencies]

[dev-dependencies]
futures-preview = { path = "../futures", version = "=0.3.0-alpha.19" }
futures = { path = "../futures", version = "0.3.0" }
2 changes: 1 addition & 1 deletion futures-core/src/lib.rs
Expand Up @@ -7,7 +7,7 @@
#![cfg_attr(test, warn(single_use_lifetimes))]
#![warn(clippy::all)]
#![doc(test(attr(deny(warnings), allow(dead_code, unused_assignments, unused_variables))))]
#![doc(html_root_url = "https://docs.rs/futures-core-preview/0.3.0-alpha.19")]
#![doc(html_root_url = "https://docs.rs/futures-core/0.3.0")]

#[cfg(all(feature = "cfg-target-has-atomic", not(feature = "unstable")))]
compile_error!("The `cfg-target-has-atomic` feature requires the `unstable` feature as an explicit opt-in to unstable features");
Expand Down
16 changes: 8 additions & 8 deletions futures-executor/Cargo.toml
@@ -1,12 +1,12 @@
[package]
name = "futures-executor-preview"
name = "futures-executor"
edition = "2018"
version = "0.3.0-alpha.19"
version = "0.3.0"
authors = ["Alex Crichton <alex@alexcrichton.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-lang-nursery/futures-rs"
homepage = "https://rust-lang-nursery.github.io/futures-rs"
documentation = "https://docs.rs/futures-executor-preview/0.3.0-alpha.19"
documentation = "https://docs.rs/futures-executor/0.3.0"
description = """
Executors for asynchronous tasks based on the futures-rs library.
"""
Expand All @@ -16,14 +16,14 @@ name = "futures_executor"

[features]
default = ["std"]
std = ["futures-core-preview/std", "futures-task-preview/std", "futures-util-preview/std"]
std = ["futures-core/std", "futures-task/std", "futures-util/std"]
thread-pool = ["std", "num_cpus"]

[dependencies]
futures-core-preview = { path = "../futures-core", version = "=0.3.0-alpha.19", default-features = false }
futures-task-preview = { path = "../futures-task", version = "=0.3.0-alpha.19", default-features = false }
futures-util-preview = { path = "../futures-util", version = "=0.3.0-alpha.19", default-features = false }
futures-core = { path = "../futures-core", version = "0.3.0", default-features = false }
futures-task = { path = "../futures-task", version = "0.3.0", default-features = false }
futures-util = { path = "../futures-util", version = "0.3.0", default-features = false }
num_cpus = { version = "1.8.0", optional = true }

[dev-dependencies]
futures-preview = { path = "../futures", version = "=0.3.0-alpha.19" }
futures = { path = "../futures", version = "0.3.0" }
2 changes: 1 addition & 1 deletion futures-executor/src/lib.rs
Expand Up @@ -9,7 +9,7 @@
#![cfg_attr(test, warn(single_use_lifetimes))]
#![warn(clippy::all)]
#![doc(test(attr(deny(warnings), allow(dead_code, unused_assignments, unused_variables))))]
#![doc(html_root_url = "https://docs.rs/futures-executor-preview/0.3.0-alpha.19")]
#![doc(html_root_url = "https://docs.rs/futures-executor/0.3.0")]

#[cfg(feature = "std")]
mod local_pool;
Expand Down
6 changes: 3 additions & 3 deletions futures-io/Cargo.toml
@@ -1,12 +1,12 @@
[package]
name = "futures-io-preview"
name = "futures-io"
edition = "2018"
version = "0.3.0-alpha.19"
version = "0.3.0"
authors = ["Alex Crichton <alex@alexcrichton.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-lang-nursery/futures-rs"
homepage = "https://rust-lang-nursery.github.io/futures-rs"
documentation = "https://docs.rs/futures-io-preview/0.3.0-alpha.19"
documentation = "https://docs.rs/futures-io/0.3.0"
description = """
The `AsyncRead` and `AsyncWrite` traits for the futures-rs library.
"""
Expand Down
2 changes: 1 addition & 1 deletion futures-io/src/lib.rs
Expand Up @@ -15,7 +15,7 @@
#![cfg_attr(test, warn(single_use_lifetimes))]
#![warn(clippy::all)]
#![doc(test(attr(deny(warnings), allow(dead_code, unused_assignments, unused_variables))))]
#![doc(html_root_url = "https://docs.rs/futures-io-preview/0.3.0-alpha.19")]
#![doc(html_root_url = "https://docs.rs/futures-io/0.3.0")]

#[cfg(all(feature = "read-initializer", not(feature = "unstable")))]
compile_error!("The `read-initializer` feature requires the `unstable` feature as an explicit opt-in to unstable features");
Expand Down
6 changes: 3 additions & 3 deletions futures-macro/Cargo.toml
@@ -1,12 +1,12 @@
[package]
name = "futures-macro-preview"
name = "futures-macro"
edition = "2018"
version = "0.3.0-alpha.19"
version = "0.3.0"
authors = ["Taylor Cramer <cramertj@google.com>", "Taiki Endo <te316e89@gmail.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-lang-nursery/futures-rs"
homepage = "https://rust-lang-nursery.github.io/futures-rs"
documentation = "https://docs.rs/futures-macro-preview/0.3.0-alpha.19"
documentation = "https://docs.rs/futures-macro/0.3.0"
description = """
The futures-rs procedural macro implementations.
"""
Expand Down
2 changes: 1 addition & 1 deletion futures-macro/src/lib.rs
Expand Up @@ -6,7 +6,7 @@
#![cfg_attr(test, warn(single_use_lifetimes))]
#![warn(clippy::all)]
#![doc(test(attr(deny(warnings), allow(dead_code, unused_assignments, unused_variables))))]
#![doc(html_root_url = "https://docs.rs/futures-join-macro-preview/0.3.0-alpha.19")]
#![doc(html_root_url = "https://docs.rs/futures-join-macro/0.3.0")]

extern crate proc_macro;

Expand Down
6 changes: 3 additions & 3 deletions futures-sink/Cargo.toml
@@ -1,12 +1,12 @@
[package]
name = "futures-sink-preview"
name = "futures-sink"
edition = "2018"
version = "0.3.0-alpha.19"
version = "0.3.0"
authors = ["Alex Crichton <alex@alexcrichton.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-lang-nursery/futures-rs"
homepage = "https://rust-lang-nursery.github.io/futures-rs"
documentation = "https://docs.rs/futures-sink-preview/0.3.0-alpha.19"
documentation = "https://docs.rs/futures-sink/0.3.0"
description = """
The asynchronous `Sink` trait for the futures-rs library.
"""
Expand Down
2 changes: 1 addition & 1 deletion futures-sink/src/lib.rs
Expand Up @@ -9,7 +9,7 @@
#![cfg_attr(test, warn(single_use_lifetimes))]
#![warn(clippy::all)]
#![doc(test(attr(deny(warnings), allow(dead_code, unused_assignments, unused_variables))))]
#![doc(html_root_url = "https://docs.rs/futures-sink-preview/0.3.0-alpha.19")]
#![doc(html_root_url = "https://docs.rs/futures-sink/0.3.0")]

#[cfg(feature = "alloc")]
extern crate alloc;
Expand Down
6 changes: 3 additions & 3 deletions futures-task/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "futures-task-preview"
name = "futures-task"
edition = "2018"
version = "0.3.0-alpha.19"
version = "0.3.0"
authors = ["Alex Crichton <alex@alexcrichton.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-lang-nursery/futures-rs"
Expand All @@ -28,4 +28,4 @@ cfg-target-has-atomic = []
[dependencies]

[dev-dependencies]
futures-preview = { path = "../futures", version = "=0.3.0-alpha.19" }
futures = { path = "../futures", version = "0.3.0" }
2 changes: 1 addition & 1 deletion futures-task/src/lib.rs
Expand Up @@ -7,7 +7,7 @@
#![cfg_attr(test, warn(single_use_lifetimes))]
#![warn(clippy::all)]
#![doc(test(attr(deny(warnings), allow(dead_code, unused_assignments, unused_variables))))]
#![doc(html_root_url = "https://docs.rs/futures-task-preview/0.3.0-alpha.19")]
#![doc(html_root_url = "https://docs.rs/futures-task/0.3.0")]

#[cfg(all(feature = "cfg-target-has-atomic", not(feature = "unstable")))]
compile_error!("The `cfg-target-has-atomic` feature requires the `unstable` feature as an explicit opt-in to unstable features");
Expand Down
20 changes: 10 additions & 10 deletions futures-test/Cargo.toml
@@ -1,12 +1,12 @@
[package]
name = "futures-test-preview"
name = "futures-test"
edition = "2018"
version = "0.3.0-alpha.19"
version = "0.3.0"
authors = ["Wim Looman <wim@nemo157.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-lang-nursery/futures-rs"
homepage = "https://rust-lang-nursery.github.io/futures-rs"
documentation = "https://docs.rs/futures-test-preview/0.3.0-alpha.19"
documentation = "https://docs.rs/futures-test/0.3.0"
description = """
Common utilities for testing components built off futures-rs.
"""
Expand All @@ -15,16 +15,16 @@ Common utilities for testing components built off futures-rs.
name = "futures_test"

[dependencies]
futures-core-preview = { version = "=0.3.0-alpha.19", path = "../futures-core", default-features = false }
futures-task-preview = { version = "=0.3.0-alpha.19", path = "../futures-task", default-features = false }
futures-io-preview = { version = "=0.3.0-alpha.19", path = "../futures-io", default-features = false }
futures-util-preview = { version = "=0.3.0-alpha.19", path = "../futures-util", default-features = false }
futures-executor-preview = { version = "=0.3.0-alpha.19", path = "../futures-executor", default-features = false }
futures-core = { version = "0.3.0", path = "../futures-core", default-features = false }
futures-task = { version = "0.3.0", path = "../futures-task", default-features = false }
futures-io = { version = "0.3.0", path = "../futures-io", default-features = false }
futures-util = { version = "0.3.0", path = "../futures-util", default-features = false }
futures-executor = { version = "0.3.0", path = "../futures-executor", default-features = false }
pin-utils = { version = "0.1.0-alpha.4", default-features = false }

[dev-dependencies]
futures-preview = { version = "=0.3.0-alpha.19", path = "../futures", default-features = false, features = ["std"] }
futures = { version = "0.3.0", path = "../futures", default-features = false, features = ["std"] }

[features]
default = ["std"]
std = ["futures-core-preview/std", "futures-task-preview/std", "futures-io-preview/std", "futures-util-preview/std", "futures-util-preview/io", "futures-executor-preview/std"]
std = ["futures-core/std", "futures-task/std", "futures-io/std", "futures-util/std", "futures-util/io", "futures-executor/std"]
2 changes: 1 addition & 1 deletion futures-test/src/lib.rs
Expand Up @@ -5,7 +5,7 @@
#![cfg_attr(test, warn(single_use_lifetimes))]
#![warn(clippy::all)]
#![doc(test(attr(deny(warnings), allow(dead_code, unused_assignments, unused_variables))))]
#![doc(html_root_url = "https://docs.rs/futures-test-preview/0.3.0-alpha.19")]
#![doc(html_root_url = "https://docs.rs/futures-test/0.3.0")]

#[cfg(not(feature = "std"))]
compile_error!(
Expand Down
2 changes: 1 addition & 1 deletion futures-test/src/task/mod.rs
Expand Up @@ -4,7 +4,7 @@
// Also, there is cross crate links in here. They are not going to work anytime soon. Do we put https links
// in here? to here: https://rust-lang-nursery.github.io/futures-api-docs? The problem is these have a
// version hardcoded in the url: 0.3.0-alpha.16 We could link to docs.rs, but currently that says:
// docs.rs failed to build futures-preview-0.3.0-alpha.16 -> ok the reason seems to be that they are on
// docs.rs failed to build futures-0.3.0-alpha.16 -> ok the reason seems to be that they are on
// 2019-04-17 which does still have futures-api unstable feature, so that should get solved.
//
//! Task related testing utilities.
Expand Down

0 comments on commit 19c7dfd

Please sign in to comment.