chore: repo maintenance + no path dependencies (#991)

- Move `tokio` into its own directory.
- Remove `path` dependencies.
- Run tests with once with crates.io dep and once with patched dep.
This commit is contained in:
Carl Lerche 2019-03-19 14:58:59 -07:00 committed by GitHub
parent 85487727d4
commit cdde2e7a27
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
60 changed files with 194 additions and 169 deletions

View File

@ -1,30 +1,7 @@
[package]
name = "tokio"
# When releasing to crates.io:
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
# - Update CHANGELOG.md.
# - Create "v0.1.x" git tag.
version = "0.1.17"
authors = ["Carl Lerche <me@carllerche.com>"]
license = "MIT"
readme = "README.md"
documentation = "https://docs.rs/tokio/0.1.17/tokio/"
repository = "https://github.com/tokio-rs/tokio"
homepage = "https://tokio.rs"
description = """
An event-driven, non-blocking I/O platform for writing asynchronous I/O
backed applications.
"""
categories = ["asynchronous", "network-programming"]
keywords = ["io", "async", "non-blocking", "futures"]
[workspace]
members = [
"./",
"tokio",
"tokio-async-await",
"tokio-buf",
"tokio-codec",
@ -44,88 +21,3 @@ members = [
"tokio-udp",
"tokio-uds",
]
[features]
default = [
"codec",
"fs",
"io",
"reactor",
"rt-full",
"sync",
"tcp",
"timer",
"udp",
"uds",
]
codec = ["io", "tokio-codec"]
fs = ["tokio-fs"]
io = ["bytes", "tokio-io"]
reactor = ["io", "mio", "tokio-reactor"]
rt-full = [
"num_cpus",
"reactor",
"timer",
"tokio-current-thread",
"tokio-executor",
"tokio-threadpool",
"tokio-trace-core",
]
sync = ["tokio-sync"]
tcp = ["tokio-tcp"]
timer = ["tokio-timer"]
udp = ["tokio-udp"]
uds = ["tokio-uds"]
# This feature comes with no promise of stability. Things will
# break with each patch release. Use at your own risk.
async-await-preview = [
"tokio-async-await/async-await-preview",
]
[badges]
travis-ci = { repository = "tokio-rs/tokio" }
appveyor = { repository = "carllerche/tokio", id = "s83yxhy9qeb58va7" }
[dependencies]
# Only non-optional dependency...
futures = "0.1.20"
# Everything else is optional...
bytes = { version = "0.4", optional = true }
num_cpus = { version = "1.8.0", optional = true }
tokio-codec = { version = "0.1.0", path = "tokio-codec", optional = true }
tokio-current-thread = { version = "0.1.3", path = "tokio-current-thread", optional = true }
tokio-fs = { version = "0.1.6", path = "tokio-fs", optional = true }
tokio-io = { version = "0.1.6", path = "tokio-io", optional = true }
tokio-executor = { version = "0.1.5", path = "tokio-executor", optional = true }
tokio-reactor = { version = "0.1.1", path = "tokio-reactor", optional = true }
tokio-sync = { version = "0.1.3", path = "tokio-sync", optional = true }
tokio-threadpool = { version = "0.1.8", path = "tokio-threadpool", optional = true }
tokio-tcp = { version = "0.1.0", path = "tokio-tcp", optional = true }
tokio-udp = { version = "0.1.0", path = "tokio-udp", optional = true }
tokio-timer = { version = "0.2.8", path = "tokio-timer", optional = true }
tokio-trace-core = { version = "0.1", path = "tokio-trace/tokio-trace-core", optional = true }
# Needed until `reactor` is removed from `tokio`.
mio = { version = "0.6.14", optional = true }
# Needed for async/await preview support
tokio-async-await = { version = "0.1.0", path = "tokio-async-await", optional = true }
[target.'cfg(unix)'.dependencies]
tokio-uds = { version = "0.2.1", path = "tokio-uds", optional = true }
[dev-dependencies]
env_logger = { version = "0.5", default-features = false }
flate2 = { version = "1", features = ["tokio"] }
futures-cpupool = "0.1"
http = "0.1"
httparse = "1.0"
libc = "0.2"
num_cpus = "1.0"
serde = "1.0"
serde_derive = "1.0"
serde_json = "1.0"
time = "0.1"

View File

@ -35,7 +35,7 @@ jobs:
- template: ci/azure-test-stable.yml
parameters:
name: test_linux
displayName: Test sub crates - Any
displayName: Test sub crates -
crates:
- tokio-buf
- tokio-codec

View File

@ -13,14 +13,9 @@ jobs:
- ${{ each crate in parameters.crates }}:
- ${{ each feature in crate.value }}:
- ${{ if eq(crate.key, 'tokio') }}:
- script: cargo check ${{ parameters.noDefaultFeatures }} --features ${{ feature }}
displayName: Check features = ${{ feature }}
- ${{ if not(eq(crate.key, 'tokio')) }}:
- script: cargo check ${{ parameters.noDefaultFeatures }} --features ${{ feature }}
displayName: Check `${{ crate.key }}`, features = ${{ feature }}
workingDirectory: $(Build.SourcesDirectory)/${{ crate.key }}
- script: cargo check ${{ parameters.noDefaultFeatures }} --features ${{ feature }}
displayName: Check `${{ crate.key }}`, features = ${{ feature }}
workingDirectory: $(Build.SourcesDirectory)/${{ crate.key }}
- ${{ if parameters.benches }}:
- script: cargo check --benches --all

View File

@ -20,17 +20,25 @@ jobs:
rust_version: stable
- ${{ each crate in parameters.crates }}:
- ${{ if eq(crate, 'tokio') }}:
- script: cargo test
env:
LOOM_MAX_DURATION: 10
CI: 'True'
displayName: cargo test
- script: cargo test
env:
LOOM_MAX_DURATION: 10
CI: 'True'
displayName: cargo test -p ${{ crate }}
workingDirectory: $(Build.SourcesDirectory)/${{ crate }}
- ${{ if not(eq(crate, 'tokio')) }}:
- script: cargo test
env:
LOOM_MAX_DURATION: 10
CI: 'True'
displayName: cargo test -p ${{ crate }}
workingDirectory: $(Build.SourcesDirectory)/${{ crate }}
- script: |
set -e
cat ci/patch.toml >> Cargo.toml
echo "~~~~ Cargo.toml ~~~~"
cat Cargo.toml
echo "~~~~~~~~~~~~~~~~~~~~"
displayName: Patch Cargo.toml
- ${{ each crate in parameters.crates }}:
- script: cargo test
env:
LOOM_MAX_DURATION: 10
CI: 'True'
displayName: cargo test -p ${{ crate }} (PATCHED)
workingDirectory: $(Build.SourcesDirectory)/${{ crate }}

View File

@ -16,6 +16,12 @@ jobs:
- script: |
set -e
cat ci/patch.toml >> Cargo.toml
echo "~~~~ Cargo.toml ~~~~"
cat Cargo.toml
echo "~~~~~~~~~~~~~~~~~~~~"
# Make sure the benchmarks compile
export ASAN_OPTIONS="detect_odr_violation=0 detect_leaks=0"
export TSAN_OPTIONS="suppressions=`pwd`/ci/tsan"

22
ci/patch.toml Normal file
View File

@ -0,0 +1,22 @@
# Patch dependencies to run all tests against versions of the crate in the
# repository.
[patch.crates-io]
tokio = { path = "tokio" }
tokio-async-await = { path = "tokio-async-await" }
tokio-buf = { path = "tokio-buf" }
tokio-codec = { path = "tokio-codec" }
tokio-current-thread = { path = "tokio-current-thread" }
tokio-executor = { path = "tokio-executor" }
tokio-fs = { path = "tokio-fs" }
tokio-io = { path = "tokio-io" }
tokio-reactor = { path = "tokio-reactor" }
tokio-signal = { path = "tokio-signal" }
tokio-sync = { path = "tokio-sync" }
tokio-threadpool = { path = "tokio-threadpool" }
tokio-timer = { path = "tokio-timer" }
tokio-tcp = { path = "tokio-tcp" }
tokio-tls = { path = "tokio-tls" }
tokio-trace = { path = "tokio-trace" }
tokio-trace-core = { path = "tokio-trace/tokio-trace-core" }
tokio-udp = { path = "tokio-udp" }
tokio-uds = { path = "tokio-uds" }

View File

@ -21,9 +21,9 @@ async-await-preview = ["futures/nightly"]
[dependencies]
futures = "0.1.23"
tokio-io = { version = "0.1.7", path = "../tokio-io" }
tokio-io = "0.1.7"
[dev-dependencies]
bytes = "0.4.9"
tokio = { version = "0.1.8", path = ".." }
tokio = "0.1.8"
hyper = "0.12.8"

View File

@ -18,6 +18,6 @@ Utilities for encoding and decoding frames.
categories = ["asynchronous"]
[dependencies]
tokio-io = { version = "0.1.7", path = "../tokio-io" }
tokio-io = "0.1.7"
bytes = "0.4.7"
futures = "0.1.18"

View File

@ -21,5 +21,5 @@ keywords = ["futures", "tokio"]
categories = ["concurrency", "asynchronous"]
[dependencies]
tokio-executor = { version = "0.1.5", path = "../tokio-executor" }
tokio-executor = "0.1.5"
futures = "0.1.19"

View File

@ -23,13 +23,13 @@ categories = ["asynchronous", "network-programming", "filesystem"]
[dependencies]
futures = "0.1.21"
tokio-threadpool = { version = "0.1.3", path = "../tokio-threadpool" }
tokio-io = { version = "0.1.6", path = "../tokio-io" }
tokio-threadpool = "0.1.3"
tokio-io = "0.1.6"
[dev-dependencies]
rand = "0.6"
tempfile = "3"
tempdir = "0.3"
tokio-io = { version = "0.1.6", path = "../tokio-io" }
tokio-codec = { version = "0.1.0", path = "../tokio-codec" }
tokio = { version = "0.1.7", path = ".." }
tokio-io = "0.1.6"
tokio-codec = "0.1.0"
tokio = "0.1.7"

View File

@ -25,4 +25,4 @@ futures = "0.1.18"
log = "0.4"
[dev-dependencies]
tokio-current-thread = { version = "0.1.1", path = "../tokio-current-thread" }
tokio-current-thread = "0.1.1"

View File

@ -29,11 +29,11 @@ mio = "0.6.14"
num_cpus = "1.8.0"
parking_lot = "0.7.0"
slab = "0.4.0"
tokio-executor = { version = "0.1.1", path = "../tokio-executor" }
tokio-io = { version = "0.1.6", path = "../tokio-io" }
tokio-sync = { version = "0.1.1", path = "../tokio-sync" }
tokio-executor = "0.1.1"
tokio-io = "0.1.6"
tokio-sync = "0.1.1"
[dev-dependencies]
num_cpus = "1.8.0"
tokio = { version = "0.1.7", path = ".." }
tokio = "0.1.7"
tokio-io-pool = "0.1.4"

View File

@ -24,9 +24,9 @@ appveyor = { repository = "carllerche/tokio", id = "s83yxhy9qeb58va7" }
[dependencies]
futures = "0.1.11"
mio = "0.6.14"
tokio-reactor = { version = "0.1.0", path = "../tokio-reactor" }
tokio-executor = { version = "0.1.0", path = "../tokio-executor" }
tokio-io = { version = "0.1", path = "../tokio-io" }
tokio-reactor = "0.1.0"
tokio-executor = "0.1.0"
tokio-io = "0.1"
[target.'cfg(unix)'.dependencies]
libc = "0.2"
@ -34,7 +34,7 @@ mio-uds = "0.6"
signal-hook = "0.1"
[dev-dependencies]
tokio = { version = "0.1.8", path = ".." }
tokio = "0.1.8"
[target.'cfg(windows)'.dependencies.winapi]
version = "0.3"

View File

@ -24,6 +24,6 @@ futures = "0.1.19"
[dev-dependencies]
env_logger = { version = "0.5", default-features = false }
tokio = { version = "0.1.15", path = ".." }
tokio = "0.1.15"
tokio-mock-task = "0.1.1"
loom = { version = "0.1.1", features = ["futures"] }

View File

@ -20,8 +20,8 @@ TCP bindings for tokio.
categories = ["asynchronous"]
[dependencies]
tokio-io = { version = "0.1.6", path = "../tokio-io" }
tokio-reactor = { version = "0.1.1", path = "../tokio-reactor" }
tokio-io = "0.1.6"
tokio-reactor = "0.1.1"
bytes = "0.4"
mio = "0.6.14"
iovec = "0.1"
@ -29,4 +29,4 @@ futures = "0.1.19"
[dev-dependencies]
env_logger = { version = "0.5", default-features = false }
tokio = { version = "0.1.13", path = ".." }
tokio = "0.1.13"

View File

@ -20,7 +20,7 @@ keywords = ["futures", "tokio"]
categories = ["concurrency", "asynchronous"]
[dependencies]
tokio-executor = { version = "0.1.2", path = "../tokio-executor" }
tokio-executor = "0.1.2"
futures = "0.1.19"
crossbeam-deque = "0.7.0"
crossbeam-queue = "0.1.0"

View File

@ -20,7 +20,7 @@ Timer facilities for Tokio
[dependencies]
futures = "0.1.19"
tokio-executor = { version = "0.1.1", path = "../tokio-executor" }
tokio-executor = "0.1.1"
crossbeam-utils = "0.6.0"
# Backs `DelayQueue`
@ -29,4 +29,4 @@ slab = "0.4.1"
[dev-dependencies]
rand = "0.6"
tokio-mock-task = "0.1.0"
tokio = { version = "0.1.7", path = "../" }
tokio = "0.1.7"

View File

@ -1,5 +1,4 @@
extern crate futures;
extern crate tokio;
extern crate tokio_executor;
extern crate tokio_timer;
@ -8,13 +7,13 @@ mod support;
use support::*;
use futures::{prelude::*, sync::mpsc};
use tokio::util::StreamExt;
use tokio_timer::throttle::Throttle;
#[test]
fn throttle() {
mocked(|timer, _| {
let (tx, rx) = mpsc::unbounded();
let mut stream = rx.throttle(ms(1)).map_err(|e| panic!("{:?}", e));
let mut stream = Throttle::new(rx, ms(1));
assert_not_ready!(stream);
@ -36,7 +35,7 @@ fn throttle() {
fn throttle_dur_0() {
mocked(|_, _| {
let (tx, rx) = mpsc::unbounded();
let mut stream = rx.throttle(ms(0)).map_err(|e| panic!("{:?}", e));
let mut stream = Throttle::new(rx, ms(0));
assert_not_ready!(stream);

View File

@ -22,10 +22,10 @@ travis-ci = { repository = "tokio-rs/tokio-tls" }
[dependencies]
futures = "0.1.23"
native-tls = "0.2"
tokio-io = { version = "0.1.7", path = "../tokio-io" }
tokio-io = "0.1.7"
[dev-dependencies]
tokio = { version = "0.1", path = "../" }
tokio = "0.1"
cfg-if = "0.1"
env_logger = { version = "0.5", default-features = false }

View File

@ -18,9 +18,9 @@ UDP bindings for tokio.
categories = ["asynchronous"]
[dependencies]
tokio-codec = { version = "0.1.0", path = "../tokio-codec" }
tokio-io = { version = "0.1.7", path = "../tokio-io" }
tokio-reactor = { version = "0.1.1", path = "../tokio-reactor" }
tokio-codec = "0.1.0"
tokio-io = "0.1.7"
tokio-reactor = "0.1.1"
bytes = "0.4"
mio = "0.6.14"
log = "0.4"

View File

@ -26,10 +26,10 @@ libc = "0.2.42"
log = "0.4.2"
mio = "0.6.14"
mio-uds = "0.6.5"
tokio-codec = { version = "0.1.0", path = "../tokio-codec" }
tokio-reactor = { version = "0.1.1", path = "../tokio-reactor" }
tokio-io = { version = "0.1.6", path = "../tokio-io" }
tokio-codec = "0.1.0"
tokio-reactor = "0.1.1"
tokio-io = "0.1.6"
[dev-dependencies]
tokio = { version = "0.1.6", path = "../" }
tokio = "0.1.6"
tempfile = "3"

103
tokio/Cargo.toml Normal file
View File

@ -0,0 +1,103 @@
[package]
name = "tokio"
# When releasing to crates.io:
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
# - Update CHANGELOG.md.
# - Create "v0.1.x" git tag.
version = "0.1.17"
authors = ["Carl Lerche <me@carllerche.com>"]
license = "MIT"
readme = "README.md"
documentation = "https://docs.rs/tokio/0.1.17/tokio/"
repository = "https://github.com/tokio-rs/tokio"
homepage = "https://tokio.rs"
description = """
An event-driven, non-blocking I/O platform for writing asynchronous I/O
backed applications.
"""
categories = ["asynchronous", "network-programming"]
keywords = ["io", "async", "non-blocking", "futures"]
[features]
default = [
"codec",
"fs",
"io",
"reactor",
"rt-full",
"sync",
"tcp",
"timer",
"udp",
"uds",
]
codec = ["io", "tokio-codec"]
fs = ["tokio-fs"]
io = ["bytes", "tokio-io"]
reactor = ["io", "mio", "tokio-reactor"]
rt-full = [
"num_cpus",
"reactor",
"timer",
"tokio-current-thread",
"tokio-executor",
"tokio-threadpool",
"tokio-trace-core",
]
sync = ["tokio-sync"]
tcp = ["tokio-tcp"]
timer = ["tokio-timer"]
udp = ["tokio-udp"]
uds = ["tokio-uds"]
# This feature comes with no promise of stability. Things will
# break with each patch release. Use at your own risk.
async-await-preview = [
"tokio-async-await/async-await-preview",
]
[dependencies]
# Only non-optional dependency...
futures = "0.1.20"
# Everything else is optional...
bytes = { version = "0.4", optional = true }
num_cpus = { version = "1.8.0", optional = true }
tokio-codec = { version = "0.1.0", optional = true }
tokio-current-thread = { version = "0.1.3", optional = true }
tokio-fs = { version = "0.1.6", optional = true }
tokio-io = { version = "0.1.6", optional = true }
tokio-executor = { version = "0.1.5", optional = true }
tokio-reactor = { version = "0.1.1", optional = true }
tokio-sync = { version = "0.1.3", optional = true }
tokio-threadpool = { version = "0.1.8", optional = true }
tokio-tcp = { version = "0.1.0", optional = true }
tokio-udp = { version = "0.1.0", optional = true }
tokio-timer = { version = "0.2.8", optional = true }
tokio-trace-core = { version = "0.1", optional = true }
# Needed until `reactor` is removed from `tokio`.
mio = { version = "0.6.14", optional = true }
# Needed for async/await preview support
tokio-async-await = { version = "0.1.0", optional = true }
[target.'cfg(unix)'.dependencies]
tokio-uds = { version = "0.2.1", optional = true }
[dev-dependencies]
env_logger = { version = "0.5", default-features = false }
flate2 = { version = "1", features = ["tokio"] }
futures-cpupool = "0.1"
http = "0.1"
httparse = "1.0"
libc = "0.2"
num_cpus = "1.0"
serde = "1.0"
serde_derive = "1.0"
serde_json = "1.0"
time = "0.1"