Skip to content
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

Merged
merged 25 commits into from
Sep 10, 2024

Conversation

seisman
Copy link
Member

@seisman seisman commented Aug 5, 2024

This PR updates the release checklist.

Here are the main changes in this PR:

  • Add a placeholder for release DOI
  • Review the "PyGMT Team" as early as possible
  • Check deprecations before checking CI runs
  • Simplify the task for working on the changelog entry
  • Check misspellings as late as possible
  • Draft the announcement as early as possible
  • Rename the zip file before uploading to Zenodo
  • Check two options when making a release

@seisman seisman added this to the 0.14.0 milestone Aug 5, 2024
@seisman seisman added the needs review This PR has higher priority and needs review. label Aug 5, 2024
Co-authored-by: Michael Grund <23025878+michaelgrund@users.noreply.github.com>
seisman and others added 2 commits August 6, 2024 06:42
Co-authored-by: Yvonne Fröhlich <94163266+yvonnefroehlich@users.noreply.github.com>
@seisman seisman removed the needs review This PR has higher priority and needs review. label Aug 13, 2024
@seisman seisman changed the title Release Checklist: Check pre-commit hooks and draft announcement before release Release Checklist: Draft announcement before release Sep 1, 2024
@seisman seisman removed this from the 0.14.0 milestone Sep 5, 2024
@@ -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`
Copy link
Member Author

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)
Copy link
Member Author

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
Copy link
Member Author

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`
Copy link
Member Author

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
Copy link
Member Author

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)
Copy link
Member Author

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
Copy link
Member Author

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 #3426 for an example.

Copy link
Member

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.

Copy link
Member Author

@seisman seisman Sep 6, 2024

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

Copy link
Member

@weiji14 weiji14 Sep 6, 2024

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.

Copy link
Member Author

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.

@seisman seisman changed the title Release Checklist: Draft announcement before release Improve the release checklist based on experience with v0.13.0 release Sep 5, 2024
@seisman seisman added the maintenance Boring but important stuff for the core devs label Sep 5, 2024
@seisman seisman added skip-changelog Skip adding Pull Request to changelog needs review This PR has higher priority and needs review. labels Sep 5, 2024
@seisman seisman added this to the 0.14.0 milestone Sep 5, 2024
@seisman seisman marked this pull request as ready for review September 5, 2024 12:30
- [ ] 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
Copy link
Member Author

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?

Copy link
Member

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

Copy link
Member Author

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.

Copy link
Member

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.

Copy link
Member Author

@seisman seisman Sep 6, 2024

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 <23487320+weiji14@users.noreply.github.com>
@seisman seisman requested a review from a team September 9, 2024 23:54
@seisman seisman added final review call This PR requires final review and approval from a second reviewer and removed needs review This PR has higher priority and needs review. labels Sep 10, 2024
@seisman seisman merged commit 2bb65df into main Sep 10, 2024
8 checks passed
@seisman seisman deleted the release-checklist branch September 10, 2024 22:26
@seisman seisman removed the final review call This PR requires final review and approval from a second reviewer label Sep 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintenance Boring but important stuff for the core devs skip-changelog Skip adding Pull Request to changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants