You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
6f140ed ci: add overview documentation to ci workflows (thunderbiscuit)
c6af44b chore: bump rust-toolchain.toml channel to 1.90.0 (stable) (thunderbiscuit)
3ffe0ff ci: remove cron-update-rust workflow (thunderbiscuit)
1589e8e ci: fix code coverage workflow (thunderbiscuit)
2d85143 ci: update actions/checkout to version 5 (thunderbiscuit)
ab5a348 ci: leverage rust-toolchain.toml file in ci workflows (thunderbiscuit)
aa6bea0 build: add rust-toolchain.toml file (thunderbiscuit)
Pull request description:
This addresses #314. It also incorporates the changes in #299.
The rust-toolchain.toml file is used to help contributors build, format, and clippy check the codebase using the same version of the Rust compiler. It can easily be overriden, but if no other arguments are supplied to commands like `cargo run`, `cargo fmt`, and `cargo clippy`, they will pick the version defined in this file.
In order to ensure the CI runs and the default versions devs build the library with (the one defined in `rust-toolchain.toml`) stay in sync, a few changes were made to the `cont_integration.yaml` workflow:
1. I removed the "prepare" job, which parsed the rust-version file in order to use it throughout the CI jobs.
2. I split the `Build & Test` job (and the 3-way matrix of (a) OS, (b) compilation features, (c) Rust version) into 2 different jobs. This is IMO easier for the eye to parse when looking at the workflow, and fully separate the testing of the MSRV and Stable into two separate jobs instead of a matrix of jobs with some extra of if/else stuff (for running the pinning script for example). The 2 jobs are now called `Build & Test MSRV` and `Build and Test Stable`. Note that this makes it easier to see and understand the workflow in the GitHub UI.
3. I picked a new "rust toolchain" action, [setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain). It's the one recommended to me by both ChatGPT and Claude, and has a lot of stars and users (albeit a bit less than the dtolnay action, which its readme cites as its main inspiration). The reason for this is 2-fold: (a) it comes with caching out of the box, and (b) it respects the `toolchain.toml` file by default. [See their docs on this exact feature](https://github.com/actions-rust-lang/setup-rust-toolchain?tab=readme-ov-file#inputs). This makes our workflows easy to work with: in the first job, we explicitly set the toolchain version to our MSRV, in the second we let the action download the toolchain defined in rust-toolchain.toml.
I also bumped the checkout action to its latest v5 version (last commit).
close#314close#299
### 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 `just p` before pushing
ACKs for top commit:
ValuedMammal:
ACK 6f140ed
oleonardolima:
utACK 6f140ed
Tree-SHA512: 3ddd396c9e85a0addc428438747c78b1e576246b7dce47ea1a8c8f724638f9d79e611be986f36600a28daa45af58603bc7e9b76f0e20264f8af231cbaf820251
0 commit comments