# Contributing Solo project. External contributions aren't accepted yet; the design is still moving. When that changes this file will grow. ## Working in this repo - Design and load-bearing decisions live in `~/Wiki/shop-*.md`, not here. - Work backlog is in GoingsOn (project `shop`), not `todo.md`. - Rust 2024 edition, latest stable toolchain. - `cargo deny check` must pass before commit. No GPL/LGPL/AGPL, ever. - `cargo fmt` + `cargo clippy --all-targets` clean. - Commits are concise, imperative, no emoji. - Build prerequisites are in the README's Building section. A dependency that links a new system library changes that section, and it changes Alloy's Containerfile too: Alloy builds shop from source at a pinned revision, so a library added here breaks its image at the next `SHOP_REV` move. Say so in the commit. ## Adding a component crate Internal crates are scaffolded when they start, not up front: ``` cargo new --lib crates/ ``` Then add it to `Cargo.toml`'s `[workspace] members`, add the `[lints] workspace = true` block, and inherit `edition`/`rust-version`/`authors`/ `repository`/`license` from `[workspace.package]`. ## Attribution Files adapted from external sources (rio, alacritty, foot, etc.) get a header comment naming the source, its license, and the commit SHA or version tag. See `ATTRIBUTIONS.md` for the full list.