Contributing

We welcome contributions to PhenoQC! This document provides guidelines for contributing to the project.

Setting Up Development Environment

  1. Fork the repository on GitHub

  2. Clone your fork locally:

    git clone https://github.com/YOUR_USERNAME/PhenoQC.git
    cd PhenoQC
    
  3. Create a virtual environment and install dependencies:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    pip install -e ".[dev]"
    
  4. Install pre-commit hooks:

    pre-commit install
    

Making Changes

  1. Create a new branch for your changes:

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

  3. Add tests for any new functionality

  4. Run the test suite:

    pytest
    
  5. Format your code:

    black .
    
  6. Commit your changes:

    git add .
    git commit -m "Description of changes"
    
  7. Push to your fork:

    git push origin feature-name
    
  8. Submit a Pull Request

Pull Request Guidelines

  1. Include tests for any new functionality

  2. Update documentation as needed

  3. Follow the existing code style

  4. Include a clear description of the changes

  5. Link any related issues

Code Style

We use Black for code formatting and follow PEP 8 guidelines.

Running Tests

Run the full test suite:

pytest

Run with coverage:

pytest --cov=src tests/

Building Documentation

Build the documentation locally:

cd docs
make html

The built documentation will be in docs/build/html.