mirror of
https://github.com/bybrooklyn/openbitdo.git
synced 2026-03-19 04:12:56 -04:00
OpenBitdo SDK
This workspace contains the OpenBitdo runtime, protocol layer, and release packaging scripts.
Crates
bitdo_proto: command registry, transport, session, and diagnostics behaviorbitdo_app_core: firmware policy, device workflows, and support-tier gatingbitdo_tui: terminal UI, app state, runtime loop, persistence, and headless APIopenbitdo: beginner-first launcher binary
Build And Test
From cleanroom/sdk:
cargo build --workspace
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace --all-targets
./scripts/cleanroom_guard.sh
Local Run
cargo run -p openbitdo --
cargo run -p openbitdo -- --mock
openbitdo intentionally exposes a single interactive CLI surface.
Headless automation remains available through the Rust API in bitdo_tui.
Packaging
./scripts/package-linux.sh v0.0.0-local x86_64
./scripts/package-linux.sh v0.0.0-local aarch64
./scripts/package-macos.sh v0.0.0-local arm64 aarch64-apple-darwin
Outputs:
openbitdo-<version>-linux-x86_64.tar.gzopenbitdo-<version>-linux-aarch64.tar.gzopenbitdo-<version>-macos-arm64.tar.gz- standalone binaries for each packaged target
.sha256files for every artifact- macOS
.pkgfrompkgbuild
Current macOS packaging remains unsigned and non-notarized by design.
Release Flow
- Tag from
mainusing av*tag. release.ymlverifies CI, secrets, and release blockers.- Linux and macOS artifacts are built and uploaded.
- GitHub prerelease assets are published from those artifacts.
- AUR and Homebrew metadata are rendered from published release assets.
- AUR and Homebrew publication run only when their repo-variable gates are enabled.
Package Manager Publishing
- AUR workflow:
.github/workflows/aur-publish.yml - Homebrew workflow:
.github/workflows/homebrew-publish.yml - Release metadata renderer:
packaging/scripts/render_release_metadata.sh - AUR source of truth:
- tracked package metadata in
packaging/aur/openbitdo-bin - template in
packaging/aur/openbitdo-bin/PKGBUILD.tmpl
- tracked package metadata in
- Homebrew source of truth:
- template in
packaging/homebrew/Formula/openbitdo.rb.tmpl - published tap repo
bybrooklyn/homebrew-openbitdo
- template in
Current repo-variable contract:
AUR_PUBLISH_ENABLED=1HOMEBREW_PUBLISH_ENABLED=1when Homebrew publication is enabledHOMEBREW_TAP_REPO=bybrooklyn/homebrew-openbitdo
Required secrets:
AUR_USERNAMEAUR_SSH_PRIVATE_KEYHOMEBREW_TAP_TOKEN
Docs Map
- Public project overview:
../README.md - RC checklist:
../RC_CHECKLIST.md - Process docs:
../process - Spec docs:
../spec