Skip to content

Welcome to the normi Contributing Guide

This guide will give you an overview of the contribution workflow from opening an issue and creating a PR. To get an overview of the project, read the module overview.

Issues

Create a new issue

If you spot a bug, want to request a new functionality, or have a question on how to use the module, please search if an issue already exists. If a related issue does not exist, feel free to open a new issue.

Solve an issue

If you want to contribute and do not how, feel free to scan through the existing issues.

Create a new pull request

Create a fork

If you want to request a change, you first have to fork the repository.

Setup a development environment

First you need to install uv. Please follow the installation instruction provided on their page docs.astral.sh/uv.

# create the virtual environment and install all dependency groups
uv sync --all-groups

# install the pre-commit hooks (runs ruff on every commit)
uv run pre-commit install

With the hooks installed, ruff lints and formats your staged files automatically on each git commit. To run them manually on the whole project at any time:

uv run pre-commit run --all-files

Make changes and run tests

Apply your changes and check if you followed the coding style by running

uv run ruff check
uv run ruff format --check

Most issues can be fixed automatically with uv run ruff check --fix and uv run ruff format.

If you add a new function/method/class please ensure that you add a test function, as well. Running the test simply by

uv run pytest

Ensure that the coverage does not decrease.

Open a pull request

Now you are ready to open a pull request and please do not forget to add a description.