Contributing¶
Thank you for your interest in contributing to sigstore-a2a!
Development Setup¶
Prerequisites¶
- Python 3.11+
- uv package manager
Clone and Install¶
Running Tests¶
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=sigstore_a2a
# Run specific test file
uv run pytest tests/test_models.py
Linting and Formatting¶
# Run linter
uv run ruff check sigstore_a2a/ tests/
# Auto-fix issues
uv run ruff check --fix sigstore_a2a/ tests/
# Format code
uv run ruff format sigstore_a2a/ tests/
# Type checking
uv run mypy sigstore_a2a/
Or use the Makefile:
Building Documentation¶
# Install docs dependencies
uv sync --group docs
# Serve docs locally
uv run mkdocs serve
# Build docs
uv run mkdocs build
Pull Request Process¶
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Make your changes
- Run tests and linting
- Commit with a descriptive message
- Push to your fork
- Open a Pull Request
Commit Messages¶
Use conventional commit format:
Types: feat, fix, docs, style, refactor, test, chore
Examples:
feat(signer): add support for custom OIDC client
fix(verifier): handle missing certificate extensions
docs: update API reference
Code Style¶
- Follow PEP 8
- Use type hints
- Write docstrings (Google style)
- Keep functions focused and small
License¶
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.