Contributing ============ Thanks for your interest in contributing! The following guidelines will help your contribution be reviewed and merged more quickly. Guidelines ---------- 1. Report an issue first - If possible, open an issue describing the bug or feature and include steps to reproduce or a clear design proposal. 2. Branching and commits - We follow the Gitflow branching model: use ``develop`` as the main integration branch and keep ``master`` reserved for tagged releases. Create topic branches from ``develop`` named ``feature/...``, ``fix/...`` or ``hotfix/...`` as appropriate. - Keep commits small and focused. Use clear, imperative commit messages and squash or rebase locally to keep topic branches tidy before PRs. 3. Tests - Add unit tests for bug fixes and new features. Run the test suite locally with ``python -m pytest -q``. 4. Style and linting - The project uses ``ruff``. Run ``ruff check src tests`` before submitting. - Formatting can be applied with ``ruff format src tests``. 5. Documentation - Update the ``docs/`` tree for user-facing changes and add developer notes in ``docs/content/`` for deeper explanations. 6. Pull requests - Open a PR against ``develop`` with a clear description and link to any related issues. Include test and docs updates where appropriate. - Exceptions: for urgent fixes that must go directly into a released version, open a PR against ``master`` as a ``hotfix`` and follow the project's release process. 7. CI and checks - Ensure all CI checks (tests, linters) pass before requesting review. License ------- By contributing you agree that your contributions will be licensed under the project's existing license (see ``LICENSE.md``).