-
Notifications
You must be signed in to change notification settings - Fork 8
Bugfix release checklist
James Douglass edited this page Mar 6, 2024
·
3 revisions
- Create a branch for the release changes:
git checkout main git pull upstream main git checkout -b release/X.X.X
- Edit
HISTORY.rst
for the new release. Replace the "Unreleased Changes" header with the version and release date. - Push the changes:
git commit -m "update HISTORY.rst for X.X.X release" git push --set-upstream origin release/X.X.X
- PR
origin/release/X.X.X
intoupstream/main
. Wait for checks to pass and PR to be approved and merged. - Create a tag for the release and push it to
upstream/main
:git checkout main git pull upstream main git tag X.X.X git push upstream X.X.X
- Wait for the newly triggered Github Actions workflows to complete on
main
. - Download the zipped artifacts from the completed workflow. There should be a wheel for each supported OS/python version combination, named like
Wheel for <OS> <python version>.zip
, and a singleSource distribution.zip
. - Unzip the downloaded wheel and sdist artifacts. NOTE: Clicking the zipped sdist in Finder will uncompress both the top-level zip and the nested tar.gz. Use
unzip
instead to preserve the tar.gz.- If you have all of the actions-generated artifacts all in a single directory you can unzip them all at once with the following in a bash shell:
find . -name "*.zip" -exec unzip '{}' \;
- If you have all of the actions-generated artifacts all in a single directory you can unzip them all at once with the following in a bash shell:
- Create a release on Github:
- On the releases page, click "Draft a new release".
- Select the new tag in the "Choose a tag" dropdown.
- Enter the version number as the release title.
- Copy the version's section from
HISTORY.rst
into the release description. - Attach all the
.whl
files and the source distribution.tar.gz
to the release. NOTE: the release assets "Source code (zip)" and "Source code (tar.gz)" will be automatically added by Github when you publish the release. - Publish the release.
- Create a release on PyPI:
- Install
twine
, if not already installed - Use
twine
to upload all the.whl
files and the source distribution.tar.gz
to PyPI:twine upload --username=__token__ --password="$PYPI_API_TOKEN" <files>
- Install
- Announce the release as appropriate. For a bugfix release, an announcement in the
#softwareteam
channel should be enough.