# Contributing to EveryCycle EveryCycle is in `0.0.x`. Patterns documented here will grow as the codebase does. For now: ## Conventions - Edition 2024, MSRV `1.85`. - Workspace dependencies are declared once in the root `Cargo.toml`. Member crates use `dep.workspace = true`. - `cargo fmt` and `cargo clippy --all-targets --all-features -- -D warnings` clean before push. - Commit messages: concise, imperative tense, no emoji. - No PRs. Patches sent via `git send-email` to the founder, or pushed directly by the lead fellow and area owners once those roles exist. ## Documentation - Per-project doc files follow Make Creative's markdown standards (internal; the convention summary is below). - Architecture lives in `docs/architecture.md`. - A `CHANGELOG.md` will appear once there are user-visible changes worth recording. Until then, the git log is the record. ## Crate boundaries When in doubt about which crate a piece of code belongs in, default to `everycycle-runtime` and refactor outward when the boundary becomes obvious. Premature crate splitting is more painful than late crate splitting. ## Tests Phase 0 lands with unit tests for any non-trivial logic and integration tests that exercise the HTTP surface. Property-based tests (`proptest`) preferred for any decoder, parser, or invariant-bearing structure. No mocked GPUs — integration tests either run against a real device or are gated behind a feature flag. ## What this file does not cover yet - Release process (no releases yet). - Security disclosure policy (no security surface to disclose against yet). - Public contributor onboarding (project is unlisted; onboarding is in-person). These appear when they're needed.