RELEASE-Github.md
This document details the operation of the NLTK GitHub Actions release workflow, defined in .github/workflows/release.yml. This workflow automates the creation of GitHub releases and supports optional PyPI integration for official distribution.
The workflow is event-driven. It is automatically initiated upon pushing a git tag that follows the v prefix naming convention to the repository.
git push origin v3.10.x-rcorigin/develop to ensure the release is built from the authorized development head.Successful execution of this workflow requires specific repository configurations:
contents: write (via GITHUB_TOKEN) to create the draft GitHub release.GITHUB_TOKEN to query CI and create the draft release.The workflow maintains a clear separation between testing and production release artifacts:
| Stage | Platform | Purpose |
|---|---|---|
| Release Candidate | GitHub Releases | Early community feedback and environment validation. |
| Official Release | PyPI | Production distribution via pip and package repository indexing. |
Integration: While the workflow primarily stages artifacts on GitHub, it is capable of handling PyPI integration. If configured, the workflow will automatically publish the build artifacts to PyPI upon successful validation of the release tag.
Initiate Release: Trigger the workflow by pushing the appropriate tag to the remote:
git tag v3.10.0-rc1
git push origin v3.10.0-rc1
CI Validation: As implemented in #3506, the workflow performs an automated check to verify that Continuous Integration (CI) has successfully passed on the specific commit to which the release tag points.
Monitor Logs: Follow the execution progress in the repository’s Actions tab.
Audit: If the workflow fails to push to PyPI or draft a release, inspect the logs for:
origin/develop.PYPI_API_TOKEN is active and has the correct scope.GITHUB_TOKEN has been granted the necessary write access.