Thank you for your interest in contributing to dppvalidator! This document provides guidelines for contributing to the project.
- Python 3.10+
- uv for package management
# Clone the repository
git clone https://github.com/artiso-ai/dppvalidator.git
cd dppvalidator
# Install dependencies
uv sync
# Run tests
uv run pytest
# Run linting
uv run ruff check src tests
uv run ruff format --check src testsWe follow gitflow for branching:
-
Create a feature branch from
develop:git checkout develop git pull origin develop git checkout -b feature/your-feature-name
-
Make your changes, following the code style guidelines below.
-
Run tests and linting:
uv run pytest uv run ruff check src tests --fix uv run ruff format src tests
-
Commit with conventional commit messages:
git commit -m "feat: add new validation rule for X" -
Push and create a Pull Request to
develop.
- Type hints: All public APIs must have type hints
- Docstrings: Use Google-style docstrings for public functions
- Line length: 100 characters max
- Formatting: Use
ruff format - Linting: Use
ruff check
We use Conventional Commits:
feat:New featuresfix:Bug fixesdocs:Documentation changestest:Test additions/changesrefactor:Code refactoringchore:Maintenance tasks
Examples:
feat: add credentialStatus field to passport model
fix: handle network errors in schema loader
docs: update API reference for ValidationEngine
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=src/dppvalidator --cov-report=term-missing
# Run specific test file
uv run pytest tests/unit/test_validators.py
# Run tests matching pattern
uv run pytest -k "async"- Maintain 90%+ code coverage
- Add tests for all new features
- Include unit tests in
tests/unit/ - Include integration tests in
tests/integration/for end-to-end flows
- Ensure all tests pass and coverage is maintained
- Update documentation if needed
- Add entry to
CHANGELOG.mdunder "Unreleased" - Request review from maintainers
- Address review feedback
- Squash and merge once approved
Please include:
- Python version
- dppvalidator version
- Minimal reproducible example
- Expected vs actual behavior
- Full error traceback
Please describe:
- Use case and motivation
- Proposed API or behavior
- Any relevant UNTP/ESPR specifications
Be respectful and constructive. We're building tools to support sustainable product transparency - let's work together positively.
- Open a GitHub Discussion
- Check existing Issues
Thank you for contributing! 🌱