# How to contribute to `luma`

## Setting up the development environment

### Prerequisites

#### uv

```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

### Installing dependencies

```bash
uv sync
```

To execute PostgreSQL tests:

```bash
sudo apt install libpq-dev
```

### Running the docs locally

```bash
uv run mkdocs serve
```

## Generating API reference docs

```console
cd src/luma
typer luma.py utils docs --output ../../docs/api_reference.md
```

## Releasing a new version

Releases are made from the `main` branch. To release a version, publish a version tag:

```bash
luma_cli_version=v0.2.14
git checkout main && \
  git pull && \
  git tag -a $luma_cli_version -m "Release $luma_cli_version" && \
  git push origin $luma_cli_version
```

The push of the tag will trigger a CD action that creates a new release and publishes the new package version to PyPI.
