We welcome contributions to this project! Please take a moment to review these guidelines before getting started.
- If you find a bug, please open an issue on GitHub.
- Provide a clear and concise description of the bug.
- Include steps to reproduce the bug, if possible.
- Specify your environment (e.g., operating system, Python version).
- If you have an idea for an enhancement, please open an issue on GitHub.
- Provide a clear and concise description of the enhancement.
- Explain why this enhancement would be useful.
- Python code: Formatting and linting is enforced with Ruff. Follow PEP 8 conventions where applicable.
- Line length: Keep lines under 88 characters to match the Ruff and Black configuration.
- Comments: Write clear and concise comments to explain complex code sections.
- Commit messages: Write clear and descriptive commit messages. Start with a capitalized imperative verb (e.g., "Fix: ...", "Feat: ...", "Docs: ...").
We rely on pre-commit to run Ruff automatically and keep the codebase consistent.
-
Ensure dependencies are installed (e.g.,
uv syncorpip install -e .in your virtual environment). -
Install the hooks once per clone:
pre-commit install
-
Run the hooks across the full codebase before submitting a pull request:
pre-commit run --all-files
The hooks will format code and report lint failures. Please fix any issues they flag before opening a PR.
- Include tests for any new features or bug fixes.
- Ensure all existing tests pass before submitting your changes.
- Describe how to run the tests in your pull request.
- Fork the repository.
- Create a new branch for your changes (e.g.,
git checkout -b feature/your-feature-nameorgit checkout -b fix/your-bug-fix). - Make your changes.
- Test your changes thoroughly.
- Commit your changes with a clear and descriptive commit message.
- Push your changes to your forked repository.
- Open a pull request to the main repository.
- Provide a clear title and description for your pull request.
- Explain the changes you've made and why.
- Link to any relevant issues.
Thank you for contributing!