Contributing #

First of all, thank you for using and contributing to id-translation! Any and all contributions are welcome.

Creating issues#

Issues are tracked on GitHub. Issue reports are appreciated, but please use a succinct title and add relevant tags. Please include a Minimal reproducible example if reporting an issue, or sample snippet if requesting a new feature or change which demonstrates the (desired) usage.

Getting started#

Follow these steps to begin local development.

  1. Installing uv

    See uv.lock for the version used.

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. Installing the project

    Clone and install the virtual environment used for development. Some material is placed in submodules, so we need to clone recursively.

    git clone git@github.com:rsundqvist/id-translation.git
    cd id-translation
    uv sync
    

    Generating documentation has a few dependencies which may need to be installed manually.

    sudo apt-get update
    sudo apt-get install pandoc tree
    
  3. Verify installation (optional)

    Run all invocations.

    ./run-invocations.sh
    

    This is similar to what the CI/CD pipeline does for a single OS and major Python version.

Running GitHub Actions locally#

Relying on GitHub actions for new CI/CD features is quite slow. An alternative is to use act instead, which allows running pipelines locally (with some limitations, see act docs). For example, running

act -j tests

will execute the tests workflow.

Test databases#

Connection strings uses in tests.

mysql+pymysql://root:Sofia123!@localhost:5001/sakila
postgresql+pg8000://postgres:Sofia123!@localhost:5002/sakila
mssql+pymssql://sa:Sofia123!@localhost:5003/sakila

Run run-docker-dvdrental.sh to launch local test databases.