Skip to content

Releasing WeaveRx

Semantic version tags trigger the release workflow, which:

  1. Runs ruff, mypy, and pytest with coverage
  2. Builds sdist + wheel
  3. Publishes to PyPI (trusted publishing)
  4. Creates a GitHub Release with artifacts attached

Live docs deploy automatically on push to master via the docs workflow to fratresmedai.github.io/WeaveRx.

One-time PyPI trusted publishing setup

Before the first v* tag publish succeeds on PyPI:

  1. Create the weaverx project on pypi.org (or claim the name if reserved).
  2. Add a trusted publisher:
  3. PyPI publisher name: pypi
  4. Repository: FratresMedAI/WeaveRx
  5. Workflow: release.yml
  6. Environment name: (leave blank)
  7. Push a tag — no PYPI_API_TOKEN secret required.

Cut a release

  1. Update CHANGELOG.md.
  2. Bump version in pyproject.toml and src/weaverx/__init__.py.
  3. Commit and push to master.
  4. Tag and push:
git tag -a v0.1.2 -m "v0.1.2"
git push origin v0.1.2

Verify locally before tagging

pip install -e ".[dev]"
ruff check .
mypy src/weaverx
pytest --cov=weaverx --cov-fail-under=75
python -m build
mkdocs build --strict

Install after release

pip install weaverx

Fallback:

pip install git+https://github.com/FratresMedAI/WeaveRx.git@v0.1.2