We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
You can use Discord to communicate with us. Join our discord server here
We use github to host code, to track issues and feature requests, as well as accept pull requests. Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests:
- Fork the repo and create your branch from
main. - If you've changed APIs, update the documentation.
- Issue that pull request!
Report bugs using Github's issues
We use GitHub issues to track public bugs. Report a bug by opening a new issue; it's that easy!
Great Bug Reports tend to have:
- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can.
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
This project uses pre-commit hooks to ensure style consistency and prevent common mistakes. Enable it by:
pre-commit installAfter this pre-commit hooks will be run before every commit.
You can also run this manually on every file using:
pre-commit run --all-filesPlease follow conventional commits specification for descriptions/messages.
- Fork the repository and clone your fork
- Install development dependencies:
pip install -e ".[test,dev]" - Install pre-commit hooks:
pre-commit install
Before submitting a pull request, ensure all tests pass:
# Run all tests
make test
# Run with coverage
make test-coverageRun linting and formatting checks:
# Run all pre-commit checks
make lint
# Or manually
pre-commit run --all-filesIf you are a maintainer with publishing permissions, see RELEASING.md for detailed instructions on creating releases and publishing to PyPI.
Regular contributors do not need to worry about releases - maintainers will handle versioning and publishing.