Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(bdk_esplora, bdk_electrum): build and test with --no-default-features #1615

Conversation

oleonardolima
Copy link
Contributor

Description

It was noticed in #1603 that both bdk_esplora and bdk_electrum were not able to build and test successfully when --no-default-features was passed.

It wasn't noticed in CI, because the example-crates are in the same workspace as the main crates, therefore even though when passing --no-default-features, the examples were making the blocking feature to bdk_esplora and use-rustls to bdk_electrum available, therefore not failing in the tests.

This PR attempts to fix that, and is now used as base for #1603.

Notes to the reviewers

Changelog notice

  • Add blocking-https as default feature to bdk_esplora, and make `{async|blocking}-https-native available too.
  • Add tests behind features for both bdk_esplora and bdk_electrum.

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

New Features:

  • I've added tests for the new feature
  • I've added docs for the new feature

Bugfixes:

  • This pull request breaks the existing API
  • I've added tests to reproduce the issue which are now passing
  • I'm linking the issue being fixed by this PR

Copy link
Contributor

@ValuedMammal ValuedMammal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 086eb6e

- add `blocking-https` as one of the default features, instead of
  `blocking-https-rustls`, they are basically the same in
  `esplora-client`.
- add `async` and `blocking as required features for each test, using
  the `[[test]]` cargo target.
- add `use-rustls` as required features for `test_electrum.rs`, using
  the `[[test]]` cargo target approach.
@oleonardolima oleonardolima force-pushed the fix/bdk-esplora-and-electrum-no-default-features-build branch from 086eb6e to 6e8f196 Compare September 20, 2024 00:48
Copy link
Contributor

@ValuedMammal ValuedMammal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 9b7b195

@ValuedMammal ValuedMammal merged commit 9b7b195 into bitcoindevkit:master Sep 28, 2024
21 checks passed
ValuedMammal added a commit that referenced this pull request Sep 28, 2024
d802d00 fix(RUSTSEC-2024-0370)!: bump `clap` to latest, removing transitive dependency on `proc-macro-error`. (Leonardo Lima)
45be317 refactor(ci)!: update CI to build and test example in specific job (Leonardo Lima)
519728c chore(examples)!: update all examples to have `example_` prefix (Leonardo Lima)
9b7b195 chore: use path as `name` for cargo test targets (Leonardo Lima)
6e8f196 fix(bdk_electrum): build with `--no-default-features` (Leonardo Lima)
33942ec fix(bdk_esplora): build with `--no-default-features` (Leonardo Lima)

Pull request description:

  A candidate for fixing #1593. It builds on top of #1615
  <!-- You can erase any parts of this template not applicable to your Pull Request. -->

  ### Description

  <!-- Describe the purpose of this PR, what's being adding and/or fixed -->

  In #1593 it's mentioned that `proc-macro-error` is unmaintained for the
  past few years, with no fix other than using proc-macro-error2 instead.

  As on our scenario it's merely a transitive dependency of `clap`,
  through `clap_derive` feature, which in latest releases doesn't depend on
  `proc-macro-error` we can just bump it to latest.

  It's valid to note that by bumping it, both examples that relies on clap
  are no longer MSRV (1.63) compliant.

  That said, this PR does:

  - Standardize the example packages to have `example_` prefix.
  - Exclude examples from running in main `Build & Test` CI job.
  - Add new testing step to `Build & Test Example` CI job.
  - Bumps the `clap` to `4.5.17`.

  ### Notes to the reviewers

  <!-- In this section you can include notes directed to the reviewers, like explaining why some parts
  of the PR were done in a specific way -->

  ### Changelog notice

  <!-- Notice the release manager should include in the release tag message changelog -->
  <!-- See https://keepachangelog.com/en/1.0.0/ for examples -->

  - Standardize the example packages to have `example_` prefix.
  - Exclude examples from running in main `Build & Test` CI job.
  - Add new testing step to `Build & Test Example` CI job.
  - Bumps the `clap` to `4.5.17`.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  <!--
  #### New Features:

  * [ ] I've added tests for the new feature
  * [ ] I've added docs for the new feature
  -->

  #### Bugfixes:

  * [ ] This pull request breaks the existing API
  * [ ] I've added tests to reproduce the issue which are now passing
  * [x] I'm linking the issue being fixed by this PR

ACKs for top commit:
  ValuedMammal:
    ACK d802d00

Tree-SHA512: 274ddcdf05175fa5bc9c78e81de9ce768b800942a2dd420abc415618948aa84b79f6542d8af0c9ba57adaca48ce91fb854546ece069bd4751598cca4ed8f7560
@oleonardolima oleonardolima deleted the fix/bdk-esplora-and-electrum-no-default-features-build branch September 28, 2024 17:41
@ValuedMammal ValuedMammal mentioned this pull request Oct 2, 2024
32 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants