Repository navigation
Release PyGMT v0.17.0 #4100
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.17.0
Scheduled Date: 2025/09/30 2025/10/03
Pull request due date: 2025/09/28
DOI: 10.5281/zenodo.17156962
Announcement draft: https://hackmd.io/c5dOOqRjRv6AkjbZ53P-4g
Priority PRs/issues to complete prior to release
- Add the Pattern class for specifying bit and hachure patterns to fill symbols and polygons #4020
- Figure.image/grdimage/tilemap: Migrate the monochrome parameter to the new alias system #4088
- sequence_join: Correctly join datetime-like values in pd.DataFrame/xr.DataArray objects #4097
- AliasSystem: Migrate the region parameter to the new alias system #4099
- Drop GMT 6.4.0 support and add GMT 6.6.0 support #4017
- Update issue template for bumping GMT versions #4019
- Figure.colorbar: Add note regarding automatic fontsize scaling #4126
- pygmt.params.Pattern: Set default pattern value to 1 plus extra validation checks #4134
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)
- Review the "PyGMT Team" page
- README looks good on TestPyPI. Visit TestPyPI, click the latest pre-release, and check the homepage.
- Check to ensure that:
- Deprecated workarounds/codes/tests are removed. Run
grep "# TODO" **/*.pyto 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
- 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 Update the GMT/Ghostscript compatibility notes #4129 - Reserve a DOI on Zenodo by clicking on "New Version"
10.5281/zenodo.17156962 - Finish up the "Changelog entry for v0.x.x" Pull Request (Use the previous changelog PR as a reference) Changelog entry for v0.17.0 #4121
- Remember to update the author order Discuss the author order for v0.17.0 #4023
- Run
make codespellto check common misspellings. If there are any, either fix them or add them toignore-words-listinpyproject.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
- 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
- Remember to update the author order Discuss the author order for v0.17.0 #4023
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) pygmt v0.17.0 + convert to v1 recipe.yaml syntax conda-forge/pygmt-feedstock#45 - Bump PyGMT version on https://github.com/GenericMappingTools/try-gmt (after conda-forge update) Bump pygmt from 0.16.0 to 0.17.0, geopandas to 1.1.1 try-gmt#60
- 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 the release page 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!)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
maintenanceBoring but important stuff for the core devsBoring but important stuff for the core devs
Activity
welcome commentedon Sep 18, 2025
seisman commentedon Sep 18, 2025
It's time to release v0.17.0 in line with our quarterly release policy. Is 09/30 a good deadline? I'll have limited availability during the first week of October for the Chinese National Day holiday.
weiji14 commentedon Sep 18, 2025
Yep, September 30 sounds good! I can help with the post-release bullet points (e.g. forum announcement) if anything slips into October.
yvonnefroehlich commentedon Sep 19, 2025
Sounds good! For me, September 30 is fine.
seisman commentedon Sep 28, 2025
Unfortunately, we can't get Ghostscript 10.05.1 and 10.06.0 pushed into conda-forge yet (conda-forge/ghostscript-feedstock#35, conda-forge/ghostscript-feedstock#37), so we still don't know if GMT/PyGMT works well with these new versions.
seisman commentedon Sep 29, 2025
With the help of @weiji14, we have some last-minute progress on GMT 6.6 and ghostscript 10.05/10.06. I think the plans are:
We may postpone the v0.17.0 release by a few days, depending on the progress.
seisman commentedon Sep 29, 2025
As shown in PR #4125, GMT 6.5 works well with ghostscript 10.05.1 and 10.06.0. Currently, the "Not working transparency" note says:
I think we can either keep it unchanged or change it to "Ghostscript 10.03-10.06 for GMT 6.5.0". Which one is better?
As shown in #4018 (comment), the rebuilt GMT 6.6 still doesn't work, likely due to conflicts of geos and proj. I guess we should follow our initial plan and release v0.17.0 on Sep 30.
yvonnefroehlich commentedon Sep 29, 2025
I think we can leave the warning as is, and we can update it (if needed) when we add the support for GMT 6.6.
weiji14 commentedon Sep 29, 2025
GMT 6.6 appears to be installable now, I'll test them with ghostscript 10.05.1 and 10.06.0 in #4018.
Is it ok to delay the release then by a week? I think best to get GMT 6.6 in and drop GMT 6.4 now rather than in December which is too close to AGU (even though we usually release after AGU).
seisman commentedon Sep 30, 2025
I'll be AFK for several hours or days. Feel free to make changes you like.
yvonnefroehlich commentedon Sep 30, 2025
I have made a PR for fixing the alias list for
pygmt.grdclipat #4130 and for adding a note regrading the automatic font size scaling of the colorbar label based on the colorbar width at #4126.yvonnefroehlich commentedon Sep 30, 2025
Looking at the failing docs for windwos I found this warning / error:
weiji14 commentedon Sep 30, 2025
Ok, let's try and get #4126 in, and maybe #4131. I've pushed the release date out to Friday 3rd Oct, so we have a bit more time to polish things up.
weiji14 commentedon Oct 2, 2025
FYI, I've turned on immutable releases (https://github.blog/changelog/2025-08-26-releases-now-support-immutability-in-public-preview) in the settings. This means releases on https://github.com/GenericMappingTools/pygmt/releases from v0.17.0 onwards cannot have assets added/changed/deleted, and tags are fixed. It means we'll have to be a bit more careful with releases (otherwise we'll need to publish a new patch release), with the benefit of more security for downstream users.
Just wanted to ask if we should fix the documentation issue (#4138) before releasing? Or we can treat that as minor and stick to the Oct 3rd release date.
seisman commentedon Oct 2, 2025
Release assets
baseline-images.zip,pygmt-docs.pdfandpygmt-docs.zipare added by workflowsrelease-baseline-images.ymlandci_docs.ymlafter making a release. Does "immutable release" means these assets cannot be added?I think it's just a minor issue and can be ignored in this release.
weiji14 commentedon Oct 2, 2025
Hmm, that's a good point. Let's turn off immutable releases then for now. I didn't find anything in the docs about how to automate adding of assets to an immutable release yet.
yvonnefroehlich commentedon Oct 2, 2025
Agree. When starting to work on PR #4131 I thought this is easier/straightforward to fix 🙃.
weiji14 commentedon Oct 3, 2025
Ok, release uploads to PyPI and Zenodo, conda-forge packaging and try-gmt updates are done. Remainder is to finalize the announcement draft and post it on the forum + sharing on ResearchGate.
yvonnefroehlich commentedon Oct 3, 2025
Great 🎉! Thanks @weiji14 and @seisman for finishing and handling the release 🙏!
It seems like @seisman already started an announcement draft at https://hackmd.io/c5dOOqRjRv6AkjbZ53P-4g. I have added a section for the new gallery examples and technical references pages and made some formulation adjustments.
Would be good if somebody else reads through it. Then I can post it already during the weekend on the forum or should we wait until Monday?
weiji14 commentedon Oct 7, 2025
Announcement looks good, I've made a few changes. Feel free to post it later @yvonnefroehlich!
yvonnefroehlich commentedon Oct 7, 2025
Cool, thanks 🙂! Just made the annoucement on the at forum https://forum.generic-mapping-tools.org/t/pygmt-v0-17-0-released/6221.
seisman commentedon Oct 8, 2025
I've added this release to ResearchGate at https://www.researchgate.net/publication/396311489_PyGMT_A_Python_interface_for_the_Generic_Mapping_Tools_v0170.
I guess we're done with this release and let's move to v0.18.0.