From 9ece58731250b2789e3dd23420a4d4c63fe56de8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Jane=C5=BEi=C4=8D?= Date: Sun, 1 Mar 2026 00:19:24 +0100 Subject: [PATCH] chore: add CONTRIBUTING.md --- CONTRIBUTING.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..d312e9c --- /dev/null +++ b/CONTRIBUTING.md @@ -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