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 all 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
42 changes: 22 additions & 20 deletions .github/ISSUE_TEMPLATE/4-release_checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,49 +8,51 @@ assignees: ''
---

**Release**: [v0.x.x](https://github.com/GenericMappingTools/pygmt/milestones/?)
**Scheduled Date**: YYYY/MM/DD
**Pull request due date**: YYYY/MM/DD
**Scheduled Date**: 20YY/MM/DD
**Pull request due date**: 20YY/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.


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

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

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


**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
- [ ] 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](https://github.com/conda-forge/pygmt-feedstock) [Done automatically by conda-forge's bot, but remember to pin SPEC0 versions]

- [ ] Update conda-forge [pygmt-feedstock](https://github.com/conda-forge/pygmt-feedstock)
seisman marked this conversation as resolved.
Show resolved Hide resolved
[Done automatically by conda-forge's bot. Remember to pin Python and 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!)