Skip to content

Contributing

Contributions are welcome! Whether it's reporting a bug, improving documentation, or adding new features, your help is appreciated.

Getting Started

  1. Fork the Repository: Create a fork of memiiso/pydbzengine on GitHub.
  2. Clone Locally:
    git clone https://github.com/your-username/pydbzengine.git
    cd pydbzengine
    
  3. Install Development Dependencies:
    pip install -e ".[dev]"
    

Development Workflow

  1. Create a Branch: Use a descriptive name for your feature or bug fix.
  2. Make Changes: Write your code and tests.
  3. Run Tests:

    To run fast unit tests (no Docker required, ~5 seconds):

    python -m unittest discover -s tests/unit
    

    [!IMPORTANT] Docker Prerequisite for Integration Tests: The integration test suite (tests/integration/) uses testcontainers to spin up real PostgreSQL database, Apache Iceberg REST catalog, and MinIO storage instances. Docker must be running on your machine to execute them.

    To run integration tests:

    python -m unittest discover -s tests/integration
    

    To run the entire test suite:

    python -m unittest discover -s tests
    
    4. Update Documentation: If you're adding a new feature or changing behavior, update the relevant docs/ files. 5. Submit a Pull Request: Push your branch to your fork and create a PR against the main branch.

Documentation Development

To preview the documentation locally:

  1. Install documentation dependencies:
    pip install -e ".[docs]"
    
  2. Serve the documentation:
    mkdocs serve
    
  3. Open http://127.0.0.1:8000 in your browser.