Skip to content

Contributing

Development setup

This project uses Poetry for dependency management and packaging.

Create a virtual environment, install Poetry into it, then install the project dependencies:

git clone https://gitlab.com/velocipy/velocipy.git
cd velocipy
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install poetry
poetry install --extras all

After poetry install, all CLI tools are available directly in the active virtual environment. Run them natively — no poetry run prefix needed.

poetry install installs the dev dependency group, which includes the test, lint, and docs groups. The --extras all flag also installs every runtime feature extra so the full test suite and type checks can run.

To install only what is needed to run tests (without lint/docs tools):

poetry install --with test --extras all

Git hooks

This project uses prek to run git hooks. After installing the dev dependencies, install the hooks once:

prek install

The hooks run ruff (lint + format), mypy, and pre-commit-update automatically on commits. To run them manually against all files:

prek run --all-files

Running tests

pytest -q

Linting and type checking

ruff check velocipy tests examples
ruff format --check velocipy tests examples
mypy velocipy tests examples

Building docs

zensical build --strict
zensical serve