Repository navigation
Release PyGMT v0.19.0 #4649
Copy link
Copy link
Closed
Labels
maintenanceBoring but important stuff for the core devsBoring but important stuff for the core devs
Milestone
Description
Release: v0.19.0
Scheduled Date: 2026/07/05
Pull request due date: 2026/07/05
DOI: 10.5281/zenodo.19398871
Announcement draft: https://hackmd.io/xgfUvmc4TMW-fOGMoi_IbQ
Priority PRs/issues to complete prior to release
- Implement Figure.pygmtlogo for the PyGMT logo #4616
- Figure.pygmtlogo: Improved positioning of horizontal wordmark for circular PyGMT logo #4627
- Figure.pygmtlogo: Improve the design of the hexagonal logo #4631
- Figure.pygmtlogo: Improve positioning of vertical wordmark for circular PyGMT logo #4637
- DOC: Add PyGMT logo to README & docs #3845
- DOC: Add gallery example for PyGMT logo #4715
- DOC: Add design idea of PyGMT logo to docstrings #4719
- Figure.paragraph: What you see is what you type for spaces and tabs #4605
- Consistency with PyGMT: Default additions or changes in GMT plotting establishements
- directional and magnetic rose: Add default reference point for map rose ( -Td and -Tm) gmt#9074 -> set to TR -> Figure.directional_rose/Figure.magnetic_rose: Set the default position to the top right #4702
- scalebar: Add default position for map scales when refpoint is omitted gmt#9079 -> use PyGMT default BL with x-offset of 0.2-cm and y-offset of 0.4-cm
- inset: Add default reference point for map inset (-D) gmt#9077 -> set to TR -> POC: WIP: Figure.inset: Set the default position to the top right #4721
Before release:
- Check SPEC 0 to see if we need to bump the minimum supported versions of GMT, Python and core package dependencies (NumPy, pandas, xarray) SPEC 0: Bump minimum supported version to NumPy 2.1, pandas 2.3 and xarray 2024.7 #4650
- Review the "PyGMT Team" page @seisman
- 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 [Only two unrelated failures]
- All tests pass in the "GMT Dev Tests" workflow [Two failures needs more investigations]
- 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 - Reserve a DOI on Zenodo by clicking on "New Version"
10.5281/zenodo.19398871 - Finish up the "Changelog entry for v0.x.x" Pull Request (Use the previous changelog PR as a reference) Changelog entry for v0.19.0 #4709
- Run
make codespellto check common misspellings. If there are any, either fix them or add them toignore-words-listinpyproject.toml(Ignore two spelling errors reported by codespell #4654) - Draft the announcement on https://hackmd.io/@pygmt https://hackmd.io/@pygmt/SJaTVdmXMe
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
- Download pygmt-X.Y.Z.zip (rename 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 that they are filed under the correct reserved DOI
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) Bump version to PyGMT v0.19.0 and geopandas 1.1.4 try-gmt#67
- 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) https://www.researchgate.net/publication/410488164_PyGMT_A_Python_interface_for_the_Generic_Mapping_Tools_v0190
- Update release checklist template with any additional bullet points that may have arisen during the release Update the release checklist post v0.19.0 release #4733
- Party 🎉 (don't tick before all other checkboxes are ticked!)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
maintenanceBoring but important stuff for the core devsBoring but important stuff for the core devs
Activity
seisman commentedon Jul 8, 2026
@yvonnefroehlich I'm encountering internet connection issues accessing Zenodo. Could you please upload this version to Zenodo ?
yvonnefroehlich commentedon Jul 8, 2026
Sure, I looked at this. I expected to see an unpublished draft record (see example from my own uploads) with the reserved DOI, but I can only find the published record for v0.18.0:
Maybe a draft record is only visible to the person who created it? Or I do not have enough permission (https://help.zenodo.org/docs/communities/about-communities/) as a Curator (you and @weiji14 are Owners)? Clicking "New upload" would lead to an upload, which is not listed as a version of the PyGMT upload. Clicking "New version" was already done to reserve the DOI and doing this again would generate a new DOI.
weiji14 commentedon Jul 9, 2026
Ok, I've done the Zenodo uploads. Have also added the paper DOI under 'Related Works' -> 'Is published in':
@yvonnefroehlich, I've bumped your permissions from Curator to Manager. Not sure if it helps you to see draft uploads, can check next time.
yvonnefroehlich commentedon Jul 9, 2026
Great! Thanks 🙂.
seisman commentedon Jul 17, 2026
I'm still on a trip and have limited access to HackMD. For the announcement, I suggest we:
PyGMT paper section: Add a note acknowledging the typo in the PyGMT paper DOI.
Frame/Axis classes: These are new features that deserve a more thorough introduction. It would be helpful to include a side-by-side example comparing the legacy list syntax with the new class syntax, e.g.:
Old syntax:
New syntax:
and link to the frames tutorial at https://www.pygmt.org/v0.19.0/tutorials/basics/frames.html
yvonnefroehlich commentedon Jul 17, 2026
I should have time today to fill the table for the examples and include these ideas into the announcement. If people have time proofreading would be nice afterwards, and then I could post it later the day (evening or night).
seisman commentedon Jul 17, 2026
I feel this is no longer necessary because the typo is only visible in the README file of the source code archive after @weiji14's fix in #4730, so it should have limited effect.
yvonnefroehlich commentedon Jul 17, 2026
I have filled the table to show the new and updated examples, added a separate subsection for the
AxisandFrameparameter with the simple comparison example from Dongdong, included an image of the new PyGMT logo, and added a link to the JNs published along with the PyGMT paper.I realized that besides the examples we already mentioned, the choropleth gallery example and the basic tutorial for setting the map frame were updated to use the high-level method and new parameter classes. Thus, I changed it to ten instead of eight new and updated examples.
I plan to post the announcement in the evening or night. So, @michaelgrund and @weiji14 if you have time, please have a look to see that everything looks good.
yvonnefroehlich commentedon Jul 17, 2026
Forum announcement is at https://forum.generic-mapping-tools.org/t/pygmt-v0-19-0-released/6464.
seisman commentedon Jul 18, 2026
ResearchGate done at https://www.researchgate.net/publication/410488164_PyGMT_A_Python_interface_for_the_Generic_Mapping_Tools_v0190.