Thank you for considering contributing to warp_cache! This guide will help you get started.
- Fork the repository and clone your fork.
- Set up the development environment:
make setup # Create venv + install dev dependencies
make build-debug # Build the Rust extension (debug mode)
make test-only # Run the test suite- Create a branch from
mainfor your work. - Make your changes, keeping commits focused and well-described.
- Add or update tests for any new or changed functionality.
- Run the full check suite before submitting:
make fmt # Format Python (ruff) + Rust (cargo fmt)
make lint # Lint Python (ruff) + Rust (clippy)
make test # Build + run all testssrc/- Rust core (PyO3 extension module)warp_cache/- Python package (decorator, strategies)tests/- pytest test suitebenchmarks/- Performance benchmarks
- Python: Formatted and linted with ruff (line length 100)
- Rust: Formatted with
cargo fmt, linted withcargo clippy -- -D warnings
Running make fmt handles both.
- Keep PRs focused on a single change.
- Include a clear description of what the PR does and why.
- Ensure all CI checks pass (formatting, linting, tests).
- Link any related issues.
- Bug reports: Include Python version, OS, warp_cache version, and a minimal reproduction.
- Feature requests: Describe the use case and proposed behavior.
make test # Build + run all tests
make test-only # Run tests without rebuilding
make test-matrix -j # Test across Python 3.10-3.14
uv run pytest tests/test_basic.py::test_cache_hit -v # Run a single testBy contributing, you agree that your contributions will be licensed under the same MIT License that covers this project.