-
Notifications
You must be signed in to change notification settings - Fork 224
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve the release checklist based on experience with v0.13.0 release #3374
Conversation
Co-authored-by: Michael Grund <[email protected]>
Co-authored-by: Yvonne Fröhlich <[email protected]>
@@ -10,47 +10,46 @@ assignees: '' | |||
**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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review the PyGMT team as early as possible so that we have more time for discussions.
- [ ] 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
pygmt
specific 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.
- [ ] 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 | ||
- [ ] 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, good catch. I always needed to rename it to add an extra 'v'.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 <[email protected]>
This PR updates the release checklist.
Here are the main changes in this PR:
Check two options when making a release