Skip to content

Commit b6050c9

Browse files
weiji14seisman
andauthored
Update release process in template post v0.3.0 (#907)
Documenting some of the lessons learned from Release v0.3.0 so that the next one will be smoother. The Release Drafter bot will also automatically increment to the next minor version (instead of a patch version) when a PR tagged 'feature' is merged into the master branch. Co-Authored-By: Dongdong Tian <[email protected]>
1 parent 2d0ffcd commit b6050c9

File tree

3 files changed

+45
-32
lines changed

3 files changed

+45
-32
lines changed

.github/ISSUE_TEMPLATE/release_checklist.md

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,35 @@
11
---
22
name: PyGMT release checklist
33
about: Checklist for a new PyGMT release.
4-
title: Release PyGMT x.x.x
4+
title: Release PyGMT vX.Y.Z
55
labels: maintenance
66
assignees: ''
77

88
---
99

10-
**Release**: [v0.x.x](https://github.com/GenericMappingTools/pygmt/milestones/0.x.x)
10+
**Release**: [v0.x.x](https://github.com/GenericMappingTools/pygmt/milestones/?)
1111
**Scheduled Date**: YYYY/MM/DD
12+
**Pull request due date**: YYYY/MM/DD
13+
14+
**Priority PRs/issues to complete prior to release**
15+
- [ ] Wrap X ()
16+
- [ ] Wrap Y ()
1217

1318
**Before release**:
1419
- [ ] Reserve a DOI on [Zenodo](https://zenodo.org) by clicking on "New Version"
15-
- [ ] Update Changelog
16-
- [ ] Add a new entry in `doc/_static/version_switch.js` for documentation switcher
17-
- [ ] Update citation information https://github.com/GenericMappingTools/pygmt#citing-pygmt
20+
- [ ] Finish up 'Changelog entry for v0.x.x' Pull Request:
21+
- [ ] Add a new entry in `doc/_static/version_switch.js` for documentation switcher
22+
- [ ] Update citation information https://github.com/GenericMappingTools/pygmt#citing-pygmt
23+
- [ ] Add the documentation link https://github.com/GenericMappingTools/pygmt#documentation-for-other-versions
24+
- [ ] Add compatibility information https://github.com/GenericMappingTools/pygmt#compatibility-with-python-and-gmt-versions
25+
- [ ] Copy draft changelog from Release Drafter and edit it to look nice
1826

1927
**Release**:
20-
- [ ] Go to [GitHub Release](https://github.com/GenericMappingTools/pygmt/releases) and make a release, this will automatically create a tag too
21-
- [ ] Manually upload the pygmt-vX.Y.Z.zip file to https://zenodo.org/deposit, make sure you file it under the correct reserved DOI
28+
- [ ] At the [PyGMT release page on GitHub](https://github.com/GenericMappingTools/pygmt/releases):
29+
- [ ] Edit the draft release notes with the finalized changelog
30+
- [ ] Set the tag version and release title to vX.Y.Z
31+
- [ ] Make a release by clicking the 'Publish Release' button, this will automatically create a tag too
32+
- [ ] Manually upload the pygmt-vX.Y.Z.zip file to https://zenodo.org/deposit, ensure that it is filed under the correct reserved DOI
2233

2334
**After release**:
2435
- [ ] Update conda-forge [pygmt-feedstock](https://github.com/conda-forge/pygmt-feedstock) [Usually done automatically by conda-forge's bot]

.github/release-drafter.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
1-
name-template: 'v$NEXT_PATCH_VERSION'
2-
tag-template: 'v$NEXT_PATCH_VERSION'
1+
name-template: 'v$RESOLVED_VERSION'
2+
tag-template: 'v$RESOLVED_VERSION'
3+
version-resolver:
4+
minor:
5+
labels:
6+
- 'feature'
7+
default: patch
38
categories:
49
- title: 'New Features'
510
label: 'feature'

MAINTENANCE.md

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ There are 8 configuration files located in `.github/workflows`:
8686
Archives will be pushed to TestPyPI on every commit to the *master* branch
8787
and tagged releases, and to PyPI for tagged releases only.
8888

89-
6. `release-drafer.yml` (Drafts the next release notes)
89+
6. `release-drafter.yml` (Drafts the next release notes)
9090

9191
This workflow is run to update the next releases notes as pull requests are
9292
merged into master.
@@ -131,31 +131,28 @@ https://github.com/release-drafter/release-drafter.
131131
The drafted release notes are not perfect, so we will need to tidy it prior to
132132
publishing the actual release notes at https://www.pygmt.org/latest/changes.html.
133133

134-
1. Generate a list of commits between the last release tag and now:
134+
1. Go to https://github.com/GenericMappingTools/pygmt/releases and click on the
135+
'Edit' button next to the current draft release note. Copy the text of the
136+
automatically drafted release notes under the 'Write' tab to
137+
`doc/changes.md`. Add a section separator `---` between the new and old
138+
changelog sections.
139+
2. Update the DOI badge in the changelog. Remember to replace the DOI number
140+
inside the badge url.
135141

136-
```bash
137-
git log HEAD...v0.1.2 --pretty="* %s" > changes.txt
138142
```
139-
140-
2. Edit the changes list to remove any trivial changes (updates to the README, typo
141-
fixes, CI configuration, etc).
142-
3. Replace the PR number in the commit titles with a link to the GitHub PR page.
143-
Use ``sed -i.bak -E 's$\(#([0-9]*)\)$(`#\1 <https://github.com/GenericMappingTools/pygmt/pull/\1>`__)$g' changes.rst``
144-
to make the change automatically.
145-
4. Copy the remaining changes to `doc/changes.rst` under a new section for the
146-
intended release.
147-
5. Add a list of people who contributed to the release (use
148-
`` git shortlog HEAD...v0.1.2 -sne ``).
149-
6. Include the DOI badge in the changelog. Remember to replace your DOI inside the badge url.
150-
143+
[![Digital Object Identifier for PyGMT vX.Y.Z](https://zenodo.org/badge/DOI/10.5281/zenodo.<INSERT-DOI-HERE>.svg)](https://doi.org/10.5281/zenodo.<INSERT-DOI-HERE>)
151144
```
152-
.. image:: https://zenodo.org/badge/DOI/<INSERT-DOI-HERE>.svg
153-
:alt: Digital Object Identifier for the Zenodo archive
154-
:target: https://doi.org/<INSERT-DOI-HERE>
155-
```
156-
157-
7. Add a link to the new release version documentation in `README.rst`.
158-
8. Open a new PR with the updated changelog.
145+
3. Open a new Pull Request using the title 'Changelog entry for vX.Y.Z' with
146+
the updated release notes, so that other people can help to review and
147+
collaborate on the changelog curation process described next.
148+
4. Edit the change list to remove any trivial changes (updates to the README,
149+
typo fixes, CI configuration, etc).
150+
5. Edit the list of people who contributed to the release, linking to their
151+
GitHub account. Sort their names by the number of commits made since the
152+
last release (e.g. use `` git shortlog HEAD...v0.1.2 -sne ``).
153+
6. Update `README.rst` with new information on the new release version, namely
154+
the BibTeX citation, a vX.Y.Z documentation link, and compatibility with
155+
Python and GMT versions.
159156
160157
### Check the README syntax
161158

0 commit comments

Comments
 (0)