We appreciate your interest in contributing to PyreWire! This guide explains how to get involved. For a project overview, see README.md.
Please read and follow our Code of Conduct. We expect all contributors to uphold it in every interaction. For questions or to report violations, contact us at community@cleverplant.com.
Use the Bug Report issue template when filing a bug:
- Open an issue using the Bug Report template
- Include steps to reproduce, expected behavior, and actual behavior
- Attach relevant logs or tracebacks when possible
Security vulnerabilities: Do not open a public issue. Instead, follow our Security Policy for responsible disclosure.
Use the Feature Request issue template to propose new functionality:
- Open an issue using the Feature Request template
- Explain your use case clearly — what problem does this solve?
- Consider alternatives you've already evaluated
git clone https://github.com/semantic-reasoning/PyreWire.git
cd PyreWire
pip install -e ".[dev]"Requirements: Python 3.10+. See pyproject.toml for the full list of dev dependencies.
All code must pass the following tools before submission:
| Tool | Config |
|---|---|
| black | line length 100 (see pyproject.toml) |
| isort | black profile (see pyproject.toml) |
| flake8 | standard rules |
| mypy | type hints required for all public APIs (Python 3.10+ syntax) |
Run them all at once:
black . && isort . && flake8 . && mypy .pytest --cov=pyrewire- Aim for 80%+ coverage
- Include both unit and integration tests
- See pyproject.toml for test configuration
- Fork the repository and create a feature branch from
main - Make your changes, keeping commits focused (see below)
- Ensure all tests pass and linting is clean
- Fill out the pull request template
- At least one approval is required before merge
- Use imperative mood: "Add feature" not "Added feature"
- Start with a concise summary line
- Keep commits atomic — one logical change per commit
Example:
Add security policy for vulnerability reporting
PyreWire is dual-licensed under Apache-2.0 OR GPL-3.0-or-later. By submitting a pull request, you agree to license your contribution under the same dual-license terms.