All contributions are welcome! If you find a bug or have a feature request, please open an issue or submit a pull request.
Please note that we have a Code of Conduct, please follow it in all your interactions with the project.
You can make a contribution by following these steps:
- Fork this repository, and develop your changes on that fork.
- Commit your changes
- Submit a pull request from your fork to this project.
Before you start, read through the requirements below.
Please make your commit messages meaningful. We recommend creating commit messages according to Conventional Commits.
Each commit's signature must be verified.
All contributions, including those made by project members, need to be reviewed. We use GitHub pull requests for this purpose. See GitHub Help for more information on how to use pull requests. See the requirements above for PR on this project.
If a major new feature is added, there should be new tests for it. If there are no tests, the PR will not be merged.
Versions follow Semantic Versioning terminology and are expressed as x.y.z:
- where
xis the major version yis the minor version- and
zis the patch version
Please install pre-commit to enforce some pre-commit checks. After cloning the repository, you will need to install the hook script manually:
pre-commit installWe use pyright to check Python types.
If you are using VSCode, you can install the Pyright extension and set it to strict mode for better type checking.
Use standard library tools whenever possible. Only use third-party tools when absolutely necessary. Your PR will be rejected if it introduces unnecessary dependencies.
Use pip to manage Python dependencies. We recommend using venv to create a virtual environment for development. You can create an editable install of the package with:
python -m pip install -e .We use black to format Python code. You can run it manually with:
black .We use flake8 to check Python code style. You can run it manually with:
flake8 .If you encounter any bugs or have feature requests, please open an issue on GitHub. When reporting a bug, please include as much detail as possible to help us understand and reproduce the issue. When submitting a feature request, please provide a clear description of the desired functionality and its potential benefits.