Skip to content

Release Process

One-time setup

Configure PyPI Trusted Publishing for this repository/workflow.

The release workflow uses GitHub OIDC (id-token) and does not require storing a long-lived PyPI token.

Cut a release

  1. Bump version in pyproject.toml:
uv version 0.1.1
  1. Commit and merge to main.
  2. Create and push a version tag:
git tag v0.1.1
git push origin v0.1.1
  1. Release workflow runs:
  2. lint/style/type checks
  3. unit + integration checks
  4. uv build
  5. uv publish --trusted-publishing always

Verify

uv pip install shardyfusion==0.1.1
uv run python -c "import shardyfusion; print('ok')"

If release fails

  • fix the issue and push a new tag version (recommended)
  • avoid reusing the same version number after partial publish