Skip to content

Latest commit

 

History

History
89 lines (75 loc) · 4.3 KB

release_checklist.md

File metadata and controls

89 lines (75 loc) · 4.3 KB
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 to TRUE
    • 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_* in cmake/ConfigDefault.cmake - [ ] comment the set (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.


  • Party 🎉 (don't tick before all other checkboxes are ticked!)