We welcome contributions! Please follow these guidelines:
- Search existing issues before opening a new one
- Use issue templates (bug report, feature request)
- Provide reproducible steps for bugs
- Fork the repo and create a branch:
git checkout -b my-feature - Make changes; ensure
cargo testandnpm testpass - Write clear commit messages (conventional commits preferred):
feat: add QUIC transport optionfix: resolve SSE reconnect race conditiondocs: update mTLS setup guide
- Open PR against
mainwith description of changes - Wait for CI to pass; address review feedback
- Rust:
cargo fmt(rustfmt) andcargo clippy(lints) - TypeScript: Prettier + ESLint (configured in
ui/operator) - Commits: Signed-off-by line (DCO) not required for now; may add later
- Unit tests:
cargo test(Rust),npm test(UI) - Integration:
./scripts/smoke.shafterdocker compose up - Manual: Follow README test profiles (Sanity, Blackout, Loss)
- Update
ARCHITECTURE.mdfor component changes - Update
README.mdfor user-facing features - Add comments for mTLS/SPIFFE hook points
None for now. Contributors retain copyright; code is Apache-2.0 licensed.
See CODE_OF_CONDUCT.md.