This is the standard publish workflow for Pallets projects. It is triggered on any tag, and uses a GitHub deploy environment called publish to wait for maintainer approval before uploading to PyPI. The environment is only valid on PR branches with the name release-a.b.c, which ensures the tests run against the tagged commit. It builds sdist and wheel files, generates SLSA provenance, creates a draft GitHub release page, then uploads to PyPI after approval.
In the future, anyone can request a release by creating a release-a.b.c branch. A maintainer will observe the tests passing, check that the version, changelog, and release date are correct. Then they create a tag git tag -am 'release version a.b.c' a.b.c and push it. The publish workflow will show up alongside other workflows in the PR. Once it passes, the PR can be merged, and the release page published from draft to notify watchers.
This is the standard publish workflow for Pallets projects. It is triggered on any tag, and uses a GitHub deploy environment called
publish
to wait for maintainer approval before uploading to PyPI. The environment is only valid on PR branches with the namerelease-a.b.c
, which ensures the tests run against the tagged commit. It builds sdist and wheel files, generates SLSA provenance, creates a draft GitHub release page, then uploads to PyPI after approval.In the future, anyone can request a release by creating a
release-a.b.c
branch. A maintainer will observe the tests passing, check that the version, changelog, and release date are correct. Then they create a taggit tag -am 'release version a.b.c' a.b.c
and push it. The publish workflow will show up alongside other workflows in the PR. Once it passes, the PR can be merged, and the release page published from draft to notify watchers.