- pip (automated via GitHub Actions):
- conda: https://github.com/conda-forge/pyam-feedstock/
- ReadTheDocs (automated): https://readthedocs.org/projects/pyam-iamc/
- Create a release candidate branch named
release/rc_v<release version>
and pull request it intomain
with the following updates:- If it's the first release in a new year,
search for
Copyright 2017
and update the end-year of the copyright tag - Deprecate any portion of the API marked for removal in this release (you can find them by searching the code base for "deprecate")
- Update
RELEASE_NOTES.md
(see the examples of previous releases)- Replace "# Next Release" with "# Release v"
- Add a "## Highlights" section with the most important updates & changes
- If applicable, add/review "## Dependency changes" and "## API changes" sections
- Add a new heading "## Individual Updates" before the list of individual PRs
- Confirm that the PR passes all tests
- Tag the release candidate
git tag v<release version>rc<n>
, e.g.,git tag v1.2.0rc1
, and push to the upstream repository - Confirm that the "publish" workflow passes https://github.com/IAMconsortium/pyam/actions/workflows/publish.yml
- Confirm that the release is published on https://test.pypi.org/project/pyam-iamc/
- The package can be downloaded, installed and run
- The README is rendered correctly
- If there are any problems, fix the issues and repeat from step 5, bumping the release candidate number
- If successful, merge the candidate PR into
main
and then delete the branch
- If it's the first release in a new year,
search for
- Switch to the updated main branch:
git checkout main
andgit pull upstream main
- Tag the release number:
git tag v<release version>
, e.g.,git tag v1.2.0
- Push the tag upstream:
git push upstream --tags
- Make a new release on Github
- Make sure that you choose the tag name defined above
- Copy the release summary from
RELEASE_NOTES.md
into the description box
- Confirm that the "publish" workflow passes https://github.com/IAMconsortium/pyam/actions/workflows/publish.yml
- Confirm that the release is published on https://www.pypi.org/project/pyam-iamc/
- Update on
conda-forge
- A PR should automatically be opened by the bot after the Github release
- Confirm that any new dependencies are included, change the minimum dependency version if necessary (compare to ./.github/workflows/pytest-depedency.yml)
- Merge the PR
- Check that the new version is available on https://anaconda.org/conda-forge/pyam
- Confirm that the doc pages are updated on https://pyam-iamc.readthedocs.io/
- Both the latest and the stable versions point to the new release
- The new release has been added to the list of available versions
- Add a new first line "# Next Release" in
RELEASE_NOTES.md
and commit tomain
- Announce it to our community
- The mailing list (https://pyam.groups.io) - copy the rendered HTML
from the Github release and use the subject line
#release v<release version>
- The Slack channel
- Social media using the tag
#pyam_iamc
- The mailing list (https://pyam.groups.io) - copy the rendered HTML
from the Github release and use the subject line
And that's it! Whew...