electrsd: include in workspace and CI#570
electrsd: include in workspace and CI#570satsfy wants to merge 13 commits intorust-bitcoin:masterfrom
Conversation
|
One thing I thought to include is a default electrsd version, like bitcoind in Edit: I suppose we need the default so tests work with an explicit version. |
2a42a61 to
4c939ef
Compare
|
Latest force push improves the legibility of the solution, sets a default electrs version, reworked the version feature graph so the |
af412f2 to
6e540e4
Compare
|
Needs rebase mate. Out of interest what made you go with |
6e540e4 to
8343421
Compare
|
Great point, I made a mistake regarding EDIT: The problem with v0.10.6 in CI was caused by using the legacy |
8343421 to
12645ba
Compare
|
On the latest rebase:
|
eca4af4 to
70b269f
Compare
|
Can we separate the fmt changes from actual code changes in c61ea18 |
| #[cfg(not(feature = "electrs_0_8_10"))] | ||
| #[cfg(not(all(feature = "electrs_0_8_10", not(feature = "electrs_0_9_1"))))] |
There was a problem hiding this comment.
These feature gates are making my eyes bleed. not, all, not - is there any way we can make this easier to reason about?
There was a problem hiding this comment.
I simplified version conditions with any like
#[cfg(any(feature = "electrs_0_9_1", not(feature = "electrs_0_8_10")))]And also used simpler conditions like crate::versions::IS_ELECTRS_0_8_10 in another spot.
70b269f to
28022c5
Compare
|
Latest rebase: |
93b3716 to
3866f93
Compare
When running `--all-features`, both `electrs_0_8_10` and `esplora_a33e97e1` features are enabled. This PR handles such case by enabling the legacy cookie handling when `esplora_a33e97e1` is enabled. The `legacy` flag is semantically meaningless, therefore it was dropped.
`std` was included in bitreq for the download `get()` function.
It tested an unsuported version 0.11.x.
Mirrors bitcoind solution. It also removes default electrs download for non-esplora paths.
3866f93 to
cd0ddfe
Compare
|
Latest rebase updates lockfiles because of upstream changes to fix ci |
Closes #552
electrsdin the workspace so it is built, linted, and tested alongside the other crates, mirroring thebitcoindcrate pattern.cargo fmtand clippy fixes in electrsd./contrib/update-lock-files.shelectrs_0_10_6the default version feature. Version features are now chained like bitcoind as a version cascade:electrs_0_10_6 -> 0_9_11 -> 0_9_1 -> 0_8_10 -> esplora.--all-featuresresolves to 0.10.6.versions.rswith legible constantsUSE_LEGACY_COOKIE(replacing oldlegacyfeature),USE_JSONRPC_IMPORT,USE_VERBOSE_ARG.--no-default-featuresso it does not accidentally combine with the default electrs version.no-downloadjob now enablesbitcoind_downloadbecause it still needs a bitcoind binary while using the system-providedELECTRS_EXEC.23_2feature name in ee9443c.RUST_LOG=debugon electrsd jobs.Tests now include electrsd. Check by running:
cargo test --all-featuresI've had various versions problems. Ran a CI matrix of every bitcoin version and electrds in Ubuntu 24.04 to understand what would work with what.