# Releasing

.github/workflows/build.yml builds and tests on pushes to main (excluding documentation-only changes), on published GitHub releases, and on manual runs. Wheels are built and tested with cibuildwheel for Linux x86_64 and Windows x86-64. Publishing a GitHub release automatically publishes its distributions to PyPI after all required jobs succeed. Pushes and manual runs only create CI artifacts.

Before creating a release, update __version__ in src/pygrbl_build/__init__.py and CHANGELOG.md, and use the matching version for the release tag (vX.Y.Z). The workflow checks this match; it does not increment versions or skip existing PyPI files.

One-time setup: create the pypi-release GitHub environment and add a GitHub Trusted Publisher in the PyPI project's Publishing settings with:

  • Owner: offerrall
  • Repository: pygrbl_build
  • Workflow filename: build.yml
  • Environment: pypi-release

Authentication uses OIDC (id-token: write); no PyPI API token secret is needed. See PyPI's Trusted Publisher setup.