Skip to main content

max / everycycle

1.7 KB · 34 lines History Blame Raw
1 # Contributing to EveryCycle
2
3 EveryCycle is in `0.0.x`. Patterns documented here will grow as the codebase does. For now:
4
5 ## Conventions
6
7 - Edition 2024, MSRV `1.85`.
8 - Workspace dependencies are declared once in the root `Cargo.toml`. Member crates use `dep.workspace = true`.
9 - `cargo fmt` and `cargo clippy --all-targets --all-features -- -D warnings` clean before push.
10 - Commit messages: concise, imperative tense, no emoji.
11 - 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.
12
13 ## Documentation
14
15 - Per-project doc files follow Make Creative's markdown standards (internal; the convention summary is below).
16 - Architecture lives in `docs/architecture.md`.
17 - A `CHANGELOG.md` will appear once there are user-visible changes worth recording. Until then, the git log is the record.
18
19 ## Crate boundaries
20
21 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.
22
23 ## Tests
24
25 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.
26
27 ## What this file does not cover yet
28
29 - Release process (no releases yet).
30 - Security disclosure policy (no security surface to disclose against yet).
31 - Public contributor onboarding (project is unlisted; onboarding is in-person).
32
33 These appear when they're needed.
34