Skip to content

Core: Release Checklist

Nabil Freij edited this page Feb 22, 2024 · 22 revisions

Release Checklist

Before major releases

  • Ensure What's New have been finalised at feature freeze time.
  • Do a conda-forge build for at least one of the release candidates.
  • Check license end year and update if needed.

Before release candidates

All of the following assumes that you are on the release branch and not main (X.Y e.g 1.0)

For all normal releases

Set the release version environment variable:

export SUNPY_VERSION="X.Y.Z"
  • Update the changelog using towncrier (not for rc releases):
towncrier build --version $SUNPY_VERSION

if it's a rc release do not do this, the changelog is only rendered automatically in the documentation for pre-releases.

  • Commit the changes
git add .
git commit -m "Release v$SUNPY_VERSION"
  • Push directly to the release branch on SunPy
git push upstream X.Y
  • Check that the GitHub actions build passes on last commit on the branch (including the wheel builds).
  • Test that readthedocs build is building the documentation correctly on the branch.

If you need to fix anything do so on the branch and forward port to main as need be (to reduce the CI builds).

  • Tag on and push (the tag is the full version number preceded by a v)
git checkout X.Y
git tag -a v$SUNPY_VERSION -m "Releasing version v$SUNPY_VERSION"
git push --follow-tags upstream v$SUNPY_VERSION

This triggers the GitHub Actions release pipeline which will build and test the wheels and dist then upload them to PyPi for you.

If there is an issue at this step, either fix in the main sunpy repo, or a fix to the github actions workflows repo may be needed. Since we use tags you will need to update the tag and force push it. This will (re)start the tag job on GitHub Actions

After Release

  • Make sure all builds of sunpy are complete and uploaded (conda-forge and wheels)
  • Create the release on GitHub releases, copy the changelog into the description. The following pandoc command will convert it to markdown: pandoc --wrap=none -t markdown_strict CHANGELOG.rst > changelog.md, which can then be copy-pasted from.
  • Ensure the tag has built on read the docs and the "stable" marker has been updated. Ensure that all the gallery examples have built correctly, restart the build if not.
  • Close milestone associated with the release on the milestones page
  • Open an extra milestone for the version after, we want to keep two future versions milestone active.

For a major release:

Announcements

Social media

Post to:

  • Twitter

Email

Email Template
-----

Dear all,

The SunPy developers present to you the latest release of SunPy <version>.
In this update the headline fixes are <fill in>

The full changelog is:

<fill in>

To update you can run these following commands:

pip users:

pip install --upgrade sunpy

Conda Users:

conda update sunpy

Please enjoy,
The SunPy Developers
Clone this wiki locally