chore: add CONTRIBUTING.md

This commit is contained in:
2026-03-01 00:19:24 +01:00
parent 9208f3c569
commit 9ece587312

53
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,53 @@
# Contributing
## Prerequisites
- rust 1.85+ (edition 2024)
- sqlite development libraries
install the rust toolchain via [rustup](https://rustup.rs/) and make sure
sqlite headers are available for your platform.
## Development
```sh
cargo build
cargo test
cargo clippy
cargo fmt
```
run all checks before submitting changes:
```sh
cargo fmt && cargo clippy && cargo test && cargo build
```
### Database
data is stored in a sqlite file at `$XDG_DATA_HOME/todo/todos.db` (override
with `TODO_DB`). migrations in `migrations/` are applied automatically at
startup.
## Project layout
```
src/
main.rs - entry point
cli.rs - clap argument definitions
commands.rs - command handlers
db.rs - database access layer
model.rs - data types
display.rs - output formatting
mcp.rs - mcp server
tests/ - integration tests
migrations/ - sqlite migrations
build.rs - shell completion generation
```
## Submitting changes
1. create a feature branch from `main`
2. keep commits small and focused
3. ensure `cargo fmt`, `cargo clippy`, and `cargo test` all pass
4. open a merge request with a clear description of what changed and why