Contributing

Development setup

Install the project in editable mode:

python -m pip install -e .

Install Node dependencies only when working on the browser-facing tests:

npm install --prefix node

Running tests

Run the Python regression tests:

python -m unittest discover tests

Run the browser UI tests when Node dependencies are available:

npm test --prefix node

Changelog workflow

Add unreleased changes to the Active section of CHANGELOG.rst. Before creating a release tag, move the relevant entries into the appropriate published version section.

Implementation notes

  • Keep build behavior deterministic. Output should not depend on filesystem ordering, timestamps, or stale files from previous builds.

  • Preserve idempotency in HTML post-processing. Running an injection step twice should not duplicate shared assets or runtime scripts.

  • Add focused regression tests for repository discovery, generated output shape, version handling, and HTML injection behavior.