Contribution ============ We welcome contributions from the community. Bug fixes and improvements to the core library should target the ``main`` branch. For new features, we recommend first opening an issue to discuss the proposed contribution before opening a pull request to the ``extras`` branch. Code Style ---------- - Follow the `PEP 8 `_ style guide for code. - Follow the `Google Style Guide `_ for docstrings. - Use the `ruff `_ linter and formatter to maintain code quality. Workflow -------- 1. For new features, open an issue to discuss the proposed contribution. 2. Fork the repository and create a branch from ``main`` for bug fixes, or from ``extras`` for new features. 3. Implement the contribution. New features should extend the core library rather than modify it. Document the new feature in the matching category of the library features in the overview guide (e.g. algorithms or models) and add it to the list of features on the main page of the documentation. 4. Add yourself to the `CONTRIBUTORS.md `_ file. 5. Run `pre-commit `_ to format and lint code with: .. code-block:: bash pre-commit run --all-files 6. Open a pull request to the ``main`` branch for bug fixes, or to the ``extras`` branch for new features.