All contributions must be signed off per the DCO. Add Signed-off-by: Your Name <[email protected]> to your commit message.
- Follow
rustfmtdefaults (cargo fmt --checkis enforced in CI) - No warnings permitted (
cargo clippy -- -D warningsmust pass) - No
unwrap()outside#[cfg(test)]blocks #![forbid(unsafe_code)]— no unsafe Rust
Every functional change must:
- Annotate the relevant requirement:
// fusa:req REQ-XXX - Add or update a test annotated:
// fusa:test REQ-XXX - Pass
rsfusa checkwith zero gaps
cargo test # unit + integration tests
cargo test --release # check optimised build
cargo clippy -- -D warnings
cargo fmt --check- Fork and create a feature branch
- Write code with FuSa annotations
- Ensure all CI checks pass
- Open a PR against
main - Request review from at least one maintainer
- Safety-impacting changes require Safety Manager review
Semantic versioning: MAJOR.MINOR.PATCH. See docs/SEMVER.md
for the full policy, including:
- Which modules carry a stability guarantee at all (not every
pubitem does pre-v1.0.0— see that document's stability tiers), and the repo-specific rule thatCargo.toml's version does not move until the OPEN Alliance TC18 uplift (ROADMAP.mdMilestones 1-10) reachesv1.0.0. - The
#[non_exhaustive]policy for enums expected to grow. - If your change adds, removes, or renames a
pubitem, regeneratedocs/PUBLIC_API.txt(cargo +nightly public-api --simplified > docs/PUBLIC_API.txt) and commit it in the same PR — CI'sapi-stabilityjob fails otherwise.
- Security vulnerabilities: [email protected] (see SECURITY.md)
- Safety concerns: [email protected]
- General bugs: GitHub Issues