Skip to content

Commit

Permalink
Fix sometimes-unused dependencies (#603)
Browse files Browse the repository at this point in the history
`tower` currently has required dependencies that may not be used
unless certain features are enabled.

This change updates `tower` to make these dependencies optional.

Furthermore, this change removes use of `html_root_url`, which is no
longer recommended (rust-lang/api-guidelines#230),
and updates the documented release instructions.
  • Loading branch information
jplatte authored Jan 17, 2022
1 parent 7f004da commit d0d8707
Show file tree
Hide file tree
Showing 8 changed files with 23 additions and 29 deletions.
2 changes: 0 additions & 2 deletions tower-layer/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
[package]
name = "tower-layer"
# When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
Expand Down
1 change: 0 additions & 1 deletion tower-layer/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#![doc(html_root_url = "https://docs.rs/tower-layer/0.3.1")]
#![warn(
missing_debug_implementations,
missing_docs,
Expand Down
2 changes: 0 additions & 2 deletions tower-service/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
[package]
name = "tower-service"
# When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
Expand Down
1 change: 0 additions & 1 deletion tower-service/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#![doc(html_root_url = "https://docs.rs/tower-service/0.3.1")]
#![warn(
missing_debug_implementations,
missing_docs,
Expand Down
2 changes: 0 additions & 2 deletions tower-test/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
[package]
name = "tower-test"
# When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
Expand Down
1 change: 0 additions & 1 deletion tower-test/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#![doc(html_root_url = "https://docs.rs/tower-test/0.4.0")]
#![warn(
missing_debug_implementations,
missing_docs,
Expand Down
42 changes: 23 additions & 19 deletions tower/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
[package]
name = "tower"
# When releasing to crates.io:
# - Remove path dependencies
# - Update html_root_url.
# - Update doc url
# - Cargo.toml
# - README.md
Expand All @@ -25,6 +23,10 @@ edition = "2018"

[features]
default = ["log"]

# Internal
__common = ["futures-core", "pin-project-lite"]

full = [
"balance",
"buffer",
Expand All @@ -43,30 +45,30 @@ full = [
"timeout",
"util",
]
# FIXME: Use weak dependency once available (https://github.com/rust-lang/cargo/issues/8832)
log = ["tracing/log"]
balance = ["discover", "load", "ready-cache", "make", "rand", "slab", "tokio-stream"]
buffer = ["tokio/sync", "tokio/rt", "tokio-util", "tracing"]
discover = []
filter = ["futures-util"]
balance = ["discover", "load", "ready-cache", "make", "rand", "slab"]
buffer = ["__common", "tokio/sync", "tokio/rt", "tokio-util", "tracing"]
discover = ["__common"]
filter = ["__common", "futures-util"]
hedge = ["util", "filter", "futures-util", "hdrhistogram", "tokio/time", "tracing"]
limit = ["tokio/time", "tokio/sync", "tokio-util", "tracing"]
load = ["tokio/time", "tracing"]
load-shed = []
make = ["tokio/io-std", "futures-util"]
ready-cache = ["futures-util", "indexmap", "tokio/sync", "tracing"]
limit = ["__common", "tokio/time", "tokio/sync", "tokio-util", "tracing"]
load = ["__common", "tokio/time", "tracing"]
load-shed = ["__common"]
make = ["futures-util", "pin-project-lite", "tokio/io-std"]
ready-cache = ["futures-core", "futures-util", "indexmap", "tokio/sync", "tracing"]
reconnect = ["make", "tokio/io-std", "tracing"]
retry = ["tokio/time"]
spawn-ready = ["futures-util", "tokio/sync", "tokio/rt", "util", "tracing"]
steer = ["futures-util"]
timeout = ["tokio/time"]
util = ["futures-util"]
retry = ["__common", "tokio/time"]
spawn-ready = ["__common", "futures-util", "tokio/sync", "tokio/rt", "util", "tracing"]
steer = []
timeout = ["pin-project-lite", "tokio/time"]
util = ["__common", "futures-util", "pin-project"]

[dependencies]
futures-core = "0.3"
pin-project = "1"
tower-layer = { version = "0.3.1", path = "../tower-layer" }
tower-service = { version = "0.3.1", path = "../tower-service" }

futures-core = { version = "0.3", optional = true }
futures-util = { version = "0.3", default-features = false, features = ["alloc"], optional = true }
hdrhistogram = { version = "7.0", optional = true }
indexmap = { version = "1.0.2", optional = true }
Expand All @@ -76,11 +78,13 @@ tokio = { version = "1", optional = true, features = ["sync"] }
tokio-stream = { version = "0.1.0", optional = true }
tokio-util = { version = "0.6.3", default-features = false, optional = true }
tracing = { version = "0.1.2", default-features = false, features = ["std"], optional = true }
pin-project-lite = "0.2.7"
pin-project = { version = "1", optional = true }
pin-project-lite = { version = "0.2.7", optional = true }

[dev-dependencies]
futures = "0.3"
hdrhistogram = "7.0"
pin-project-lite = "0.2.7"
tokio = { version = "1", features = ["macros", "sync", "test-util", "rt-multi-thread"] }
tokio-stream = "0.1"
tokio-test = "0.4"
Expand Down
1 change: 0 additions & 1 deletion tower/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#![doc(html_root_url = "https://docs.rs/tower/0.4.11")]
#![warn(
missing_debug_implementations,
missing_docs,
Expand Down

0 comments on commit d0d8707

Please sign in to comment.