Skip to content

Commit 08ca92e

Browse files
committed
Merge branch 'main' into refactor/meca-convention
2 parents cc554e9 + a92d9d0 commit 08ca92e

File tree

138 files changed

+2496
-1596
lines changed

Some content is hidden

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

138 files changed

+2496
-1596
lines changed

.github/ISSUE_TEMPLATE/1-bug_report.yaml

+11-7
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,30 @@
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)
27+
2628
- [Craft Minimal Bug Reports](https://matthewrocklin.com/minimal-bug-reports)
2729
2830
placeholder: "PASTE CODE HERE"
@@ -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).

.github/workflows/benchmarks.yml

+5-5
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/[email protected].1
37+
uses: actions/[email protected].2
3838
with:
3939
# fetch all history so that setuptools-scm works
4040
fetch-depth: 0
@@ -45,7 +45,7 @@ jobs:
4545

4646
# Install Micromamba with conda-forge dependencies
4747
- name: Setup Micromamba
48-
uses: mamba-org/[email protected].0
48+
uses: mamba-org/[email protected].2
4949
with:
5050
environment-name: pygmt
5151
condarc: |
@@ -87,8 +87,8 @@ jobs:
8787

8888
# Run the benchmark tests
8989
- name: Run benchmarks
90-
uses: CodSpeedHQ/action@v3.0.1
90+
uses: CodSpeedHQ/action@v3.2.0
9191
with:
9292
# 'bash -el -c' is needed to use the custom shell.
9393
# 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"
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 --override-ini addopts='--verbose'"

.github/workflows/cache_data.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ jobs:
3636
steps:
3737
# Checkout current git repository
3838
- name: Checkout
39-
uses: actions/[email protected].1
39+
uses: actions/[email protected].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/[email protected].0
46+
uses: mamba-org/[email protected].2
4747
with:
4848
environment-name: pygmt
4949
condarc: |

.github/workflows/check-links.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,19 @@ jobs:
2323

2424
steps:
2525
- name: Checkout the repository
26-
uses: actions/[email protected].1
26+
uses: actions/[email protected].2
2727
with:
2828
path: repository
2929

3030
- name: Checkout the documentation
31-
uses: actions/[email protected].1
31+
uses: actions/[email protected].2
3232
with:
3333
ref: gh-pages
3434
path: documentation
3535

3636
- name: Link Checker
3737
id: lychee
38-
uses: lycheeverse/lychee-action@v2.0.2
38+
uses: lycheeverse/lychee-action@v2.1.0
3939
with:
4040
fail: false # Don't fail action on broken links
4141
output: /tmp/lychee-out.md

.github/workflows/ci_docs.yml

+7-6
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ jobs:
6969
steps:
7070
# Checkout current git repository
7171
- name: Checkout
72-
uses: actions/[email protected].1
72+
uses: actions/[email protected].2
7373
with:
7474
# fetch all history so that setuptools-scm works
7575
fetch-depth: 0
@@ -80,7 +80,7 @@ jobs:
8080

8181
# Install Micromamba with conda-forge dependencies
8282
- name: Setup Micromamba
83-
uses: mamba-org/[email protected].0
83+
uses: mamba-org/[email protected].2
8484
with:
8585
environment-name: pygmt
8686
condarc: |
@@ -101,20 +101,21 @@ jobs:
101101
netCDF4
102102
packaging
103103
contextily
104-
geopandas<1.0
104+
geopandas
105105
ipython
106+
pyarrow
106107
rioxarray
107108
make
108109
pip
109110
python-build
110111
myst-nb
111112
panel
112-
sphinx
113+
sphinx>=6.2
113114
sphinx-autodoc-typehints
114115
sphinx-copybutton
115116
sphinx-design
116117
sphinx-gallery
117-
sphinx_rtd_theme
118+
sphinx_rtd_theme<3.0
118119
119120
# Download cached remote files (artifacts) from GitHub
120121
- name: Download remote data from GitHub
@@ -138,7 +139,7 @@ jobs:
138139
run: make -C doc clean all
139140

140141
- name: Checkout the gh-pages branch
141-
uses: actions/[email protected].1
142+
uses: actions/[email protected].2
142143
with:
143144
ref: gh-pages
144145
# Checkout to this folder instead of the current one

.github/workflows/ci_doctests.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,14 @@ jobs:
3535
steps:
3636
# Checkout current git repository
3737
- name: Checkout
38-
uses: actions/[email protected].1
38+
uses: actions/[email protected].2
3939
with:
4040
# fetch all history so that setuptools-scm works
4141
fetch-depth: 0
4242

4343
# Install Micromamba with conda-forge dependencies
4444
- name: Setup Micromamba
45-
uses: mamba-org/[email protected].0
45+
uses: mamba-org/[email protected].2
4646
with:
4747
environment-name: pygmt
4848
condarc: |

.github/workflows/ci_tests.yaml

