Contributing

Thank you for your interest in contributing to CDMConnector. This page covers how to get the development environment set up and run tests.

Installation

Environment setup

  1. Create a virtual environment (recommended):

    python -m venv .venv
    source .venv/bin/activate   # Windows: .venv\Scripts\activate

    Or use pyenv to manage Python versions, then create a venv with your chosen version.

  2. Editable install (from the repository root):

    pip install -e ".[dev,docs]"

    This installs the package in editable mode so code changes take effect without reinstalling. The dev extra adds pytest, ruff, mypy; docs adds quartodoc and any other doc-build dependencies.

  3. Optional backends (e.g. DuckDB for Eunomia and tutorials):

    pip install -e ".[dev,docs,duckdb]"

Running tests

From the repository root:

pytest tests -v --tb=short

Run with coverage:

pytest tests -v --cov=src/cdmconnector --cov-report=term-missing

To skip integration tests (if marked):

pytest tests -v -m "not integration"

Linting

ruff check src tests

Type checking

mypy src/cdmconnector

Documentation

See Development for how to rebuild the docs (quartodoc + Quarto) and update notebooks.

Getting help

  • Open an issue for bugs or feature requests.
  • Check existing issues and discussions before opening a new one.