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
Merged
Changes from 15 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c09cd24
Move spelling check to the end of the list
seisman Aug 5, 2024
30c081f
Fix a typo
seisman Aug 5, 2024
ad5fffd
GMT-GS compatability is not in a new separate subsection
seisman Aug 5, 2024
13961dc
Remove deprecated codes first before checking other CI workflows
seisman Aug 5, 2024
ea7c25d
Add a entry to check pre-commit hooks
seisman Aug 5, 2024
4470f96
Draft the announcement before the release
seisman Aug 5, 2024
7316504
Typo
seisman Aug 5, 2024
bbda6c2
Update .github/ISSUE_TEMPLATE/4-release_checklist.md
seisman Aug 5, 2024
fcfe59d
Review the PyGMT team page earlier since it may take some time
seisman Aug 7, 2024
a403117
Merge branch 'main' into release-checklist
seisman Aug 27, 2024
aff71d2
No need to check hooks manually after enabling pre-commit.ci
seisman Aug 27, 2024
f506f65
Merge branch 'main' into release-checklist
seisman Sep 4, 2024
12a2011
Show DOI at the top
seisman Sep 4, 2024
55f27eb
Simplify the checklist for changelog entry
seisman Sep 5, 2024
fcfd34a
Update the command to check deprecations in this version
seisman Sep 5, 2024
a4af06e
Create a discussion for this release
seisman Sep 5, 2024
be22c85
Merge branch 'main' into release-checklist
seisman Sep 5, 2024
a996ec9
Check spelling before drafting annoucement
seisman Sep 5, 2024
a6e3e98
Add instructions to trigger conda-forge's update manually
seisman Sep 5, 2024
d809f74
Fix a typo
seisman Sep 5, 2024
2d979e2
Need to rename the zip file before uploading
seisman Sep 6, 2024
fed3fc9
Apply suggestions from code review
seisman Sep 6, 2024
0708027
Do not create a discussion for a release
seisman Sep 6, 2024
a26795c
Merge branch 'main' into release-checklist
seisman Sep 9, 2024
0274d4d
Year 20XX
seisman Sep 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 15 additions & 16 deletions .github/ISSUE_TEMPLATE/4-release_checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
seisman marked this conversation as resolved.
Show resolved Hide resolved
**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.


**Priority PRs/issues to complete prior to release**

- [ ] Wrap X ()
- [ ] Wrap Y ()

**Before release**:

- [ ] 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.

- [ ] All tests pass in the ["GMT Legacy Tests" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_tests_legacy.yaml)
- [ ] All tests pass in the ["GMT Dev Tests" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_tests_dev.yaml)
- [ ] All tests pass in the ["Doctests" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_doctests.yaml)
- [ ] Deprecations and related tests are removed for this version by running `grep --include="*.py" -r 'remove_version="vX.Y.Z"' pygmt` from the base of the repository
- [ ] Update warnings in `pygmt.show_versions()` as well as notes in [Common installation issues](https://www.pygmt.org/dev/install.html#not-working-transparency)
and [Testing your install]((https://www.pygmt.org/dev/install.html#testing-your-install) regarding GMT-Ghostscript incompatibility
- [ ] Update warnings in `pygmt/_show_versions.py` as well as notes in
[Not working transparency](https://www.pygmt.org/dev/install.html#not-working-transparency)
regarding GMT-Ghostscript incompatibility
- [ ] Reserve a DOI on [Zenodo](https://zenodo.org) by clicking on "New Version"
- [ ] Review the ["PyGMT Team" page](https://www.pygmt.org/dev/team.html)
- [ ] Finish up 'Changelog entry for v0.x.x' Pull Request:
- [ ] 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))
- [ ] 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.

- [ ] 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.

- [ ] Run `make codespell` to check common misspellings. If there are any, either fix them or add them to `ignore-words-list` in `pyproject.toml`

**Release**:

- [ ] 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 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.


**After release**:

- [ ] Update conda-forge [pygmt-feedstock](https://github.com/conda-forge/pygmt-feedstock) [Done automatically by conda-forge's bot, but remember to pin SPEC0 versions]
- [ ] Bump PyGMT version on https://github.com/GenericMappingTools/try-gmt (after conda-forge update)
- [ ] Announce the release on:
- [ ] GMT [forum](https://forum.generic-mapping-tools.org/c/news/) (do this announcement first! draft on https://hackmd.io/@pygmt. requires moderator status)
- [ ] GMT [forum](https://forum.generic-mapping-tools.org/c/news/) (do this announcement first! Requires moderator status)
- [ ] [ResearchGate](https://www.researchgate.net) (after forum announcement, add new version as research item via the **code** category, be sure to include the corresponding new Zenodo DOI)

---

- [ ] Party :tada: (don't tick before all other checkboxes are ticked!)