Contributing

We welcome contributions to HybridInference!

Development Setup

  1. Fork the repository

  2. Clone your fork:

    git clone https://github.com/your-username/hybridInference.git
    cd hybridInference
    
  3. Set up development environment:

    make setup-dev
    

Code Quality Standards

This project follows industry best practices:

  • Code Style: Google Python Style Guide (formatted with ruff)

  • Linting: ruff with extensive rule sets

  • Type Checking: mypy with strict mode

  • Documentation: Google-style docstrings (pydocstyle)

Pre-commit Hooks

Pre-commit hooks run automatically on git commit:

# Install pre-commit hooks (done by make setup-dev)
pre-commit install

# Run manually on all files
pre-commit run --all-files

Development Workflow

  1. Create a feature branch:

    git checkout -b feature/your-feature-name
    
  2. Make your changes

  3. Run quality checks:

    make all  # Format, lint, typecheck, and test
    
  4. Commit your changes:

    git add .
    git commit -m "feat: add your feature description"
    
  5. Push to your fork and submit a pull request

Testing

# Run all tests
make test

# Run with coverage
make test-cov

# Run specific test file
uv run pytest test/test_routing.py

Documentation

Update documentation when adding new features:

# Build documentation locally
cd docs
make html

# View in browser
open build/html/index.html

Pull Request Guidelines

  • Write clear, descriptive commit messages

  • Update documentation for new features

  • Add tests for new functionality

  • Ensure all CI checks pass

  • Keep PRs focused on a single feature or fix