- Rust stable 1.94+
- Rust nightly (for
rustfmt)
All contributors must read and understand conventions.md before contributing. The conventions cover code style, testing requirements, file organization, and security practices. Submissions that do not follow these conventions will be rejected.
make build
make release
make checkmake testSecurity is enforced at every stage of development.
cargo audit and cargo deny check are run as part of
the make audit target. The deny.toml config bans
wildcard version requirements, unknown registries, and
unknown git sources. Multiple versions of the same crate
produce a warning. All crates enforce
#![deny(unsafe_code)] and Clippy runs with
-D warnings (zero tolerance).
Formatting requires nightly (group_imports and
imports_granularity are nightly-only). Both stable and
nightly toolchains must be installed.
make fmt # format all code
make lint # check formatting + clippymake doc # build docs with warnings deniedAll items (public and private) require /// doc
comments. The missing_docs and
missing_docs_in_private_items lints enforce this at
compile time.
Rustdoc warnings are denied globally via
.cargo/config.toml (rustdocflags = ["-D", "warnings"]),
so cargo doc always enforces doc quality even
outside Make.
make coverage # HTML coverage report
make coverage-check # fail if below thresholdRequires cargo-llvm-cov.
All repositories in the praxis-proxy organization
use a consistent workflow for planning, prioritizing,
and tracking work.
Milestones represent a body of work toward a shared goal (e.g. a release, a feature area, or a hardening pass). Every issue and pull request should belong to a milestone. Milestones provide scope boundaries and help answer "what ships together?"
Priority labels indicate the order in which work within a milestone should be addressed. Every issue should have exactly one priority label:
| Label | Description |
|---|---|
priority/critical |
Must be worked on immediately before anything else |
priority/high |
Needs to be worked on immediately, defer to criticals |
priority/medium |
Resolve after high and critical |
priority/low |
Resolve after all other priority levels |
When picking up work, address issues in priority order: critical first, then high, medium, and low.
GitHub project boards visualize the state of work across milestones. Use boards to track issues through their lifecycle (backlog, in progress, in review, done). Boards are the primary tool for stand-ups and status checks.