Skip to content

Move CI and local testing to cargo-rbmt#39

Open
luisschwab wants to merge 6 commits intobitcoindevkit:masterfrom
luisschwab:feat/cargo-rbmt
Open

Move CI and local testing to cargo-rbmt#39
luisschwab wants to merge 6 commits intobitcoindevkit:masterfrom
luisschwab:feat/cargo-rbmt

Conversation

@luisschwab
Copy link
Copy Markdown
Member

@luisschwab luisschwab commented Apr 3, 2026

Closes #23
Closes #30
Closes #38
Overrides #25
Overrides #34
Overrides #35

This PR moves CI and local testing to cargo-rbmt.

Changelog

- Introduce `cargo-rbmt`:
  - Update CI flows to use `cargo-rbmt`
  - Update `justfile` to use `cargo rbmt *` commands
  - Commit `Cargo-minimal.lock` and `Cargo-recent.lock` and delete `Cargo.lock`
 
- Rename package to `bdk_bitcoind_client`
- Fix incorrect MSRV on `Cargo.toml`
- Remove unused `jsonrpc` features (these should be re-added if/when the corresponding functionality is implemented here)
- Add `SPDX-License-Identifier: MIT OR Apache-2.0` on all files
- Add `sigs.yml` job for asserting that all commits in the branch are PGP-signed
- Use `core::` where applicable

- Update `README.md`:
  - Add missing badges
  - Add pointers for `cargo-rbtm` and new recipes
  - Fix nits

@luisschwab luisschwab self-assigned this Apr 3, 2026
@luisschwab luisschwab added documentation Improvements or additions to documentation ci labels Apr 3, 2026
Introduce `cargo-rbmt` for all things cargo, such as linting,
formatting and testing. The `rbmt-version` file defines what
version is used.

The `Cargo.toml` manifest is updated with `cargo-rbmt` specific fields, defining:
  - Stable and MSRV toolchains
  - Necessary pins for MSRV (all of them due to `corepc`, once they use `cargo-rbmt`
  there these can be removed).

Fix incorrect MSRV on `Cargo.toml`: from 1.75.0 to 1.85.0

Update the `justfile` to use `cargo-rbmt` for recipes, and updates
CI jobs to use the recipes defined in the `justfile` (which use
`cargo-rbmt` under the hood). This simplifies configuration by
centralizing it in the `justfile`.

Update `.gitignore` to exclude `Cargo.lock`.

Add a `sigs.yml` CI job that asserts all commits in the branch are
signed (no-op on `master`). This job runs `just check-sigs` under the hood.
Run `just pre-push`, which:
  - Generates `Cargo-minimal.lock` and `Cargo-recent.lock`
  - Formats code

Also renames `tests/test_rpc_client.rs` to `tests/rpc_client.rs`.
@luisschwab
Copy link
Copy Markdown
Member Author

@ValuedMammal you need to change the required jobs in settings to match these.

Copy link
Copy Markdown
Collaborator

@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.

I've only partially reviewed the changes but here are some thoughts.

Comment on lines +18 to +22
- name: Setup just
uses: extractions/setup-just@f8a3cce218d9f83db3a2ecd90e41ac3de6cdfd9b # v3

- name: Check commit signatures
run: just check-sigs
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

nit: I would rather avoid the setup-just dependency for github workflows and just execute a bash script here.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

The idea is to centralize all config in the justfile, and adding a bash script goes against this idea. Let me know what you think. The just CI dep is acceptable IMO.

@luisschwab
Copy link
Copy Markdown
Member Author

luisschwab commented Apr 5, 2026

Pushed b53d170 addressing all of @ValuedMammal's reviews, except the one about CI signature checks.

Updates the README with pointers to `cargo-rbmt`
and new recipes. Also adds badges and fixes a
bunch of nits.
Also:
 - Cache build artifacts on CI
 - Remove unused `jsonrpc` features
 - Move `corepc-node`-related pins under `dev-dependencies`
 - Remove `+nightly` from `lock` recipe
@luisschwab luisschwab requested a review from tvpeter April 7, 2026 05:33
Copy link
Copy Markdown
Collaborator

@tvpeter tvpeter left a comment

Choose a reason for hiding this comment

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

Well done @luisschwab

You already addressed the comments before I could submit the review.

I left one additional nit.

tACK 0616786

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

deps: Simplify jsonrpc feature selection Migrate to cargo-rbmt

4 participants