Files
todo-mcp/CONTRIBUTING.md

54 lines
1.2 KiB
Markdown

# 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