Contributing¶
We welcome contributions to autopxd2!
Development Setup¶
We recommend using uv for fast dependency management.
-
Clone the repository:
-
Create a virtual environment and install dependencies:
-
Install pre-commit hooks:
Running Tests¶
# Run all tests
pytest
# Run with verbose output
pytest -v
# Run specific test file
pytest test/test_ir.py
# Run tests with coverage
pytest --cov=autopxd
Code Style¶
We use ruff for linting and formatting:
# Check for issues
ruff check autopxd
# Auto-fix issues
ruff check --fix autopxd
# Format code
ruff format autopxd
Pre-commit hooks run automatically on commit to ensure consistent style.
Type Checking¶
We use mypy with strict mode:
Building Documentation¶
# Serve docs locally with live reload
uv run mkdocs serve
# Or without uv
mkdocs serve
# Build static site
mkdocs build
The docs will be available at http://127.0.0.1:8000/.
Pull Request Process¶
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes
- Run tests:
pytest - Run linters:
ruff check autopxd - Run type check:
mypy autopxd/ --strict - Commit with a clear message
- Push and create a pull request
Reporting Issues¶
Please report issues on GitHub Issues.
Include:
- Python version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
- Relevant error messages or output