-
-
Notifications
You must be signed in to change notification settings - Fork 577
Core: Release Checklist
- 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.
All of the following assumes that you are on the release branch and not main (X.Y
e.g 1.0
)
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
- Update the conda forge sunpy-feedstock repo, the bot will do it (normally) but can be slow. For release candidates follow the instructions for doing a pre-release on conda-forge.
- 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:
- cherry-pick the commit where the changelog was rendered to the main branch.
- Add the new release to the CRON CI at https://github.com/sunpy/sunpy/blob/main/.github/workflows/scheduled_builds.yml
- Update the major version shown on https://sunpy.org/ in the sunpy.org repo.
- Add a new label called "backport x.y", and if releasing a x.0 version remove old backport labels.
- Update the dates in the release calendar with the actual release date
Post to:
-
Post release announcement to OpenAstronomy discourse
-
For release candidates and major releases, also post to:
-
For major releases, also post to:
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