Contributing#

Set up#

uv sync --all-extras --group docs
uv run pre-commit install

Test#

Tests that need a solver are marked, so the rest run without one.

uv run pytest -m "not opendss and not pandapower"   # no solver needed
uv run pytest                                        # everything
uvx ty check popo/                                   # types

Documentation#

These pages live in docs/ and are built with Sphinx. The tutorials are executed on every build.

make docs          # build once, warnings as errors
make docs-serve    # rebuild on change, at http://localhost:8002

The logo and the overview figure are generated, not drawn by hand:

uv run python scripts/generate_logo.py
uv run python scripts/generate_readme_figure.py

Commits#

Commit messages follow Conventional Commits, checked by a pre-commit hook: feat:, fix:, docs:, ci: and so on.