# Contributing to cachebro
Contributions are welcome. Please read this guide before opening a pull request.
## Development setup
```bash
git clone https://github.com/terraphim/cachebro.git
cd cachebro
cargo build
```
## Running the tests
```bash
cargo test
```
All 51 tests must pass before submitting a pull request. No mocks are used in the
test suite — tests run against real files and a real SQLite database in a temporary
directory.
## Linting
```bash
cargo clippy -- -W clippy::all
```
Zero warnings are required.
## For larger changes
Open a GitHub issue first to discuss the approach before writing code. This avoids
wasted effort if the direction doesn't align with the project goals.
## Pull request checklist
- [ ] All existing tests pass (`cargo test`)
- [ ] No new clippy warnings (`cargo clippy -- -W clippy::all`)
- [ ] New behaviour is covered by tests
- [ ] README updated if user-visible behaviour changed