Add bitcoin-hashes-std features
Currently we use 'no default features' for the `bitcoin_hashes` dependency. Doing so means that if users want the `std` feature they need to explicitly add a `bitcoin_hashes` dependency even though we re-export `bitcoin_hashes` as `hashes`. This means that in the common case the re-export is pointless. As an example, `rust-bitcoin` unnecessarily requires an explicit dependency on `bitcoin_hashes`. Add `bitcoin-hashes-std` feature so that users do not need an explicit dependency in the common use case. Change the test matrix to only test '*-std' features when 'std' is enabled since enabling one without the other is illogical. Please note, this replaces the test run of feature 'std'+'rand'+'rand-std' with just 'std'+'rand-std' because enabling 'rand-std' enables 'rand' so the explicit additional feature is redundant.
This commit is contained in:
parent
555833b70f
commit
6bcf3ea0d0
|
@ -23,6 +23,7 @@ default = ["std"]
|
|||
std = ["secp256k1-sys/std"]
|
||||
# allow use of Secp256k1::new and related API that requires an allocator
|
||||
alloc = []
|
||||
bitcoin-hashes-std = ["bitcoin_hashes/std"]
|
||||
rand-std = ["rand/std"]
|
||||
recovery = ["secp256k1-sys/recovery"]
|
||||
lowmemory = ["secp256k1-sys/lowmemory"]
|
||||
|
@ -37,10 +38,12 @@ global-context-less-secure = []
|
|||
|
||||
[dependencies]
|
||||
secp256k1-sys = { version = "0.4.2", default-features = false, path = "./secp256k1-sys" }
|
||||
serde = { version = "1.0", default-features = false, optional = true }
|
||||
|
||||
# You likely only want to enable these if you explicitly do not want to use "std", otherwise enable
|
||||
# the respective -std feature e.g., bitcoin-hashes-std
|
||||
bitcoin_hashes = { version = "0.10", default-features = false, optional = true }
|
||||
rand = { version = "0.6", default-features = false, optional = true }
|
||||
serde = { version = "1.0", default-features = false, optional = true }
|
||||
|
||||
[dev-dependencies]
|
||||
rand = "0.6"
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
#!/bin/sh -ex
|
||||
|
||||
# TODO: Add "alloc" once we bump MSRV to past 1.29
|
||||
FEATURES="bitcoin_hashes global-context lowmemory rand rand-std recovery serde std"
|
||||
FEATURES="bitcoin_hashes global-context lowmemory rand recovery serde std"
|
||||
# These features are typically enabled along with the 'std' feature, so we test
|
||||
# them together with 'std'.
|
||||
STD_FEATURES="rand-std bitcoin-hashes-std"
|
||||
|
||||
# Use toolchain if explicitly specified
|
||||
if [ -n "$TOOLCHAIN" ]
|
||||
|
@ -32,11 +35,15 @@ if [ "$DO_FEATURE_MATRIX" = true ]; then
|
|||
cargo build --all --no-default-features --features="$feature"
|
||||
cargo test --all --no-default-features --features="$feature"
|
||||
done
|
||||
|
||||
# Features tested with 'std' feature enabled.
|
||||
for feature in ${FEATURES}
|
||||
do
|
||||
cargo build --all --no-default-features --features="std,$feature"
|
||||
cargo test --all --no-default-features --features="std,$feature"
|
||||
done
|
||||
# Other combos
|
||||
RUSTFLAGS='--cfg=fuzzing' RUSTDOCFLAGS=$RUSTFLAGS cargo test --all
|
||||
RUSTFLAGS='--cfg=fuzzing' RUSTDOCFLAGS=$RUSTFLAGS cargo test --all --features="$FEATURES"
|
||||
cargo test --all --features="rand rand-std"
|
||||
cargo test --all --features="rand serde"
|
||||
|
||||
if [ "$DO_BENCH" = true ]; then # proxy for us having a nightly compiler
|
||||
|
|
Loading…
Reference in New Issue