Rename all project references from quicproquo/qpq to quicprochat/qpc across documentation, Docker configuration, CI workflows, packaging scripts, operational configs, and build tooling. - Docker: crate paths, binary names, user/group, data dirs, env vars - CI: workflow crate references, binary names, artifact names - Docs: all markdown files under docs/, SDK READMEs, book.toml - Packaging: OpenWrt Makefile, init script, UCI config (file renames) - Scripts: justfile, dev-shell, screenshot, cross-compile, ai_team - Operations: Prometheus config, alert rules, Grafana dashboard - Config: .env.example (QPQ_* → QPC_*), CODEOWNERS paths - Top-level: README, CONTRIBUTING, ROADMAP, CLAUDE.md
41 lines
1.3 KiB
Markdown
41 lines
1.3 KiB
Markdown
# Contributing to quicprochat
|
|
|
|
## Prerequisites
|
|
|
|
- **Rust toolchain** (stable) via [rustup](https://rustup.rs/)
|
|
- **protoc** is vendored via the `protobuf-src` crate -- no system installation needed
|
|
- Git with GPG signing configured
|
|
|
|
## Building and Testing
|
|
|
|
```sh
|
|
cargo build --workspace
|
|
cargo test --workspace
|
|
```
|
|
|
|
A `justfile` is also available for common tasks (`just build`, `just test`, `just proto`, etc.).
|
|
|
|
## Code Standards
|
|
|
|
### Commits
|
|
|
|
- **Conventional commits**: `feat:`, `fix:`, `docs:`, `chore:`, `test:`, `refactor:`
|
|
- Commits must be **GPG-signed**
|
|
- Commit messages describe *why*, not just *what*
|
|
- No `Co-authored-by` trailers
|
|
|
|
### Rust
|
|
|
|
- No `.unwrap()` on crypto or I/O operations outside of tests
|
|
- Secrets must be zeroized on drop and never logged
|
|
- No stubs, `todo!()`, or `unimplemented!()` in production code
|
|
- Prefer clarity over cleverness; avoid unnecessary abstractions
|
|
|
|
## Security Vulnerabilities
|
|
|
|
Do not open public issues for security bugs. See [SECURITY.md](SECURITY.md) for responsible disclosure instructions.
|
|
|
|
## Licensing
|
|
|
|
The server crate (`quicprochat-server`) is licensed under **AGPL-3.0**. All other crates are dual-licensed under **Apache-2.0 / MIT**. By submitting a contribution, you agree to license your work under the applicable license(s).
|