- pip: https://pypi.org/project/pyam-iamc/ and https://test.pypi.org/project/pyam-iamc/
- conda: https://github.com/conda-forge/pyam-feedstock/
- rtd: https://readthedocs.org/projects/pyam-iamc/
- Make a release candidate branch (e.g.,
rc_v<release version>
) and pull request it intomaster
with the following updates:- Deprecate any stated portion of the API (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"
- for this new release, add a "## Highlights" section with the most important updates & changes
- add a new heading "## Individual Updates" before the PR listing
- Confirm that the PR passes all tests and checks
- Tag the release number:
git tag v<release version>
, e.g.,git tag v1.2.0
- THIS IS NOT THE TAGGED COMMIT WE WILL DISTRIBUTE, IT IS ONLY FOR TESTING
- DO NOT PUSH THIS TAG TO UPSTREAM
- Run
make publish-on-testpypi
- this should "just work" - if it does not, fix any issues,
retag (
git tag -d
thengit tag
), and try again
- this should "just work" - if it does not, fix any issues,
retag (
- Once successful, delete the tag, and merge the candidate PR into
master
on Github - Switch to the now-updated master branch:
git checkout master
andgit pull upstream master
- Tag the release number:
git tag v<release version>
, e.g.,git tag v1.2.0
versioneer
automatically updates the version number based on the tag- this is now the official tagged commit
- Push the tag upstream:
git push upstream --tags
- Run
make publish-on-pypi
- this will make wheels that allow
pyam
to be installed viapip install
- check that the new version is available at https://pypi.org/project/pyam-iamc/
- this will make wheels that allow
- 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
- Update on
conda-forge
- a PR should automatically be opened by the bot after the Github release
- confirm that any new depedencies are added there
- merge the PR
- check that the new version is available at 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 line "# Next Release" at the top of
RELEASE_NOTES.md
and commit tomaster
- Announce it on our mailing list: https://groups.io/g/pyam
- again, copy the rendered HTML from the Github release directly in the email
And that's it! Whew...