Skip to content

How to do a release

Dave Fisher edited this page Feb 4, 2025 · 1 revision
  • 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 into upstream/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.
  • Build a wheel and source distribution. It's okay to do this locally instead of on GHA because GeoMetaMaker is a pure Python package.
    python -m build
    
  • 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>
      
  • Announce the release as appropriate. For a bugfix release, an announcement in the #softwareteam channel should be enough.
Clone this wiki locally