Contributing¶
Contributions are welcome — whether that’s firmware improvements, documentation fixes, or new case designs. The project lives at github.com/f321x/offline-bitcoin-atm.
Firmware¶
Before opening a pull request, make sure the firmware builds, the host tests pass, and the linters are happy:
cargo build
cargo test --lib --no-default-features --target x86_64-unknown-linux-gnu
cargo fmt --all -- --check
cargo clippy --all-targets --all-features --workspace -- -D warnings
See Building & Testing for the full toolchain setup and Architecture for an architecture overview.
Documentation¶
These docs are built with Sphinx from
reStructuredText sources in the docs/ directory, using the built-in Alabaster
theme (no extra dependencies). The published site lives at
https://f321x.github.io/offline-bitcoin-atm/docs/.
Build the docs locally (always in a virtual environment, never a global install):
python -m venv .venv
source .venv/bin/activate
pip install -r docs/requirements.txt
sphinx-build -b html docs docs/_build/html
# open docs/_build/html/index.html in your browser
To catch broken references and other issues the way CI does, build with warnings treated as errors:
sphinx-build -W -b html docs docs/_build/html
The site is published automatically by the docs.yml GitHub Actions workflow
on every push to master (and on each release). The same workflow also bundles
the browser-based web flasher at the site root, so there is a single GitHub Pages
deployment for the whole site.