Release tags are created manually by authorized maintainers. Merging a release pull request does not create a tag.
-
Merge the reviewed release pull request and record its actual merged commit SHA.
-
As an authorized maintainer, check that commit and its version before creating the tag. Replace the placeholders below:
RELEASE_VERSION="<version>" RELEASE_COMMIT="<full-merged-commit-sha>" git fetch origin main --tags git merge-base --is-ancestor "$RELEASE_COMMIT" origin/main git show "${RELEASE_COMMIT}:pyproject.toml"
Stop if any command fails or
project.versiondiffers fromRELEASE_VERSION. Otherwise, create and push an annotated tag at that commit:git tag -a "v${RELEASE_VERSION}" "$RELEASE_COMMIT" -m "Release v${RELEASE_VERSION}" git push origin "refs/tags/v${RELEASE_VERSION}"
If the tag already exists, stop and investigate. Do not overwrite, delete, or move an existing release tag.
-
Publish a GitHub Release using that existing tag and the reviewed release notes. This starts
.github/workflows/publish.yml. -
After the build succeeds, a designated reviewer confirms the release tag and commit and approves the
pypideployment. When Prevent self-review is enabled, another designated reviewer must approve.