Skip to content

Latest commit

 

History

History
70 lines (51 loc) · 2.2 KB

File metadata and controls

70 lines (51 loc) · 2.2 KB

Contributing

Contributions are open, and adapter PRs are the ones we want most — no prior discussion needed if you follow docs/adapters.md. For daemon/protocol changes, open an issue first so we can agree on the shape before you spend time.

Ground rules

  • The footprint budget is law. Anything that adds idle CPU, resident memory, or network I/O to the daemon will be declined regardless of the feature. See docs/architecture.md.
  • Protocol changes must update crates/mb-protocol and docs/protocol.md in the same PR, with a version bump if breaking.
  • No CLA. Contributions are accepted under the project's MIT license (inbound = outbound).

Dev setup

rustup show          # toolchain comes from rust-toolchain.toml
cargo test           # all crates
cargo run -p microbridged
node adapters/reference-echo/index.mjs   # exercise the daemon end-to-end

End-user install paths are documented in INSTALL.md (./scripts/install.sh, uninstall, releases).

Before you push

cargo fmt --all
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
# menu bar app:
cd apps/microbridge-ui && npm ci && npm run build

Or make ci. CI enforces Rust checks on macOS/Linux and the UI build on Ubuntu.

Releases

Push a version tag to publish binaries via GitHub Actions:

git tag v0.1.0
git push origin v0.1.0

Assets are attached to the GitHub Release; users can run ./scripts/install-from-release.sh v0.1.0.

Commits and PRs

main is protected — no direct pushes. Open a PR; squash-merge only.

  • PR titles must be Conventional Commits (feat:, fix:, docs:, adapter:, …) — enforced by CI (PR title workflow).
  • Required checks: rust (ubuntu-latest), rust (macos-latest), ui.
  • Resolve review threads before merge.
  • One logical change per PR; small PRs merge fast here.
  • PRs must say how they were tested — "ran the reference adapter against the daemon and watched the frames" is a fine answer at this stage.

See docs/governance.md.

Reporting security issues

Privately, please — see SECURITY.md.