Thank you for your interest in contributing. This document explains how to get started, how work is tracked, and what to expect from the review process.
By participating in this project you agree to abide by the Code of Conduct.
Bug reports and feature requests are tracked as GitHub Issues. Before opening a new issue, search existing ones to avoid duplicates.
Use Conventional Commits for commit messages:
feat: add support for vLLM multi-GPU serving
fix: correct VRAM probe when amd-smi is absent
docs: clarify GPU selection flag behavior
chore: bump rust-toolchain to 1.96
Branch names should be short and descriptive:
feat/vllm-multi-gpu
fix/vram-probe-fallback
Prerequisites: Rust (see rust-toolchain.toml for the pinned version) and uv (for prek and scripts).
git clone https://github.com/ROCm/rocm-cli
cd rocm-cli
uv tool install prek # or: cargo install --locked prek
prek install # fast checks on every commit
prek install -t pre-push # heavier checks on push (clippy + tests)prek runs the same checks locally that CI enforces: cargo fmt, clippy, cargo test, ruff (Python), shellcheck (shell), and PowerShell syntax.
| Path | Description |
|---|---|
apps/rocm |
Main CLI binary |
apps/rocmd |
Background daemon |
crates/rocm-core |
Core library |
crates/rocm-dash-* |
Dashboard TUI libraries |
crates/rocm-engine-protocol |
Engine IPC protocol |
engines/ |
Inference engine adapters (lemonade, vllm) |
| Component | Command |
|---|---|
| Rust (all crates) | cargo test |
| Lint + format check | prek run --all-files |
See docs/testing.md for the full test guide and docs/manual-testing.md for manual QA steps.
- Fork the repository and create a branch from
main. - Make your changes. Keep commits focused — one logical change per commit.
- Add or update tests for any new behavior.
- Run the relevant test suite before opening a PR.
- Open a pull request against
mainwith a clear title and description following the Conventional Commits format.
Commits must be both cryptographically signed and carry a DCO Signed-off-by trailer. Use git commit -s to add the trailer automatically. This is enforced by the prek hooks and by a blocking CI check.
Enable SSH signing once with:
git config --global gpg.format ssh
git config --global user.signingkey ~/.ssh/id_ed25519.pub
git config --global commit.gpgsign trueSee docs/commit-signatures.md for GPG signing, GitHub "Verified" status, and troubleshooting.
- Tests cover the new behavior
- No secrets, credentials, or internal hostnames in committed files
- Third-party dependencies declared in
Cargo.lock; license headers present on new source files (seelicenserc.toml)
Do not open a public GitHub Issue for security vulnerabilities. See SECURITY.md for the responsible disclosure process.
By contributing you agree that your contributions will be licensed under the MIT License.