Repository navigation
Open
Labels
maintenanceBoring but important stuff for the core devsBoring but important stuff for the core devs
Milestone
Description
Release: v0.20.0
Scheduled Date: 2026/09/30
Pull request due date: 20YY/MM/DD
DOI: 10.5281/zenodo.XXXXXXX
Announcement draft: https://hackmd.io/@pygmt/xxxxxxxx
Priority PRs/issues to complete prior to release
- Wrap X ()
- Wrap Y ()
Before release:
- Reserve a DOI on Zenodo by clicking on "New Version"
- Check SPEC 0 to see if we need to bump the minimum supported versions of GMT, Python and core package dependencies (NumPy, pandas, xarray)
- Review the "PyGMT Team" page
- README looks good on TestPyPI. Visit TestPyPI, click the latest pre-release, and check the homepage.
- Review new parameter names added/changed for clarity and consistency across the API
- Check to ensure that:
- Deprecated workarounds/codes/tests are removed. Run
grep -r "# TODO" --include="*.py" .to find all potential TODOs. - All tests pass in the "GMT Legacy Tests" workflow
- All tests pass in the "GMT Dev Tests" workflow
- All tests pass in the "Doctests" workflow
- All links work in the "Check Links" workflow
- Deprecated workarounds/codes/tests are removed. Run
- Update warnings in
pygmt/_show_versions.pyas well as notes in Not working transparency regarding GMT-Ghostscript incompatibility - Finish up the "Changelog entry for v0.x.x" Pull Request (Use the previous changelog PR as a reference)
- Run
make spellcheckto check common misspellings. If there are any, either fix them or add them to the relevant spelling configuration inpyproject.toml - Draft the announcement on https://hackmd.io/@pygmt
Release:
- At the PyGMT release page on GitHub:
- Edit the draft release notes with the finalized changelog
- Set the tag version and release title to vX.Y.Z
- Make a release by clicking the 'Publish Release' button, this will automatically create a tag too
- Verify that all workflows triggered by the release pass
- The latest version is correct on PyPI
- The latest version is correct on https://www.pygmt.org/latest/
- The release page has five assets, including
baseline-images.zip,pygmt-docs.zipandpygmt-docs.pdf
- Upload to Zenodo:
- Download pygmt-X.Y.Z.zip (listed as Source code (zip); rename it to pygmt-vX.Y.Z.zip) and baseline-images.zip from the release page, and upload the two zip files to https://zenodo.org/deposit
- Ensure they are filed under the correct reserved DOI
- Update authorship information based on
CITATION.cff
After release:
- Update conda-forge pygmt-feedstock (Done automatically by conda-forge's bot. If you don't want to wait, open a new issue in the
conda-forge/pygmt-feedstockrepository with the title@conda-forge-admin, please update version. This will trigger the bot immediately. Remember to pin GMT, Python and SPEC0 versions) - Bump PyGMT version on https://github.com/GenericMappingTools/try-gmt (after conda-forge update)
- Announce the release on:
- GMT forum (do this announcement first! Requires moderator status)
- ResearchGate (after forum announcement; download the ZIP file of the new release from Zenodo and add it as research item via the code category, be sure to include the corresponding new Zenodo DOI)
- Update release checklist template with any additional bullet points that may have arisen during the release
- Party 🎉 (don't tick before all other checkboxes are ticked!)
Metadata
Metadata
Assignees
Labels
maintenanceBoring but important stuff for the core devsBoring but important stuff for the core devs
Activity
seisman commentedon Aug 12, 2026
seisman commentedon Aug 12, 2026
As explained in #4815 (comment), there is a workaround for the issue. So, it's likely we no longer need a v0.19.1 release.
Keep this issue for v0.20.0, scheduled in Sep 2026.
[-]Release PyGMT v0.19.1[/-][+]Release PyGMT v0.20.0[/+]yvonnefroehlich commentedon Aug 12, 2026
I think with this workaround it should be fine 🙂.
Beside this, it seems we are lucky and the example in the PyGMT paper is not affected 🥳.
yvonnefroehlich commentedon Sep 17, 2026
Do we plan to keep September 30 for the release of PyGMT 0.20.0? I am asking because I have some PRs open, which I think should go into 0.20.0. Unfortunately, I am currently a bit struggling to catch up with things, but I will try to work on these PRs in the next week.
Besides this, I feel it would be good to have GMT 6.7.1 released first.
seisman commentedon Sep 17, 2026
I have a series of PRs refactoring the Figure.histogram method, which will deprecate a few parameters. I prefer to have Figure.histogram finalized so that users won't see histogram deprecations in two or more releases
yvonnefroehlich commentedon Sep 18, 2026
I agree, all these histogram-related changes should be bundled in on release. And I think we can also add a new or adjust the existing example or tutorial (there was already such a comment in one of the PRs) afterwards.
seisman commentedon Nov 6, 2026
This release has been delayed by more than one month. Considering the AGU meeting in December, I feel we have two options: (1) release soon, in one or two weeks (see the milestone https://github.com/GenericMappingTools/pygmt/milestone/28); (2) release at the end of December.
yvonnefroehlich commentedon Nov 7, 2026
I prefer option (1), even it means we will not have the release of GMT to fix the meca cpt bug before. A release in 1.5 or two weeks (up on 15.11.2026) would be good for me. I need to finish some works next week and I plan to have a look at the materials for the GMT poster at AGU26.