Skip to content

Commit a5591af

Browse files
committed
Update maintainers guides
1 parent 7285bc8 commit a5591af

File tree

1 file changed

+37
-32
lines changed

1 file changed

+37
-32
lines changed

Diff for: doc/maintenance.md

+37-32
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ communication tools we use.
1919

2020
- Added to the [pygmt-contributors team](https://github.com/orgs/GenericMappingTools/teams/pygmt-contributors) (gives 'write' permission to the repository)
2121
- Added as collaborator on [DAGsHub](https://dagshub.com/GenericMappingTools/pygmt/settings/collaboration) (gives 'write' permission to dvc remote storage)
22+
- Added to the {doc}`Team Gallery page <team>`
2223
- Added as member on the [PyGMT devs Slack channel](https://pygmtdevs.slack.com) (for casual conversations)
2324
- Added as member on [HackMD](https://hackmd.io/@pygmt) (for draft announcements) [optional]
2425

@@ -86,33 +87,34 @@ The main advantages of this are:
8687

8788
We use GitHub Actions continuous integration (CI) services to build, test and
8889
manage the project on Linux, macOS and Windows. The GitHub Actions CI are
89-
controlled by 14 workflow files located in `.github/workflows`. Here we briefly
90+
controlled by workflow files located in `.github/workflows`. Here we briefly
9091
summarize the functions of the workflows. Please refer to the comments in the
9192
workflow files for more details.
9293

93-
1. `style_checks.yaml`: Code lint and style checks
94-
2. `check-links.yml`: Check links in the repository and documentation
95-
3. `ci_tests.yaml`: Run regular PyGMT tests on Linux/macOS/Windows
96-
4. `ci_tests_dev.yaml`: Run regular PyGMT tests with GMT dev version on Linux/macOS/Windows
97-
5. `ci_tests_legacy.yaml`: Run regular PyGMT tests with GMT legacy versions on Linux/macOS/Windows
98-
6. `ci_docs.yml`: Build documentation on Linux/macOS/Windows and deploy to GitHub
99-
7. `ci_doctest.yaml`: Run all doctests on Linux/macOS/Windows
100-
8. `cache_data.yaml`: Cache GMT remote data files and uplodas as artifacts
101-
9. `publish-to-pypi.yml`: Publish archives to PyPI and TestPyPI
102-
10. `release-drafter.yml`: Draft the next release notes
103-
11. `release-baseline-images.yml`: Upload the ZIP archive of baseline images as a release asset
104-
12. `format-command.yml`: Format the codes using slash command
105-
13. `dvc-diff.yml`: Report changes in test images
106-
14. `slash-command-dispatch.yml`: Support slash commands in pull requests
107-
15. `benchmarks.yml`: Benchmarks the execution speed of tests to track performance of PyGMT functions
94+
- `style_checks.yaml`: Code lint and style checks
95+
- `type_checks.yml`: Static type checks
96+
- `check-links.yml`: Check links in the repository and documentation
97+
- `ci_tests.yaml`: Run regular PyGMT tests on Linux/macOS/Windows
98+
- `ci_tests_dev.yaml`: Run regular PyGMT tests with GMT dev version on Linux/macOS/Windows
99+
- `ci_tests_legacy.yaml`: Run regular PyGMT tests with GMT legacy versions on Linux/macOS/Windows
100+
- `ci_docs.yml`: Build documentation on Linux/macOS/Windows and deploy to GitHub
101+
- `ci_doctest.yaml`: Run all doctests on Linux/macOS/Windows
102+
- `cache_data.yaml`: Cache GMT remote data files and uplodas as artifacts
103+
- `publish-to-pypi.yml`: Publish archives to PyPI and TestPyPI
104+
- `release-drafter.yml`: Draft the next release notes
105+
- `release-baseline-images.yml`: Upload the ZIP archive of baseline images as a release asset
106+
- `format-command.yml`: Format the codes using slash command
107+
- `dvc-diff.yml`: Report changes in test images
108+
- `slash-command-dispatch.yml`: Support slash commands in pull requests
109+
- `benchmarks.yml`: Benchmarks the execution speed of tests to track performance of PyGMT functions
108110

109111

110112
## Continuous Documentation
111113

112114
We use the [ReadtheDocs](https://readthedocs.org/) service to preview changes
113115
made to our documentation website every time we make a commit in a pull request.
114116
The service has a configuration file `.readthedocs.yaml`, with a list of options
115-
to change the default behaviour at https://docs.readthedocs.io/en/stable/config-file/index.html.
117+
to change the default behaviour at <https://docs.readthedocs.io/en/stable/config-file/index.html>.
116118

117119

118120
## Dependencies Policy
@@ -134,7 +136,8 @@ adjusted upward on every major and minor release, but never on a patch release.
134136

135137
PyGMT is still undergoing rapid development. All of the API is subject to change
136138
until the v1.0.0 release. Versioning in PyGMT is based on the
137-
[semantic versioning specification](https://semver.org/spec/v2.0.0.html) (e.g. vMAJOR.MINOR.PATCH).
139+
[semantic versioning specification](https://semver.org/spec/v2.0.0.html)
140+
(i.e., v*MAJOR*.*MINOR*.*PATCH*).
138141
Basic policy for backwards compatibility:
139142

140143
- Any incompatible changes should go through the deprecation process below.
@@ -175,24 +178,25 @@ will be fully removed in v0.6.0. The new parameter name is `incols`.
175178

176179
We try to automate the release process as much as possible.
177180
GitHub Actions workflow handles publishing new releases to PyPI and updating the documentation.
178-
The version number is set automatically using setuptools_scm based information
179-
obtained from git.
181+
The version number is set automatically using [setuptools_scm](https://pypi.org/project/setuptools-scm/)
182+
based information obtained from git.
180183
There are a few steps that still must be done manually, though.
181184

182185
### Updating the Changelog
183186

184-
The Release Drafter GitHub Action will automatically keep a draft changelog at
185-
https://github.com/GenericMappingTools/pygmt/releases, adding a new entry
187+
The [Release Drafter](https://github.com/release-drafter/release-drafter) GitHub Action
188+
will automatically keep a draft changelog at
189+
<https://github.com/GenericMappingTools/pygmt/releases>, adding a new entry
186190
every time a pull request (with a proper label) is merged into the main branch.
187191
This release drafter tool has two configuration files, one for the GitHub Action
188-
at .github/workflows/release-drafter.yml, and one for the changelog template
189-
at .github/release-drafter.yml. Configuration settings can be found at
190-
https://github.com/release-drafter/release-drafter.
192+
at `.github/workflows/release-drafter.yml`, and one for the changelog template
193+
at `.github/release-drafter.yml`. Configuration settings can be found at
194+
<https://github.com/release-drafter/release-drafter>.
191195

192196
The drafted release notes are not perfect, so we will need to tidy it prior to
193-
publishing the actual release notes at https://www.pygmt.org/latest/changes.html.
197+
publishing the actual release notes at {doc}`changes`.
194198

195-
1. Go to https://github.com/GenericMappingTools/pygmt/releases and click on the
199+
1. Go to <https://github.com/GenericMappingTools/pygmt/releases> and click on the
196200
'Edit' button next to the current draft release note. Copy the text of the
197201
automatically drafted release notes under the 'Write' tab to
198202
`doc/changes.md`. Add a section separator `---` between the new and old
@@ -212,7 +216,7 @@ publishing the actual release notes at https://www.pygmt.org/latest/changes.html
212216
such that similar items are located near each other (e.g., new wrapped
213217
modules and methods, gallery examples, API docs changes) and entries within each group
214218
are alphabetical.
215-
6. Move a few important items from the main sections to the highlights section.
219+
6. Move a few important items from the main sections to the Hhighlights section.
216220
7. Edit the list of people who contributed to the release, linking to their
217221
GitHub accounts. Sort their names by the number of commits made since the
218222
last release (e.g., use `git shortlog HEAD...v0.4.0 -sne`).
@@ -226,7 +230,7 @@ publishing the actual release notes at https://www.pygmt.org/latest/changes.html
226230
DOI, release date, and version information. Please also follow
227231
guidelines in `AUTHORSHIP.md` for updating the author list in the BibTeX.
228232
More information about the `CITATION.cff` specification can be found at
229-
https://github.com/citation-file-format/citation-file-format/blob/main/schema-guide.md
233+
<https://github.com/citation-file-format/citation-file-format/blob/main/schema-guide.md>.
230234
231235
### Check the README Syntax
232236
@@ -238,10 +242,10 @@ the latest commit, and review the left sidebar and project description for any e
238242
### Pushing to PyPI and Updating the Documentation
239243
240244
After the changelog is updated, making a release can be done by going to
241-
https://github.com/GenericMappingTools/pygmt/releases, editing the draft release,
245+
<https://github.com/GenericMappingTools/pygmt/releases>, editing the draft release,
242246
and clicking on publish. A git tag will also be created, make sure that this
243247
tag is a proper version number (following [Semantic Versioning](https://semver.org/))
244-
with a leading `v`. E.g. `v0.2.1`.
248+
with a leading `v` (e.g., `v0.2.1`).
245249
246250
Once the release/tag is created, this should trigger GitHub Actions to do all the work for us.
247251
A new source distribution will be uploaded to PyPI, a new folder with the documentation
@@ -263,8 +267,9 @@ If changes need to be done manually, you can:
263267
1. Fork the [pygmt feedstock repository](https://github.com/conda-forge/pygmt-feedstock) if
264268
you haven't already. If you have a fork, update it.
265269
2. Update the version number and sha256 hash on `recipe/meta.yaml`. You can get the hash
266-
from the PyPI "Download files" section.
270+
from the [PyPI "Download files" section](https://pypi.org/project/pygmt/#files).
267271
3. Add or remove any new dependencies (most are probably only `run` dependencies).
272+
4. Make sure the mimimum support versions of all dependencies are correctly pinned.
268273
4. Make a new branch, commit, and push the changes **to your personal fork**.
269274
5. Create a PR against the original feedstock main.
270275
6. Once the CI tests pass, merge the PR or ask a maintainer to do so.

0 commit comments

Comments
 (0)