Skip to content

ci: check no_std and WASM builds, harden workflow - #86

Merged
evanlinjin merged 2 commits into
bitcoindevkit:masterfrom
evanlinjin:ci/no-std-wasm
Oct 21, 2026
Merged

evanlinjin merged 2 commits into
bitcoindevkit:masterfrom
evanlinjin:ci/no-std-wasm

Conversation

@evanlinjin

@evanlinjin evanlinjin commented Sep 25, 2026 •

Copy link
Copy Markdown
Member

Description

Stage 1 of fixing the required status checks on master, plus a fix for the test and clippy_check jobs, which fail on master and every open PR (e.g. #84).

The Default Branch ruleset requires 14 checks copied from an older bdk_wallet CI (miniscript/no-std, bdk_chain/hashbrown, and so on). Nothing in this repo reports them, so every PR sits on "Expected — waiting for status" indefinitely.

This PR ports the bdk_wallet jobs that make sense for this crate:

  • Check no_std: cargo check --no-default-features. The crate is #![no_std] with an optional std feature, but CI never built it without default features.
  • Check WASM: cargo check --target wasm32-unknown-unknown --no-default-features. The crate is pure Rust, so bdk_wallet's clang setup isn't needed.
  • Hardening: permissions: {} at the workflow level and persist-credentials: false on every checkout.

Left out: the ARM runner matrix (little value for integer arithmetic), code coverage (needs a CODECOV_TOKEN secret) and zizmor.

Fix: cap proptest below 1.12

proptest 1.12 depends on rand 0.10, but our rand dev-dependency is 0.9. Cargo.lock isn't committed, so CI resolves the newest proptest and the tests fail to build (TestRng: rand::Rng is not satisfied). The dev-dependency is now proptest = ">=1.7, <1.12". Moving to rand 0.10 and proptest 1.12 together is left for a follow-up, since rand 0.10 deprecates RngCore and the tests would need changes. Once this is merged, open PRs need a rebase onto master to go green.

Follow-up (needs a repo admin)

Replace the ruleset's required checks with the jobs this repo actually runs:
Rustfmt, clippy_check, build-msrv, test, doc-build, Check no_std, Check WASM.

Checklists

  • cargo check --no-default-features and the WASM check pass locally
  • cargo fmt, clippy, doc and test pass locally on a fresh resolve (no Cargo.lock)

🤖 Generated with Claude Code

evanlinjin and others added 2 commits September 25, 2026 03:40
Add `Check no_std` and `Check WASM` jobs, modelled on bdk_wallet's CI.
The crate is `#![no_std]` with an optional `std` feature, but nothing
previously built it without default features.

Also set `permissions: {}` and `persist-credentials: false` on every
checkout so jobs don't hold a token they never use.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
proptest 1.12 depends on rand 0.10, while our `rand` dev-dependency is
0.9, so a fresh resolve (as CI does, `Cargo.lock` isn't committed) fails
to build the tests with `TestRng: rand::Rng` not satisfied. This broke
the `test` and `clippy_check` jobs on master and every open PR.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@evanlinjin evanlinjin self-assigned this Oct 20, 2026

@notmandatory notmandatory left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

ACK f2eef93

@notmandatory

Copy link
Copy Markdown
Member

@evanlinjin please rebase and merge when ever you want. I've updated the required checks.

@noahjoeris noahjoeris left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

ACK f2eef93

@oleonardolima oleonardolima left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

ACK f2eef93

@evanlinjin
evanlinjin merged commit 2a08d7d into bitcoindevkit:master Oct 21, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants