parquet-converter

Contributing to Parquet Converter

Thank you for considering a contribution to the Parquet Converter project! This document outlines the process for contributing to the project.

Code of Conduct

This project is part of Sami Adnan’s DPhil research at the Nuffield Department of Primary Care Health Sciences, University of Oxford. We expect all contributors to respect each other and create a welcoming environment.

How Can I Contribute?

Reporting Bugs

Bugs are tracked as GitHub issues. When you create an issue, please include:

Suggesting Enhancements

Enhancement suggestions are also tracked as GitHub issues. When suggesting an enhancement, please include:

Pull Requests

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Set up the development environment:
    pip install -e ".[dev]"
    pre-commit install
    
  4. Make your changes
  5. Run the tests and ensure they pass:
    pytest
    
  6. Run the pre-commit hooks to ensure code quality:
    pre-commit run --all-files
    
  7. Commit your changes with a meaningful commit message:
    git commit -m 'Add some amazing feature'
    
  8. Push to your branch:
    git push origin feature/amazing-feature
    
  9. Open a Pull Request against the main repository

Development Workflow

Setting Up a Development Environment

Please see README-setup.md for detailed instructions on setting up your development environment.

Running Tests

# Run all tests
pytest

# Run with coverage report
pytest --cov=parquet_converter

# Run a specific test file
pytest tests/test_specific_file.py

Code Style

This project follows PEP 8 and uses black, isort, and flake8 for code formatting and linting. These tools are configured in pyproject.toml and .pre-commit-config.yaml.

To ensure your code matches the project’s style:

# Format code
black .
isort .

# Check code quality
flake8
mypy parquet_converter

Documentation

Release Process

Release versions follow Semantic Versioning:

The project maintainer (Sami Adnan) is responsible for creating new releases.

Questions?

If you have any questions about contributing, please contact:

Sami Adnan sami.adnan@phc.ox.ac.uk Nuffield Department of Primary Care Health Sciences University of Oxford