Skip to content

Release PyGMT v0.20.0 #4819

Open
Open

Description

@seisman

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:
  • Update warnings in pygmt/_show_versions.py as 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 spellcheck to check common misspellings. If there are any, either fix them or add them to the relevant spelling configuration in pyproject.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
  • 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-feedstock repository 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!)

Activity

  1. seisman commented on Aug 12, 2026

    @seisman
    Author
  2. pinned this issue on Aug 12, 2026
  3. unpinned this issue on Aug 12, 2026
  4. seisman commented on Aug 12, 2026

    @seisman
    MemberAuthor

    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.

  5. changed the title [-]Release PyGMT v0.19.1[/-] [+]Release PyGMT v0.20.0[/+] on Aug 12, 2026
  6. yvonnefroehlich commented on Aug 12, 2026

    @yvonnefroehlich
    Member

    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.

    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 🥳.

  7. pinned this issue on Sep 5, 2026
  8. added this to the 0.20.0 milestone on Sep 14, 2026
  9. yvonnefroehlich commented on Sep 17, 2026

    @yvonnefroehlich
    Member

    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.

  10. seisman commented on Sep 17, 2026

    @seisman
    MemberAuthor

    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

  11. yvonnefroehlich commented on Sep 18, 2026

    @yvonnefroehlich
    Member

    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

    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.

  12. seisman commented on Nov 6, 2026

    @seisman
    MemberAuthor

    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.

  13. yvonnefroehlich commented on Nov 7, 2026

    @yvonnefroehlich
    Member

    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.

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    maintenanceBoring but important stuff for the core devs

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions