From: Ravindra Kumar Bundela Date: Mon, 19 Oct 2026 11:38:28 +0000 (+0530) Subject: fix(bitcoind_rpc): allow filter_iter example to compile on Windows X-Git-Url: http://internal-gitweb-vhost/-script/src/example_cli/database/enum.Language.html?a=commitdiff_plain;h=32795f95dd3f99b4d2dcb3ffb29b894b028504e3;p=bdk fix(bitcoind_rpc): allow filter_iter example to compile on Windows The filter_iter example previously imported anyhow indirectly from bdk_testenv. Because Cargo includes package dev-dependencies when building examples, having bdk_testenv as an unconditional dev-dependency pulled in electrsd, whose build script relies on Unix permissions (std::os::unix::fs::PermissionsExt) and fails on Windows. This change: - Adds anyhow directly to [dev-dependencies] for bdk_bitcoind_rpc. - Removes the indirect bdk_testenv::anyhow import in filter_iter.rs. - Moves bdk_testenv to [target.'cfg(not(windows))'.dev-dependencies]. - Conditionally gates the bdk_testenv-dependent tests on not(windows). Closes #2338. --- diff --git a/crates/bitcoind_rpc/Cargo.toml b/crates/bitcoind_rpc/Cargo.toml index 572d1f52..0df0c56f 100644 --- a/crates/bitcoind_rpc/Cargo.toml +++ b/crates/bitcoind_rpc/Cargo.toml @@ -21,10 +21,15 @@ bitcoincore-rpc = { version = "0.19.0" } bdk_core = { path = "../core", version = "0.6.1", default-features = false } [dev-dependencies] +anyhow = "1" bdk_bitcoind_rpc = { path = "." } -bdk_testenv = { path = "../testenv" } bdk_chain = { path = "../chain" } +# electrsd's build script (via bdk_testenv) doesn't compile on Windows. Drop this gate, and the +# tests' `cfg(not(windows))`, once it does. +[target.'cfg(not(windows))'.dev-dependencies] +bdk_testenv = { path = "../testenv" } + [features] default = ["std"] std = ["bitcoin/std", "bdk_core/std"] diff --git a/crates/bitcoind_rpc/examples/filter_iter.rs b/crates/bitcoind_rpc/examples/filter_iter.rs index a346a2db..7719b87c 100644 --- a/crates/bitcoind_rpc/examples/filter_iter.rs +++ b/crates/bitcoind_rpc/examples/filter_iter.rs @@ -8,7 +8,6 @@ use bdk_chain::indexer::keychain_txout::KeychainTxOutIndex; use bdk_chain::local_chain::LocalChain; use bdk_chain::miniscript::Descriptor; use bdk_chain::{ConfirmationBlockTime, IndexedTxGraph, SpkIterator}; -use bdk_testenv::anyhow; // This example shows how BDK chain and tx-graph structures are updated using compact // filters syncing. Assumes a connection can be made to a bitcoin node via environment diff --git a/crates/bitcoind_rpc/src/lib.rs b/crates/bitcoind_rpc/src/lib.rs index 9ab4bd19..d9452495 100644 --- a/crates/bitcoind_rpc/src/lib.rs +++ b/crates/bitcoind_rpc/src/lib.rs @@ -461,7 +461,7 @@ impl BitcoindRpcErrorExt for bitcoincore_rpc::Error { } } -#[cfg(test)] +#[cfg(all(test, not(windows)))] #[cfg_attr(coverage_nightly, coverage(off))] mod test { use crate::{Emitter, NO_EXPECTED_MEMPOOL_TXS}; diff --git a/crates/bitcoind_rpc/tests/test_emitter.rs b/crates/bitcoind_rpc/tests/test_emitter.rs index f1853cfa..49992639 100644 --- a/crates/bitcoind_rpc/tests/test_emitter.rs +++ b/crates/bitcoind_rpc/tests/test_emitter.rs @@ -1,3 +1,5 @@ +#![cfg(not(windows))] + use std::{collections::BTreeSet, ops::Deref}; use bdk_bitcoind_rpc::{Emitter, NO_EXPECTED_MEMPOOL_TXS}; diff --git a/crates/bitcoind_rpc/tests/test_filter_iter.rs b/crates/bitcoind_rpc/tests/test_filter_iter.rs index d6136ecf..ee672720 100644 --- a/crates/bitcoind_rpc/tests/test_filter_iter.rs +++ b/crates/bitcoind_rpc/tests/test_filter_iter.rs @@ -1,3 +1,5 @@ +#![cfg(not(windows))] + use bdk_bitcoind_rpc::bip158::{Error, FilterIter}; use bdk_core::CheckPoint; use bdk_testenv::{anyhow, bitcoind, TestEnv};