name | about | title | labels | assignees |
---|---|---|---|---|
GMT release checklist |
Checklist for a new GMT release. |
Release GMT x.x.x |
Version: x.x.x
Scheduled date: XXX XX, 20XX
Before release:
- check if there are new SCM releases
- check if all tests pass on macOS, Linux and Windows
- check if other GMT-derived projects work well
- MB-System (@PaulWessel)
- GMTSAR (@PaulWessel)
- GMT.jl (@joa-quim)
- PyGMT (@leouieda, @seisman, @weiji14, @maxrjones)
- gmtmex (@PaulWessel, @joa-quim)
- reserve a DOI on zenodo (@PaulWessel, @seisman)
- run
admin/gs_check.sh
to test if latest ghostscript version works - update changelog
- update the version information in CITATION.cff
- check installation instructions in
doc/rst/source/install.rst
- check if there are any warnings when building the documentation
- add one new entry in
doc/rst/_static/version_switch.js
if it's a minor release - check/set values in
cmake/ConfigDefault.cmake
-
GMT_VERSION_YEAR
is current year -
GMT_PACKAGE_VERSION_*
is correctly set -
GMT_LIB_SOVERSION
is correctly set - set
GMT_PUBLIC_RELEASE
toTRUE
- update
GMT_VERSION_DOI
-
- freeze codes and commit all changes to GitHub
Release:
- create source tarballs (tar.gz and tar.xz) (@PaulWessel)
- create macOS bundle (@PaulWessel)
- create Windows win64 installer and portable installer (@joa-quim)
- check if the source tarballs for Linux work well (@Esteban82, @anbj)
- check if the macOS bundles work well (@seisman, @maxrjones)
- check if the Windows installers work well (volunteers needed!)
- upload source tarballs, macOS bundle, Windows installers to the GMT FTP (@PaulWessel)
- update README and VERSION files on the GMT FTP (@PaulWessel)
- make a tag and push it to github (Must be done after uploading packages to the GMT FTP)
# checkout master (for minor releases) or 6.x branch (for patch releases) git checkout XXXX # create the tag x.x.x git tag x.x.x # Push tags to GitHub git push --tags
- make a GitHub release.
The GitHub Actions automatically create a draft release after pushing the tag to github.
We need to go to the GitHub Release page, and review it manually.
- 7 files are attached as release assets (2 source tarballs, 4 installers and 1 checksum file).
- download the checksum file and check if the checksums are correct
- edit the draft release, set the target to the correct tag, and publish the release
- upload the tarball to zenodo (@PaulWessel, @seisman)
- make announcements in the GMT forum
- make announcements on the GMT Instagram
- update links on the main site (Download & Documentation)
- update install instructions on the wiki if needed
After release:
- Reset for the next version
- [ ] update
GMT_PACKAGE_VERSION_*
incmake/ConfigDefault.cmake
- [ ] comment theset (GMT_PUBLIC_RELEASE TRUE)
line
3rd-party update
Volunteers needed! Please let us know if you volunteer to help to maintain GMT in these 3rd-party tools.
- update conda-forge feedstock (@leouieda, @seisman, @weiji14)
- update homebrew formula (@claudiodsf, @seisman)
- update macports ports (@remkos, @seisman)
- update the RPM repository (@seisman)
- update the try-gmt Jupyter lab (@weiji14, @seisman, @maxrjones)
- update winget manifest file (@seisman)
- Party 🎉 (don't tick before all other checkboxes are ticked!)