diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 215d9790b59..7929fe15903 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -122,7 +122,7 @@ jobs: run: | cargo install cargo-llvm-cov export RUSTFLAGS="-Coverflow-checks=off" - cargo llvm-cov --features rest-client,rpc-client,tokio,futures,serde --codecov --hide-instantiations --output-path=target/codecov.json + cargo llvm-cov --features rest-client,rpc-client,tokio,serde --codecov --hide-instantiations --output-path=target/codecov.json # Could you use this to fake the coverage report for your PR? Sure. # Will anyone be impressed by your amazing coverage? No # Maybe if codecov wasn't broken we wouldn't need to do this... @@ -232,13 +232,13 @@ jobs: - name: Run cargo check for release build. run: | cargo check --release - cargo check --no-default-features --features=futures,std --release + cargo check --no-default-features --features=std --release cargo doc --release - name: Run cargo check for Taproot build. run: | cargo check --release cargo check --no-default-features --release - cargo check --no-default-features --features=futures,std --release + cargo check --no-default-features --features=std --release cargo doc --release cargo doc --no-default-features --release env: diff --git a/.github/workflows/semver.yml b/.github/workflows/semver.yml index 73723fe34c3..03017e19320 100644 --- a/.github/workflows/semver.yml +++ b/.github/workflows/semver.yml @@ -30,7 +30,6 @@ jobs: with: package: lightning-background-processor feature-group: only-explicit-features - features: futures - name: Check lightning-block-sync SemVer uses: obi1kenobi/cargo-semver-checks-action@v2 with: diff --git a/ci/ci-tests.sh b/ci/ci-tests.sh index 7eacd9c4744..a5c6d828ab0 100755 --- a/ci/ci-tests.sh +++ b/ci/ci-tests.sh @@ -68,10 +68,6 @@ cargo check -p lightning-block-sync --verbose --color always --features rpc-clie cargo test -p lightning-block-sync --verbose --color always --features rpc-client,rest-client,tokio cargo check -p lightning-block-sync --verbose --color always --features rpc-client,rest-client,tokio -echo -e "\n\nTest futures builds" -cargo test -p lightning-background-processor --verbose --color always --features futures -cargo test -p lightning-background-processor --verbose --color always --features futures --no-default-features - echo -e "\n\nTest Custom Message Macros" cargo test -p lightning-custom-message --verbose --color always [ "$CI_MINIMIZE_DISK_USAGE" != "" ] && cargo clean @@ -85,6 +81,7 @@ for DIR in lightning-invoice lightning-rapid-gossip-sync lightning-liquidity; do done cargo test -p lightning --verbose --color always --no-default-features +cargo test -p lightning-background-processor --verbose --color always --no-default-features echo -e "\n\nTesting c_bindings builds" # Note that because `$RUSTFLAGS` is not passed through to doctest builds we cannot selectively @@ -98,7 +95,7 @@ done # Note that because `$RUSTFLAGS` is not passed through to doctest builds we cannot selectively # disable doctests in `c_bindings` so we skip doctests entirely here. -RUSTFLAGS="$RUSTFLAGS --cfg=c_bindings" cargo test -p lightning-background-processor --verbose --color always --features futures --no-default-features --lib --bins --tests +RUSTFLAGS="$RUSTFLAGS --cfg=c_bindings" cargo test -p lightning-background-processor --verbose --color always --no-default-features --lib --bins --tests RUSTFLAGS="$RUSTFLAGS --cfg=c_bindings" cargo test -p lightning --verbose --color always --no-default-features --lib --bins --tests echo -e "\n\nTesting other crate-specific builds" diff --git a/lightning-background-processor/Cargo.toml b/lightning-background-processor/Cargo.toml index aa91378129f..fa89b078de5 100644 --- a/lightning-background-processor/Cargo.toml +++ b/lightning-background-processor/Cargo.toml @@ -14,7 +14,6 @@ all-features = true rustdoc-args = ["--cfg", "docsrs"] [features] -futures = [ ] std = ["lightning/std", "lightning-liquidity/std", "bitcoin-io/std", "bitcoin_hashes/std"] default = ["std"] diff --git a/lightning-background-processor/src/lib.rs b/lightning-background-processor/src/lib.rs index 7651319b7f3..57444b2b7e0 100644 --- a/lightning-background-processor/src/lib.rs +++ b/lightning-background-processor/src/lib.rs @@ -4,7 +4,6 @@ #![deny(rustdoc::broken_intra_doc_links)] #![deny(rustdoc::private_intra_doc_links)] #![deny(missing_docs)] -#![cfg_attr(not(feature = "futures"), deny(unsafe_code))] #![cfg_attr(docsrs, feature(doc_auto_cfg))] #![cfg_attr(all(not(feature = "std"), not(test)), no_std)] @@ -25,7 +24,6 @@ use lightning::chain::chainmonitor::{ChainMonitor, Persist}; use lightning::events::EventHandler; #[cfg(feature = "std")] use lightning::events::EventsProvider; -#[cfg(feature = "futures")] use lightning::events::ReplayEvent; use lightning::events::{Event, PathFailure}; @@ -36,14 +34,12 @@ use lightning::onion_message::messenger::AOnionMessenger; use lightning::routing::gossip::{NetworkGraph, P2PGossipSync}; use lightning::routing::scoring::{ScoreUpdate, WriteableScore}; use lightning::routing::utxo::UtxoLookup; -#[cfg(feature = "futures")] use lightning::sign::ChangeDestinationSource; #[cfg(feature = "std")] use lightning::sign::ChangeDestinationSourceSync; use lightning::sign::OutputSpender; use lightning::util::logger::Logger; use lightning::util::persist::{KVStore, Persister}; -#[cfg(feature = "futures")] use lightning::util::sweep::OutputSweeper; #[cfg(feature = "std")] use lightning::util::sweep::OutputSweeperSync; @@ -146,7 +142,6 @@ const SWEEPER_TIMER: u64 = 30; #[cfg(test)] const SWEEPER_TIMER: u64 = 1; -#[cfg(feature = "futures")] /// core::cmp::min is not currently const, so we define a trivial (and equivalent) replacement const fn min_u64(a: u64, b: u64) -> u64 { if a < b { @@ -155,7 +150,6 @@ const fn min_u64(a: u64, b: u64) -> u64 { b } } -#[cfg(feature = "futures")] const FASTEST_TIMER: u64 = min_u64( min_u64(FRESHNESS_TIMER, PING_TIMER), min_u64(SCORER_PERSIST_TIMER, min_u64(FIRST_NETWORK_PRUNE_TIMER, REBROADCAST_TIMER)), @@ -508,7 +502,6 @@ macro_rules! define_run_body { } } } -#[cfg(feature = "futures")] pub(crate) mod futures_util { use core::future::Future; use core::marker::Unpin; @@ -622,9 +615,7 @@ pub(crate) mod futures_util { unsafe { Waker::from_raw(RawWaker::new(core::ptr::null(), &DUMMY_WAKER_VTABLE)) } } } -#[cfg(feature = "futures")] use core::task; -#[cfg(feature = "futures")] use futures_util::{dummy_waker, OptionalSelector, Selector, SelectorOutput}; /// Processes background events in a future. @@ -634,8 +625,10 @@ use futures_util::{dummy_waker, OptionalSelector, Selector, SelectorOutput}; /// future which outputs `true`, the loop will exit and this function's future will complete. /// The `sleeper` future is free to return early after it has triggered the exit condition. /// -/// See [`BackgroundProcessor::start`] for information on which actions this handles. -/// +#[cfg_attr( + feature = "std", + doc = " See [`BackgroundProcessor::start`] for information on which actions this handles.\n" +)] /// The `mobile_interruptable_platform` flag should be set if we're currently running on a /// mobile device, where we may need to check for interruption of the application regularly. If you /// are unsure, you should set the flag, as the performance impact of it is minimal unless there @@ -775,7 +768,6 @@ use futures_util::{dummy_waker, OptionalSelector, Selector, SelectorOutput}; #[cfg_attr(feature = "std", doc = " handle.await.unwrap()")] /// # } ///``` -#[cfg(feature = "futures")] pub async fn process_events_async< 'a, UL: 'static + Deref, @@ -2096,7 +2088,6 @@ mod tests { } #[tokio::test] - #[cfg(feature = "futures")] async fn test_channel_manager_persist_error_async() { // Test that if we encounter an error during manager persistence, the thread panics. let (_, nodes) = create_nodes(2, "test_persist_error_sync"); @@ -2605,7 +2596,6 @@ mod tests { } #[tokio::test] - #[cfg(feature = "futures")] async fn test_not_pruning_network_graph_until_graph_sync_completion_async() { let (sender, receiver) = std::sync::mpsc::sync_channel(1); @@ -2808,7 +2798,6 @@ mod tests { } #[tokio::test] - #[cfg(feature = "futures")] async fn test_payment_path_scoring_async() { let (sender, mut receiver) = tokio::sync::mpsc::channel(1); let event_handler = move |event: Event| { diff --git a/msrv-no-dev-deps-check/Cargo.toml b/msrv-no-dev-deps-check/Cargo.toml index 3a4acc675e6..b0620c64331 100644 --- a/msrv-no-dev-deps-check/Cargo.toml +++ b/msrv-no-dev-deps-check/Cargo.toml @@ -9,6 +9,6 @@ lightning-block-sync = { path = "../lightning-block-sync", features = [ "rest-cl lightning-invoice = { path = "../lightning-invoice" } lightning-net-tokio = { path = "../lightning-net-tokio" } lightning-persister = { path = "../lightning-persister" } -lightning-background-processor = { path = "../lightning-background-processor", features = ["futures"] } +lightning-background-processor = { path = "../lightning-background-processor" } lightning-rapid-gossip-sync = { path = "../lightning-rapid-gossip-sync" } lightning-custom-message = { path = "../lightning-custom-message" } diff --git a/no-std-check/Cargo.toml b/no-std-check/Cargo.toml index f97673414d9..dba9322f449 100644 --- a/no-std-check/Cargo.toml +++ b/no-std-check/Cargo.toml @@ -10,4 +10,4 @@ default = [] lightning = { path = "../lightning", default-features = false } lightning-invoice = { path = "../lightning-invoice", default-features = false } lightning-rapid-gossip-sync = { path = "../lightning-rapid-gossip-sync", default-features = false } -lightning-background-processor = { path = "../lightning-background-processor", features = ["futures"], default-features = false } +lightning-background-processor = { path = "../lightning-background-processor", default-features = false }