+27-29
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
# Test PyGMT on Linux/macOS/Windows
22
#
3-
# This workflow runs regular PyGMT tests and uploads test coverage reports stored
4-
# in `.coverage.xml` to https://app.codecov.io/gh/GenericMappingTools/pygmt
5-
# via the [Codecov GitHub Action](https://github.com/codecov/codecov-action).
6-
# More codecov related configurations are stored in `.github/codecov.yml`.
7-
# If any tests fail, it also uploads the diff images as workflow artifacts.
3+
# This workflow runs regular PyGMT tests and uploads test coverage reports stored in
4+
# `.coverage.xml` to https://app.codecov.io/gh/GenericMappingTools/pygmt via the
5+
# [Codecov GitHub Action](https://github.com/codecov/codecov-action). More codecov
6+
# related configurations are stored in `.github/codecov.yml`. If any tests fail, it also
7+
# uploads the diff images as workflow artifacts.
88
#
99
# It is run:
1010
# 1. on every commit to the main branch
11-
# 2. on every commit to the pull request branches, unless the pull requests only
12-
# contain non-code changes.
11+
# 2. on every commit to the pull request branches, unless the pull requests only contain
12+
# non-code changes.
1313
# 3. when a new release is published
1414
#
1515
# It is also scheduled to run daily on the main branch.
1616
#
17-
# In draft pull request, only two jobs on Linux are triggered to save on
18-
# Continuous Integration resources:
17+
# In draft pull request, only jobs on Linux are triggered to save on Continuous
18+
# Integration resources:
1919
#
20-
# - Minimum supported Python, NumPy, pandas, Xarray versions following [SPEC 0](https://scientific-python.org/specs/spec-0000/)
21-
# - Latest Python, NumPy versions + optional packages (e.g. GeoPandas)
20+
# - Minimum supported Python + core packages (minimum supported versions)
21+
# + optional packages (minimum supported versions if any)
22+
# - Latest Python + core packages (latest versions) + optional packages
23+
# - Last release before the latest Python + core packages
2224
#
2325
name: Tests
2426

@@ -59,35 +61,32 @@ jobs:
5961
# Is it a draft Pull Request (true or false)?
6062
isDraft:
6163
- ${{ github.event.pull_request.draft }}
62-
# Only run two jobs (Ubuntu + Python 3.10/3.12) for draft PRs
64+
# Only run three jobs on Ubuntu for draft PRs
6365
exclude:
6466
- os: macos-latest
6567
isDraft: true
6668
- os: windows-latest
6769
isDraft: true
68-
# Pair Python 3.10 with the minimum supported versions of NumPy, pandas, Xarray
69-
# and Python 3.12 with the latest versions of NumPy, pandas, Xarray
70-
# Only install optional packages on Python 3.12
7170
include:
71+
# Python 3.10 + core packages (minimum supported versions) + optional packages (minimum supported versions if any)
7272
- python-version: '3.10'
7373
numpy-version: '1.24'
7474
pandas-version: '=2.0'
7575
xarray-version: '=2023.04'
76-
optional-packages: ''
76+
optional-packages: ' contextily geopandas<1 ipython pyarrow rioxarray sphinx-gallery'
77+
# Python 3.12 + core packages (latest versions) + optional packages
7778
- python-version: '3.12'
7879
numpy-version: '2.1'
7980
pandas-version: ''
8081
xarray-version: ''
81-
optional-packages: ' contextily geopandas ipython pyarrow rioxarray sphinx-gallery'
82-
# The job below is for testing GeoPandas v0.x on Ubuntu.
83-
# The python-version here can't be the versions in the matrix.python-version
84-
# defined above. Otherwise, other jobs will be overridden by this one.
82+
optional-packages: ' contextily geopandas>=1.0 ipython pyarrow rioxarray sphinx-gallery'
83+
# Python 3.11 + core packages (Linux only)
8584
- os: 'ubuntu-latest'
86-
python-version: '3.11' # Can't be 3.10 or 3.12.
87-
numpy-version: '1.24'
85+
python-version: '3.11'
86+
numpy-version: ''
8887
pandas-version: ''
8988
xarray-version: ''
90-
optional-packages: ' geopandas<1'
89+
optional-packages: ''
9190

9291
timeout-minutes: 30
9392
defaults:
@@ -103,7 +102,7 @@ jobs:
103102
steps:
104103
# Checkout current git repository
105104
- name: Checkout
106-
uses: actions/[email protected].1
105+
uses: actions/[email protected].2
107106
with:
108107
# fetch all history so that setuptools-scm works
109108
fetch-depth: 0
@@ -114,7 +113,7 @@ jobs:
114113

115114
# Install Micromamba with conda-forge dependencies
116115
- name: Setup Micromamba
117-
uses: mamba-org/[email protected].0
116+
uses: mamba-org/[email protected].2
118117
with:
119118
environment-name: pygmt
120119
condarc: |
@@ -143,7 +142,6 @@ jobs:
143142
pytest-doctestplus
144143
pytest-mpl
145144
pytest-rerunfailures
146-
pytest-xdist
147145
148146
# Download cached remote files (artifacts) from GitHub
149147
- name: Download remote data from GitHub
@@ -166,7 +164,7 @@ jobs:
166164

167165
# Run the regular tests
168166
- name: Run tests
169-
run: make test PYTEST_EXTRA="-r P -n auto --reruns 2"
167+
run: make test PYTEST_EXTRA="-r P --reruns 2"
170168

171169
# Upload diff images on test failure
172170
- name: Upload diff images if any test fails
@@ -178,10 +176,10 @@ jobs:
178176

179177
# Upload coverage to Codecov
180178
- name: Upload coverage to Codecov
181-
uses: codecov/codecov-action@v4.6.0
179+
uses: codecov/codecov-action@v5.0.7
182180
if: success() || failure()
183181
with:
184182
use_oidc: true
185-
file: ./coverage.xml # optional
183+
files: ./coverage.xml # optional
186184
env_vars: OS,PYTHON,NUMPY
187185
fail_ci_if_error: false

0 commit comments

Comments
 (0)