Thank you for your interest in contributing! Please follow these guidelines to help maintain code quality and project consistency.
- Use black for code formatting and flake8 for linting.
- All code must pass pre-commit checks before submitting a pull request.
- Follow PEP8 and project-specific conventions (see .flake8 and ARCHITECTURE.md).
- All new code must include unit tests (and integration tests if relevant) using pytest.
- Use descriptive test names and function docstrings.
- Mark tests with
@pytest.mark.unitor@pytest.mark.integrationas appropriate. - Ensure all tests pass locally and in CI before submitting a PR.
- Update
docs/usage.mdandreference/data-model.mdfor new features, endpoints, or changes. - Add docstrings to all public functions and classes.
- Document any new or changed API contracts.
- PRs should be focused and atomic (one feature or fix per PR).
- Reference related issues in the PR description.
- Ensure all CI checks pass before requesting review.
- Add clear descriptions and testing instructions.
- Provide clear reproduction steps, expected/actual behavior, and environment details.
- Use labels to categorize issues (bug, enhancement, question, etc.).
- If reporting a bug, include relevant logs, error messages, and test cases.
- See
README.mdandARCHITECTURE.mdfor endpoints that are not yet implemented. - If you are working on a pending endpoint, mention it in your PR or issue.
- Clone the repository and create a Python virtual environment:
python -m venv .venv && source .venv/bin/activate pip install -e .
- Run pre-commit checks:
bash .pre-commit.sh
- Run tests:
PYTHONPATH=./src pytest
For more details, see ARCHITECTURE.md and README.md.