- Rust stable — the version is pinned in
rust-toolchain.toml;rustuppicks it up automatically. - Bun — required to build and test the web console (
console/).
cargo build --workspace # daemon, CLI, init
cd console && bun install && bun run build # dashboardcargo test --workspace # unit + integration tests
cd console && bun install && bun test # console testsSome cage integration tests require Linux and root (they exercise the full namespace and cgroup stack). Those tests detect when they are running on macOS or without sufficient privileges and skip themselves automatically.
cargo fmt # format — required before committing
cargo clippy -- -D warnings # CI enforces zero warningsThe CI pipeline runs fmt --check and clippy -D warnings on every pull
request. Fix any warnings before submitting.
- Keep PRs small and focused on a single concern.
- Include tests for any behavior change or new feature.
- Update relevant documentation in
docs/when the user-visible behavior changes. - The PR description should explain why the change is needed, not just what it does.
Open a GitHub issue before starting significant work. This avoids duplicated effort and gives a place to agree on the approach before implementation.
This project follows GitHub's community guidelines.