Skip to content

Commit 1ca4e46

Browse files
authored
Merge branch 'main' into states/figure
2 parents 9f4839c + 00496d6 commit 1ca4e46

File tree

337 files changed

+9235
-4818
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

337 files changed

+9235
-4818
lines changed

.dvcignore

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
1-
# Add patterns of files dvc should ignore, which could improve
2-
# the performance. Learn more at
3-
# https://dvc.org/doc/user-guide/dvcignore
1+
# Add patterns of files dvc should ignore, which could improve the performance.
2+
# Learn more at https://dvc.org/doc/user-guide/project-structure/dvcignore-files

.github/ISSUE_TEMPLATE/1-bug_report.yaml

+12-8
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,31 @@
11
name: Bug report
2-
description: Report a problem/bug to help us improve
2+
description: Report a problem/bug to help us improve.
33
labels: bug
44
body:
55
- type: markdown
66
attributes:
7-
value: |
7+
value: >
88
Thanks for taking the time to fill out this bug report!
99
- type: textarea
1010
attributes:
1111
label: "Description of the problem"
12-
description: |
12+
description: >
1313
Please be as detailed as you can when describing an issue.
1414
The more information we have, the easier it will be for us to track this down.
1515
validations:
1616
required: true
1717
- type: textarea
1818
attributes:
1919
label: "Minimal Complete Verifiable Example"
20-
description: |
20+
description: >
2121
So that we can understand and fix the issue quickly and efficiently, please provide
2222
a minimal, self-contained copy-pastable example that demonstrates the issue.
23+
2324
For more details, check out:
2425
2526
- [Minimal Complete Verifiable Examples](https://stackoverflow.com/help/mcve)
26-
- [Craft Minimal Bug Reports](http://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports)
27+
28+
- [Craft Minimal Bug Reports](https://matthewrocklin.com/minimal-bug-reports)
2729
2830
placeholder: "PASTE CODE HERE"
2931
render: python
@@ -40,9 +42,11 @@ body:
4042
- type: textarea
4143
attributes:
4244
label: "System information"
43-
description: |
44-
Please paste the output of `python -c "import pygmt; pygmt.show_versions()"`
45-
If this command is not successful, please describe your operating system, how you installed PyGMT, how you installed GMT, and paste the full error message.
45+
description: >
46+
Please paste the output of `python -c "import pygmt; pygmt.show_versions()"`.
47+
48+
If this command is not successful, please describe your operating system,
49+
how you installed PyGMT, how you installed GMT, and paste the full error message.
4650
placeholder: "PASTE THE OUTPUT HERE"
4751
render: bash
4852
validations:

.github/ISSUE_TEMPLATE/2-feature_request.yaml

+7-6
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,17 @@ body:
55
- type: textarea
66
attributes:
77
label: "Description of the desired feature"
8-
description: |
9-
Please be as detailed as you can in your description.
10-
If possible, include an example of how you would like to use this feature (even better if it's a code example).
8+
description: >
9+
Please be as detailed as you can in your description. If possible, include
10+
an example of how you would like to use this feature (even better if it's a code example).
1111
- type: dropdown
1212
id: help
1313
attributes:
1414
label: Are you willing to help implement and maintain this feature?
15-
description: |
16-
Every feature we add is code that we will have to maintain and keep updated. This takes a lot of effort.
17-
If you are willing to be involved in the project and help maintain your feature, it will make it easier for us to accept it.
15+
description: >
16+
Every feature we add is code that we will have to maintain and keep updated.
17+
This takes a lot of effort. If you are willing to be involved in the project and
18+
help maintain your feature, it will make it easier for us to accept it.
1819
options:
1920
- "No"
2021
- "Yes"

.github/ISSUE_TEMPLATE/3-module_request.yaml

+16-9
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,29 @@ labels: ["feature request"]
55
body:
66
- type: markdown
77
attributes:
8-
value: |
9-
Please replace `<module-name>` in the issue title and the description with the name of the requested module and add the description of the module.
8+
value: >
9+
Please replace `<module-name>` in the issue title and the description with the
10+
name of the requested module and add the description of the module.
1011
- type: textarea
1112
id: which-module
1213
attributes:
1314
label: Description of the desired module
14-
description: Please be as detailed as you can in your description. If possible, include an example of how you would like to use this feature (even better if it's a code example).
15-
placeholder: Implement [`<module-name>`](https://docs.generic-mapping-tools.org/latest/<module-name>.html) which `<insert description of the GMT module>`.
15+
description: >
16+
Please be as detailed as you can in your description. If possible, include
17+
an example of how you would like to use this feature (even better if it's a code example).
18+
placeholder: >
19+
Implement [`<module-name>`](https://docs.generic-mapping-tools.org/latest/<module-name>.html)
20+
which `<insert description of the GMT module>`.
1621
validations:
1722
required: true
1823
- type: dropdown
1924
id: help
2025
attributes:
2126
label: Are you willing to help implement and maintain this feature?
22-
description: |
23-
Every feature we add is code that we will have to maintain and keep updated. This takes a lot of effort.
24-
If you are willing to be involved in the project and help maintain your feature, it will make it easier for us to accept it.
27+
description: >
28+
Every feature we add is code that we will have to maintain and keep updated.
29+
This takes a lot of effort. If you are willing to be involved in the project and
30+
help maintain your feature, it will make it easier for us to accept it.
2531
options:
2632
- "No"
2733
- "Yes"
@@ -30,5 +36,6 @@ body:
3036
required: true
3137
- type: markdown
3238
attributes:
33-
value: |
34-
Progress on wrapping the module will be tracked in the [project board](https://github.com/GenericMappingTools/pygmt/projects/9).
39+
value: >
40+
Progress on wrapping the module will be tracked in the
41+
[project board](https://github.com/orgs/GenericMappingTools/projects/3).
+22-23
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,55 @@
11
---
22
name: PyGMT release checklist
3-
about: Checklist for a new PyGMT release.
3+
about: Checklist for a new PyGMT release. [For project maintainers only!]
44
title: Release PyGMT vX.Y.Z
55
labels: maintenance
66
assignees: ''
77

88
---
99

1010
**Release**: [v0.x.x](https://github.com/GenericMappingTools/pygmt/milestones/?)
11-
**Scheduled Date**: YYYY/MM/DD
12-
**Pull request due date**: YYYY/MM/DD
11+
**Scheduled Date**: 20YY/MM/DD
12+
**Pull request due date**: 20YY/MM/DD
13+
**DOI**: `10.5281/zenodo.XXXXXXX`
1314

1415
**Priority PRs/issues to complete prior to release**
16+
1517
- [ ] Wrap X ()
1618
- [ ] Wrap Y ()
1719

1820
**Before release**:
19-
- [ ] 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)
20-
- [ ] Run `make codespell` to check common misspellings. If there are any, either fix them or add them to `ignore-words-list` in `pyproject.toml`
21+
22+
- [ ] 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)
23+
- [ ] Review the ["PyGMT Team" page](https://www.pygmt.org/dev/team.html)
24+
- [ ] README looks good on TestPyPI. Visit [TestPyPI](https://test.pypi.org/project/pygmt/#history), click the latest pre-release, and check the homepage.
2125
- [ ] Check to ensure that:
26+
- [ ] Deprecated workarounds/codes/tests are removed. Run `grep "# TODO" **/*.py` to find all potential TODOs.
2227
- [ ] All tests pass in the ["GMT Legacy Tests" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_tests_legacy.yaml)
2328
- [ ] All tests pass in the ["GMT Dev Tests" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_tests_dev.yaml)
2429
- [ ] All tests pass in the ["Doctests" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_doctests.yaml)
25-
- [ ] 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
26-
- [ ] Update warnings in `pygmt.show_versions()` as well as notes in [Common installation issues](https://www.pygmt.org/dev/install.html#not-working-transparency)
27-
and [Testing your install]((https://www.pygmt.org/dev/install.html#testing-your-install) regarding GMT-Ghostscript incompatibility
30+
- [ ] 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
2831
- [ ] Reserve a DOI on [Zenodo](https://zenodo.org) by clicking on "New Version"
29-
- [ ] Review the ["PyGMT Team" page](https://www.pygmt.org/dev/team.html)
30-
- [ ] Finish up 'Changelog entry for v0.x.x' Pull Request:
31-
- [ ] Add a new entry in `doc/_static/version_switch.js` for documentation switcher
32-
- [ ] Update `CITATION.cff` and BibTeX at https://github.com/GenericMappingTools/pygmt#citing-pygmt
33-
- [ ] Update authorship list
34-
- [ ] Update DOI (and url for BibTeX)
35-
- [ ] Update version
36-
- [ ] Update date released
37-
- [ ] Add the documentation link `doc/minversions.md`
38-
- [ ] Add minimum required version information `doc/minversions.md`
39-
- [ ] 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))
32+
- [ ] Finish up the "Changelog entry for v0.x.x" Pull Request (Use the previous changelog PR as a reference)
33+
- [ ] Run `make codespell` to check common misspellings. If there are any, either fix them or add them to `ignore-words-list` in `pyproject.toml`
34+
- [ ] Draft the announcement on https://hackmd.io/@pygmt
4035

4136
**Release**:
37+
4238
- [ ] At the [PyGMT release page on GitHub](https://github.com/GenericMappingTools/pygmt/releases):
4339
- [ ] Edit the draft release notes with the finalized changelog
4440
- [ ] Set the tag version and release title to vX.Y.Z
4541
- [ ] Make a release by clicking the 'Publish Release' button, this will automatically create a tag too
46-
- [ ] 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
42+
- [ ] 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
4743

4844
**After release**:
49-
- [ ] 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]
45+
46+
- [ ] Update conda-forge [pygmt-feedstock](https://github.com/conda-forge/pygmt-feedstock) [Done automatically by conda-forge's bot. Remember to pin GMT, Python and SPEC0 versions]
5047
- [ ] Bump PyGMT version on https://github.com/GenericMappingTools/try-gmt (after conda-forge update)
5148
- [ ] Announce the release on:
52-
- [ ] GMT [forum](https://forum.generic-mapping-tools.org/c/news/) (do this announcement first! draft on https://hackmd.io/@pygmt. requires moderator status)
53-
- [ ] [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)
49+
- [ ] GMT [forum](https://forum.generic-mapping-tools.org/c/news/) (do this announcement first! Requires moderator status)
50+
- [ ] [ResearchGate](https://www.researchgate.net) (after forum announcement; download the ZIP file of the new release from the release page and add it as research item via the **code** category, be sure to include the corresponding new Zenodo DOI)
51+
- [ ] Update release checklist template with any additional bullet points that may have arisen during the release
52+
5453
---
5554

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

.github/ISSUE_TEMPLATE/5-bump_gmt_checklist.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: Bump GMT version checklist
3-
about: Checklist for bumping the minimum required GMT version.
3+
about: Checklist for bumping the minimum required GMT version. [For project maintainers only!]
44
title: Bump to GMT X.Y.Z
55
labels: maintenance
66
assignees: ''

.github/PULL_REQUEST_TEMPLATE.md

+4-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
Fixes #
99

1010

11+
<!-- If significant changes to the documentation are made, please insert the link to the documentation page after it has been built. -->
12+
**Preview**:
13+
14+
1115
**Reminders**
1216

1317
- [ ] Run `make format` and `make check` to make sure the code follows the style guide.
@@ -16,7 +20,6 @@ Fixes #
1620
- [ ] Write detailed docstrings for all functions/methods.
1721
- [ ] If wrapping a new module, open a 'Wrap new GMT module' issue and submit reasonably-sized PRs.
1822
- [ ] If adding new functionality, add an example to docstrings or tutorials.
19-
- [ ] Use underscores (not hyphens) in names of Python files and directories.
2023

2124
**Slash Commands**
2225

.github/release-drafter.yml

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ exclude-contributors:
2424
- 'actions-bot'
2525
- 'dependabot'
2626
- 'dependabot[bot]'
27+
- 'pre-commit-ci'
28+
- 'pre-commit-ci[bot]'
2729
category-template: '### $TITLE'
2830
change-template: '* $TITLE ([#$NUMBER]($URL))'
2931
sort-by: 'title'

.github/workflows/benchmarks.yml

+7-12
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ concurrency:
2525

2626
jobs:
2727
benchmarks:
28-
runs-on: ubuntu-22.04
28+
runs-on: ubuntu-latest
2929
if: github.repository == 'GenericMappingTools/pygmt' && (github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'run/benchmark'))
3030
defaults:
3131
run:
@@ -34,7 +34,7 @@ jobs:
3434
steps:
3535
# Checkout current git repository
3636
- name: Checkout
37-
uses: actions/checkout@v4.1.7
37+
uses: actions/checkout@v4.2.2
3838
with:
3939
# fetch all history so that setuptools-scm works
4040
fetch-depth: 0
@@ -45,27 +45,22 @@ jobs:
4545

4646
# Install Micromamba with conda-forge dependencies
4747
- name: Setup Micromamba
48-
uses: mamba-org/setup-micromamba@v1.9.0
48+
uses: mamba-org/setup-micromamba@v2.0.4
4949
with:
5050
environment-name: pygmt
51-
condarc: |
52-
channels:
53-
- conda-forge
54-
- nodefaults
55-
cache-downloads: false
5651
cache-environment: true
5752
# environment cache is persistent for one week.
5853
cache-environment-key: micromamba-environment-${{ steps.date.outputs.date }}
5954
create-args: >-
6055
gmt=6.5.0
61-
python=3.12
56+
python=3.13
6257
numpy
6358
pandas
6459
xarray
6560
netCDF4
6661
packaging
6762
geopandas
68-
pyarrow
63+
pyarrow-core
6964
pytest
7065
pytest-codspeed
7166
pytest-mpl
@@ -87,8 +82,8 @@ jobs:
8782

8883
# Run the benchmark tests
8984
- name: Run benchmarks
90-
uses: CodSpeedHQ/action@v3.0.0
85+
uses: CodSpeedHQ/action@v3.2.0
9186
with:
9287
# 'bash -el -c' is needed to use the custom shell.
9388
# See https://github.com/CodSpeedHQ/action/issues/65.
94-
run: bash -el -c "python -c \"import pygmt; pygmt.show_versions()\"; PYGMT_USE_EXTERNAL_DISPLAY=false python -m pytest -r P --pyargs pygmt --codspeed"
89+
run: bash -el -c "python -c \"import pygmt; pygmt.show_versions()\"; PYGMT_USE_EXTERNAL_DISPLAY=false python -m pytest -r P --pyargs pygmt --codspeed --override-ini addopts='--verbose'"

.github/workflows/cache_data.yaml

+5-8
Original file line numberDiff line numberDiff line change
@@ -36,22 +36,18 @@ jobs:
3636
steps:
3737
# Checkout current git repository
3838
- name: Checkout
39-
uses: actions/checkout@v4.1.7
39+
uses: actions/checkout@v4.2.2
4040
with:
4141
# fetch all history so that setuptools-scm works
4242
fetch-depth: 0
4343

4444
# Install Micromamba with conda-forge dependencies
4545
- name: Setup Micromamba
46-
uses: mamba-org/setup-micromamba@v1.9.0
46+
uses: mamba-org/setup-micromamba@v2.0.4
4747
with:
4848
environment-name: pygmt
49-
condarc: |
50-
channels:
51-
- conda-forge
52-
- nodefaults
5349
create-args: >-
54-
python=3.12
50+
python=3.13
5551
gmt=6.5.0
5652
numpy
5753
pandas
@@ -76,9 +72,10 @@ jobs:
7672

7773
# Upload the downloaded files as artifacts to GitHub
7874
- name: Upload artifacts to GitHub
79-
uses: actions/upload-artifact@v4
75+
uses: actions/upload-artifact@v4.6.0
8076
with:
8177
name: gmt-cache
78+
include-hidden-files: true
8279
path: |
8380
~/.gmt/cache
8481
~/.gmt/server

.github/workflows/check-links.yml

+14-17
Original file line numberDiff line numberDiff line change
@@ -23,44 +23,41 @@ jobs:
2323

2424
steps:
2525
- name: Checkout the repository
26-
uses: actions/checkout@v4.1.7
26+
uses: actions/checkout@v4.2.2
2727
with:
2828
path: repository
2929

3030
- name: Checkout the documentation
31-
uses: actions/checkout@v4.1.7
31+
uses: actions/checkout@v4.2.2
3232
with:
3333
ref: gh-pages
3434
path: documentation
3535

3636
- name: Link Checker
3737
id: lychee
38-
uses: lycheeverse/lychee-action@v1.10.0
38+
uses: lycheeverse/lychee-action@v2.3.0
3939
with:
40+
fail: false # Don't fail action on broken links
4041
output: /tmp/lychee-out.md
4142
# 429: Too many requests
4243
args: >
4344
--accept 429
44-
--exclude "^https://doi.org/10.5281/zenodo$"
45-
--exclude "^https://zenodo.org/badge/DOI/$"
46-
--exclude "^https://zenodo.org/badge/DOI/10.5281/zenodo$"
47-
--exclude "^https://github.com/GenericMappingTools/pygmt/pull/[0-9]*$"
48-
--exclude "^https://github.com/GenericMappingTools/pygmt/issues/[0-9]*$"
45+
--exclude "^https://docs.generic-mapping-tools.org/6.[0-9]?/%s$"
46+
--exclude "^https://docs.generic-mapping-tools.org/6.[0-9]?/%3Cmodule-name%3E.html$"
47+
--exclude "^https://doi.org"
4948
--exclude "^https://github.com/GenericMappingTools/gmt/releases/tag/X.Y.Z$"
5049
--exclude "^https://github.com/GenericMappingTools/pygmt/edit"
5150
--exclude "^https://github.com/GenericMappingTools/pygmt/issues/new"
51+
--exclude "^https://github.com/GenericMappingTools/pygmt/pull/[0-9]*$"
52+
--exclude "^https://github.com/GenericMappingTools/pygmt/issues/[0-9]*$"
5253
--exclude "^https://github.com/GenericMappingTools/pygmt/releases/tag/%7B%7Bpath%7D%7D"
53-
--exclude "^https://www.pygmt.org/%7B%7Bpath%7D%7D"
54-
--exclude "^git"
55-
--exclude "^file://"
56-
--exclude "https://www.adobe.com/jp/print/postscript/pdfs/PLRM.pdf"
57-
--exclude "^https://docs.generic-mapping-tools.org/6.5/%s$"
58-
--exclude "^https://docs.generic-mapping-tools.org/6.5/%3Cmodule-name%3E.html$"
59-
--exclude "^https://www.generic-mapping-tools.org/remote-datasets/%s$"
6054
--exclude "^https://hackmd.io/@pygmt"
61-
--exclude "^https://doi.org"
62-
--exclude "^https://www.researchgate.net/"
6355
--exclude "^https://test.pypi.org/simple/"
56+
--exclude "^https://www.adobe.com/jp/print/postscript/pdfs/PLRM.pdf"
57+
--exclude "^https://www.generic-mapping-tools.org/remote-datasets/%s$"
58+
--exclude "^https://www.pygmt.org/%7B%7Bpath%7D%7D"
59+
--exclude "^https://www.researchgate.net/"
60+
--exclude "^https://zenodo.org/badge/DOI/"
6461
--verbose
6562
"repository/**/*.rst"
6663
"repository/**/*.md"

0 commit comments

Comments
 (0)