Publishing

Package Release

Build and validate distributions locally:

.venv/bin/python -m pytest
.venv/bin/python -m build
.venv/bin/twine check dist/*

The Release workflow publishes the ghostlab package to PyPI when a v*.*.* tag is pushed or the workflow is run manually.

PyPI publishing uses Trusted Publishing. Create or claim the ghostlab project on PyPI and add a trusted publisher for:

  • Repository: sajjadGG/Rehearsal
  • Workflow: .github/workflows/release.yml
  • Environment: pypi

No PyPI username or token needs to be committed.

Wiki Release

The Pages workflow builds this wiki with MkDocs and deploys it to GitHub Pages.

It runs on:

  • Pushes to main.
  • Version tags matching v*.*.*.
  • Manual workflow dispatch.

The workflow uses GitHub's Pages artifact flow, so set the repository Pages source to GitHub Actions.

Local Wiki Preview

.venv/bin/mkdocs serve

Build strictly before pushing:

.venv/bin/mkdocs build --strict