]> git.bitcoin.ninja Git - rust-lightning/commitdiff
Drop the `no-std` feature from `lightning-invoice`
authorMatt Corallo <git@bluematt.me>
Fri, 16 Aug 2024 19:17:42 +0000 (19:17 +0000)
committerMatt Corallo <git@bluematt.me>
Mon, 19 Aug 2024 15:09:40 +0000 (15:09 +0000)
Now that we don't have to have everything in our entire ecosystem
use the same `std`/`no-std` feature combinations we should start by
untangling our own features a bit.

This takes another step by removing the `no-std` feature entirely
from the `lightning-invoice` crate and removing all feature
implications on dependencies from the remaining `std` feature.

ci/ci-tests.sh
lightning-invoice/Cargo.toml
lightning-invoice/src/lib.rs
lightning/Cargo.toml
no-std-check/Cargo.toml

index 13ddcaf9a5b3bd3251e90aafe7f57fc1e4c2ad60..5555667db44c93316e098d47dadade81278d0b72 100755 (executable)
@@ -77,14 +77,21 @@ grep '^max_level_' lightning/Cargo.toml | awk '{ print $1 }'| while read -r FEAT
        RUSTFLAGS="$RUSTFLAGS -A unused_variables -A unused_macros -A unused_imports -A dead_code" cargo check -p lightning --verbose --color always --features "$FEATURE"
 done
 
+echo -e "\n\nTesting no-std builds"
+for DIR in lightning-invoice; do
+       cargo test -p $DIR --verbose --color always --no-default-features
+       # check if there is a conflict between no-std and the c_bindings cfg
+       RUSTFLAGS="$RUSTFLAGS --cfg=c_bindings" cargo test -p $DIR --verbose --color always --no-default-features
+done
+
 echo -e "\n\nTesting no-std flags in various combinations"
-for DIR in lightning lightning-invoice lightning-rapid-gossip-sync; do
+for DIR in lightning lightning-rapid-gossip-sync; do
        cargo test -p $DIR --verbose --color always --no-default-features --features no-std
        # check if there is a conflict between no-std and the default std feature
        cargo test -p $DIR --verbose --color always --features no-std
 done
 
-for DIR in lightning lightning-invoice lightning-rapid-gossip-sync; do
+for DIR in lightning lightning-rapid-gossip-sync; do
        # check if there is a conflict between no-std and the c_bindings cfg
        RUSTFLAGS="$RUSTFLAGS --cfg=c_bindings" cargo test -p $DIR --verbose --color always --no-default-features --features=no-std
 done
@@ -94,7 +101,7 @@ RUSTFLAGS="$RUSTFLAGS --cfg=c_bindings" cargo test --verbose --color always
 cargo test -p lightning --verbose --color always --no-default-features --features=std,_test_vectors
 # This one only works for lightning-invoice
 # check that compile with no-std and serde works in lightning-invoice
-cargo test -p lightning-invoice --verbose --color always --no-default-features --features no-std --features serde
+cargo test -p lightning-invoice --verbose --color always --no-default-features --features serde
 
 echo -e "\n\nTesting no-std build on a downstream no-std crate"
 # check no-std compatibility across dependencies
index f03875d67cd76e91ed4bd0e07761e8eea58ce179..2a5bc406b3325ed2edef5aaa50dae525f29152b6 100644 (file)
@@ -15,9 +15,7 @@ all-features = true
 rustdoc-args = ["--cfg", "docsrs"]
 
 [features]
-default = ["std"]
-no-std = []
-std = ["bech32/std"]
+std = []
 
 [dependencies]
 bech32 = { version = "0.9.1", default-features = false }
index bbb8dc8d5dac8e8ecc73940110caff10a9cf361b..58f08583ad25d4abc1c8b4f403bf8af7d8a67b48 100644 (file)
@@ -22,9 +22,6 @@
 //!
 //! [`Bolt11Invoice::from_str`]: crate::Bolt11Invoice#impl-FromStr
 
-#[cfg(not(any(feature = "std", feature = "no-std")))]
-compile_error!("at least one of the `std` or `no-std` features must be enabled");
-
 extern crate bech32;
 extern crate lightning_types;
 extern crate alloc;
index 6fab8d5ecf3f439afdfb1749ae8dba0905904d5c..d642b6fbd803c040a6690cff4e365b5906eb318f 100644 (file)
@@ -31,7 +31,7 @@ unsafe_revoked_tx_signing = []
 # Override signing to not include randomness when generating signatures for test vectors.
 _test_vectors = []
 
-no-std = ["hashbrown", "possiblyrandom", "lightning-invoice/no-std", "libm"]
+no-std = ["hashbrown", "possiblyrandom", "libm"]
 std = ["lightning-invoice/std", "bech32/std"]
 
 # Generates low-r bitcoin signatures, which saves 1 byte in 50% of the cases
index c9d404c922f86012b87e1b961ca451e60c49e0bb..056cb1d2038a27d01871be7665200c50b775303a 100644 (file)
@@ -4,7 +4,7 @@ version = "0.1.0"
 edition = "2021"
 
 [features]
-default = ["lightning/no-std", "lightning-invoice/no-std", "lightning-rapid-gossip-sync/no-std"]
+default = ["lightning/no-std", "lightning-rapid-gossip-sync/no-std"]
 
 [dependencies]
 lightning = { path = "../lightning", default-features = false }