| # Contributing to Cascade | |
| Thank you for your interest in contributing to Cascade! This document provides guidelines for contributing to the project. | |
| ## Getting Started | |
| 1. Fork the repository | |
| 2. Clone your fork: `git clone https://github.com/YOUR_USERNAME/cascade.git` | |
| 3. Create a feature branch: `git checkout -b feature/your-feature-name` | |
| 4. Make your changes | |
| 5. Run tests: `make test` | |
| 6. Commit your changes: `git commit -m "Add feature: description"` | |
| 7. Push to your fork: `git push origin feature/your-feature-name` | |
| 8. Open a Pull Request | |
| ## Development Setup | |
| ```bash | |
| # Install dependencies | |
| pip install poetry | |
| poetry install | |
| # Run tests | |
| make test | |
| # Run linting | |
| make lint | |
| # Format code | |
| make format | |
| # Start development server | |
| make run | |
| ``` | |
| ## Code Style | |
| - Follow PEP 8 guidelines | |
| - Use type hints where appropriate | |
| - Write docstrings for public functions | |
| - Keep functions focused and small | |
| - Add tests for new features | |
| ## Testing | |
| - Write unit tests for new features | |
| - Ensure all tests pass before submitting PR | |
| - Aim for >80% code coverage | |
| - Test both happy path and edge cases | |
| ## Commit Messages | |
| Follow conventional commits: | |
| - `feat:` New feature | |
| - `fix:` Bug fix | |
| - `docs:` Documentation changes | |
| - `test:` Adding tests | |
| - `refactor:` Code refactoring | |
| - `chore:` Maintenance tasks | |
| Example: `feat: add semantic caching with Qdrant` | |
| ## Pull Request Process | |
| 1. Update README.md with details of changes if needed | |
| 2. Update documentation | |
| 3. Add tests for new functionality | |
| 4. Ensure CI/CD pipeline passes | |
| 5. Request review from maintainers | |
| ## Questions? | |
| Feel free to open an issue for questions or discussions! | |