1.2 KiB
1.2 KiB
Contributing
Prerequisites
- rust 1.85+ (edition 2024)
- sqlite development libraries
install the rust toolchain via rustup and make sure sqlite headers are available for your platform.
Development
cargo build
cargo test
cargo clippy
cargo fmt
run all checks before submitting changes:
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
- create a feature branch from
main - keep commits small and focused
- ensure
cargo fmt,cargo clippy, andcargo testall pass - open a merge request with a clear description of what changed and why