Contributing

Thank you for your interest in contributing to SerializableExcel! This document provides guidelines and instructions for contributing.

Getting Started

  1. Fork the repository on GitHub

  2. Clone your fork locally:

    git clone https://github.com/yourusername/serializable-excel.git
    cd serializable-excel
    
  3. Create a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  4. Install development dependencies:

    pip install -r requirements.txt
    pip install -r requirements-docs.txt
    

Development Workflow

  1. Create a feature branch:

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

  3. Write or update tests

  4. Ensure all tests pass:

    pytest
    
  5. Update documentation if needed

  6. Commit your changes:

    git commit -m "Add feature: description of your feature"
    
  7. Push to your fork:

    git push origin feature/your-feature-name
    
  8. Open a Pull Request on GitHub

Code Style

  • Follow PEP 8 style guide

  • Use type hints where appropriate

  • Write docstrings for all public functions and classes

  • Keep functions focused and small

Testing

  • Write tests for new features

  • Ensure all existing tests pass

  • Aim for good test coverage

Documentation

  • Update relevant documentation when adding features

  • Use reStructuredText for Sphinx documentation

  • Include code examples in documentation

  • Keep examples up-to-date with the code

Pull Request Guidelines

  • Provide a clear description of changes

  • Reference any related issues

  • Ensure all tests pass

  • Update documentation as needed

  • Keep PRs focused on a single feature or fix

Questions?

If you have questions, please open an issue on GitHub or contact the maintainers.

Thank you for contributing!