-
Notifications
You must be signed in to change notification settings - Fork 229
Open
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
Pull request due date: 2025/09/28
DOI: 10.5281/zenodo.17156962
Announcement draft: https://hackmd.io/@pygmt/xxxxxxxx
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: 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
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)
-
Drop GMT 6.4.0 support and add GMT 6.6.0 support #4017[Can't drop GMT 6.4 yet due to the installation issue of GMT 6.6] - SPEC 0: Bump minimum supported version to Xarray 2023.10 #4091
- SPEC 0: Bump minimum supported version to pandas 2.2 #4092
-
SPEC 0: Bump minimum supported version to NumPy 2.0 #4090[Requires xarray>=2024.06]
-
- 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" **/*.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
- Deprecated workarounds/codes/tests are removed. Run
- Update warnings in
pygmt/_show_versions.py
as well as notes in Not working transparency regarding GMT-Ghostscript incompatibility - 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)
- Run
make codespell
to check common misspellings. If there are any, either fix them or add them toignore-words-list
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.zip
andpygmt-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-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 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!)
Metadata
Metadata
Assignees
Labels
maintenanceBoring but important stuff for the core devsBoring but important stuff for the core devs