Improve the release checklist based on experience with v0.13.0 release#3374
Improve the release checklist based on experience with v0.13.0 release#3374
Conversation
Co-authored-by: Yvonne Fröhlich <94163266+yvonnefroehlich@users.noreply.github.com>
| **Release**: [v0.x.x](https://github.com/GenericMappingTools/pygmt/milestones/?) | ||
| **Scheduled Date**: YYYY/MM/DD | ||
| **Pull request due date**: YYYY/MM/DD | ||
| **DOI**: `10.5281/zenodo.XXXXXXX` |
There was a problem hiding this comment.
Add the DOI at the top so that we can copy and paste to other files.
|
|
||
| - [ ] Check [SPEC 0](https://scientific-python.org/specs/spec-0000/) to see if we need to bump the minimum supported versions of GMT, Python and core package dependencies (NumPy/Pandas/Xarray) | ||
| - [ ] Run `make codespell` to check common misspellings. If there are any, either fix them or add them to `ignore-words-list` in `pyproject.toml` | ||
| - [ ] Review the ["PyGMT Team" page](https://www.pygmt.org/dev/team.html) |
There was a problem hiding this comment.
Review the PyGMT team as early as possible so that we have more time for discussions.
| - [ ] Run `make codespell` to check common misspellings. If there are any, either fix them or add them to `ignore-words-list` in `pyproject.toml` | ||
| - [ ] Review the ["PyGMT Team" page](https://www.pygmt.org/dev/team.html) | ||
| - [ ] Check to ensure that: | ||
| - [ ] Deprecations and related tests are removed for this version by running `grep --include="*.py" -r vX.Y.Z` from the base of the repository |
There was a problem hiding this comment.
Check deprecations as early as possible, so that we don't have to check workflow runs after removing deprecated codes and tests.
| - [ ] Add minimum required version information `doc/minversions.md` | ||
| - [ ] Copy draft changelog from Release Drafter and edit it to look nice ([see maintainers guide for details](https://www.pygmt.org/dev/maintenance.html#updating-the-changelog)) | ||
| - [ ] 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 to `ignore-words-list` in `pyproject.toml` |
There was a problem hiding this comment.
Check misspelling after finishing the changlog, just in case we introduce new typos in changelog.
| - [ ] Copy draft changelog from Release Drafter and edit it to look nice ([see maintainers guide for details](https://www.pygmt.org/dev/maintenance.html#updating-the-changelog)) | ||
| - [ ] 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 to `ignore-words-list` in `pyproject.toml` | ||
| - [ ] Draft the announcement on https://hackmd.io/@pygmt |
There was a problem hiding this comment.
Start to draft the announcement when we work on the changelog, so that we can finish the announcement as early as possible after making a release.
| - [ ] Add the documentation link `doc/minversions.md` | ||
| - [ ] Add minimum required version information `doc/minversions.md` | ||
| - [ ] Copy draft changelog from Release Drafter and edit it to look nice ([see maintainers guide for details](https://www.pygmt.org/dev/maintenance.html#updating-the-changelog)) | ||
| - [ ] Finish up the "Changelog entry for v0.x.x" Pull Request (Use the previous changelog PR as a reference) |
There was a problem hiding this comment.
Previously, this task has many smaller tasks:
- [ ] Add a new entry in `doc/_static/version_switch.js` for documentation switcher
- [ ] Update `CITATION.cff` and BibTeX at https://github.com/GenericMappingTools/pygmt#citing-pygmt
- [ ] Update authorship list
- [ ] Update DOI (and url for BibTeX)
- [ ] Update version
- [ ] Update date released
- [ ] Add the documentation link `doc/minversions.md`
- [ ] Add minimum required version information `doc/minversions.md`
- [ ] Copy draft changelog from Release Drafter and edit it to look nice ([see maintainers guide for details](https://www.pygmt.org/dev/maintenance.html#updating-the-changelog))
Based on my experience with making releases, I usually use the previous changelog PR as a reference. For example, when releasing v0.13.0 in #3425, I used the v0.12.0 PR #3201 as reference. I feel we can move these subtasks from the release checklist to the release PR. So, when releasing v0.14.0, we will use #3425 as a reference.
| - [ ] At the [PyGMT release page on GitHub](https://github.com/GenericMappingTools/pygmt/releases): | ||
| - [ ] Edit the draft release notes with the finalized changelog | ||
| - [ ] Set the tag version and release title to vX.Y.Z | ||
| - [ ] Make sure "Set as the latests release" and "Create a discussion for this release" are selected |
There was a problem hiding this comment.
"Create a discussion for this release" is a new option after we enable the project "Discussions". See https://github.com/GenericMappingTools/pygmt/discussions/3426 for an example.
There was a problem hiding this comment.
I don't think we should enable discussions for this repo, best to keep everything on the forum to avoid having too many places to monitor.
There was a problem hiding this comment.
Are you suggesting (1) Disabling announcements for releases in the "Discussions" page or (2) Disabling the entire "Discussions" page?
I'm OK with (1). I prefer to keep the "Discussions" page for non-issue discussions. For example, we may need to discuss the expected release date for v0.14.0, but I don't want to open an issue for it; some technical discussions may be better moved to "Discussions" (e.g., #3398).
There was a problem hiding this comment.
Are you suggesting (1) Disabling announcements for releases in the "Discussions" page or (2) Disabling the entire "Discussions" page?
I'd prefer (2) actually - disable a PyGMT-specific discussion page. Less things to keep track of 🙂
some technical discussions may be better moved to "Discussions" (e.g., #3398).
Issues/discussions like that are rather rare, but I see your point. I've been thinking if we can convert the GMT repo's discussion at https://github.com/GenericMappingTools/gmt/discussions into an organization-wide discussion (see https://docs.github.com/en/organizations/managing-organization-settings/enabling-or-disabling-github-discussions-for-an-organization), and maybe have a pygmt specific category there? I don't have the permissions to do so though.
There was a problem hiding this comment.
The entry is removed in 0708027.
I've been thinking if we can convert the GMT repo's discussion at https://github.com/GenericMappingTools/gmt/discussions into an organization-wide discussion (see https://docs.github.com/en/organizations/managing-organization-settings/enabling-or-disabling-github-discussions-for-an-organization), and maybe have a
pygmtspecific category there? I don't have the permissions to do so though.
It seems impossible to subscribe to a specific category. I'm also unsure who will be notified when a discussion is created in the "pygmt" category.
| - [ ] Set the tag version and release title to vX.Y.Z | ||
| - [ ] Make sure "Set as the latests release" and "Create a discussion for this release" are selected | ||
| - [ ] Make a release by clicking the 'Publish Release' button, this will automatically create a tag too | ||
| - [ ] Manually upload the pygmt-vX.Y.Z.zip and baseline-images.zip files to https://zenodo.org/deposit, ensure that it is filed under the correct reserved DOI |
There was a problem hiding this comment.
@weiji14 One question for you: It seems the zip file downloaded from https://github.com/GenericMappingTools/pygmt/releases/tag/v0.13.0 has a name like pygmt-0.13.0.zip, but the zip file on Zenodo has a name like pygmt-v0.13.0.zip (the extra v). Did you manually rename pygmt-0.13.0.zip to pygmt-v0.13.0.zip when you uploaded previous versions?
There was a problem hiding this comment.
Yes, good catch. I always needed to rename it to add an extra 'v'.
There was a problem hiding this comment.
Any specific reason for the renaming? The zip file is called pygmt-v0.13.0.zip, but the directory in the zip file is pygmt-0.13.0.zip.
There was a problem hiding this comment.
I see that this was included in the original release checklist at f2842c0. Can't remember now since it was 4 years ago, but it might be that our tags follow v0.X.Y, so I decided to use pygmt-v0.X.Y.zip for the filename, and just kept it to be consistent ever since.
There was a problem hiding this comment.
Just checked scipy, xarray and pandas on Zenodo. It seems they all zenodo register the DOI after making a release. Taking pandas as an example, the zip file name is pandas-dev/pandas-v2.2.2.zip, and the directory inside is pydata-xarray-da9ff0a. So I guess there is no guide about the best names for the zip file and the directory.
I'll mention the renaming in the checklist.
Edit: Done in 2d979e2.
Co-authored-by: Wei Ji <23487320+weiji14@users.noreply.github.com>
This PR updates the release checklist.
Here are the main changes in this PR:
Check two options when making a release