Skip to content

Commit 63c441d

Browse files
committed
Merge branch 'main' into options
2 parents 2d83fee + 0607bc5 commit 63c441d

File tree

298 files changed

+3298
-1945
lines changed

Some content is hidden

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

298 files changed

+3298
-1945
lines changed

.github/ISSUE_TEMPLATE/bump_gmt_checklist.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ assignees: ''
77

88
---
99

10-
:tada: [GMT X.Y.Z](https://github.com/GenericMappingTools/gmt/releases/tag/X.Y.Z) has been released! It is installable from the
11-
[conda-forge channel](https://anaconda.org/conda-forge/gmt/files) using the following command:
10+
:tada: [GMT X.Y.Z](https://github.com/GenericMappingTools/gmt/releases/tag/X.Y.Z) has been released!
11+
It is installable from the [conda-forge channel](https://anaconda.org/conda-forge/gmt/files)
12+
using the following command:
1213

1314
`mamba install -c conda-forge gmt=X.Y.Z`
1415

@@ -28,14 +29,15 @@ assignees: ''
2829
- [ ] Update GMT 6.x minor version for `extlinks` urls in `doc/conf.py`
2930
- [ ] Update GMT 6.x minor version in `.github/workflows/check-links.yml`
3031
- [ ] Fix failing tests (1 or more PRs)
32+
- [ ] Fix failing doctests reported in the ["Doctest" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_doctests.yaml)
3133
- [ ] Fix [xfail](https://docs.pytest.org/en/stable/skipping.html#xfail-mark-test-functions-as-expected-to-fail) pytest markers on tests that are now xpass
3234

3335
**To-Do for bumping the minimum required GMT version**:
3436

3537
- [ ] Bump the minimum required GMT version (1 PR)
3638
- [ ] Update `required_version` in `pygmt/clib/session.py`
3739
- [ ] Update `test_get_default` in `pygmt/tests/test_clib.py`
38-
- [ ] Update compatibility table in `README.rst`
40+
- [ ] Update minimum required versions in `doc/minversions.md`
3941
- [ ] Remove unsupported GMT version from `.github/workflows/ci_tests_legacy.yaml`
4042
- [ ] Remove [xfail](https://docs.pytest.org/en/stable/skipping.html#xfail-mark-test-functions-as-expected-to-fail) pytest markers on tests that are now xpass
4143
- [ ] Update deprecated syntax in source code and examples based on the [GMT Changelog](https://docs.generic-mapping-tools.org/latest/changes.html)

.github/ISSUE_TEMPLATE/release_checklist.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@ assignees: ''
1616
- [ ] Wrap Y ()
1717

1818
**Before release**:
19-
- [ ] Check [NEP29](https://numpy.org/neps/nep-0029-deprecation_policy.html) to see if we need to bump the minimum Python and NumPy versions
19+
- [ ] Check [SPEC 0](https://scientific-python.org/specs/spec-0000/) to see if we need to bump the minimum supported versions of Python and core package dependencies (NumPy/Pandas/Xarray)
2020
- [ ] Run `make codespell` to check common misspellings. If there are any, either fix them or add them to `ignore-words-list` in `pyproject.toml`
2121
- [ ] Check to ensure that:
2222
- [ ] All tests pass in the ["GMT Legacy Tests" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_tests_legacy.yaml)
2323
- [ ] All tests pass in the ["GMT Dev Tests" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_tests_dev.yaml)
24+
- [ ] All tests pass in the ["Doctests" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_doctests.yaml)
2425
- [ ] 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
2526
- [ ] Reserve a DOI on [Zenodo](https://zenodo.org) by clicking on "New Version"
2627
- [ ] Finish up 'Changelog entry for v0.x.x' Pull Request:
@@ -30,8 +31,8 @@ assignees: ''
3031
- [ ] Update DOI (and url for BibTeX)
3132
- [ ] Update version
3233
- [ ] Update date released
33-
- [ ] Add the documentation link https://github.com/GenericMappingTools/pygmt#compatibility-with-gmtpythonnumpy-versions
34-
- [ ] Add compatibility information https://github.com/GenericMappingTools/pygmt#compatibility-with-gmtpythonnumpy-versions
34+
- [ ] Add the documentation link `doc/minversions.md`
35+
- [ ] Add minimum required version information `doc/minversions.md`
3536
- [ ] 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))
3637

3738
**Release**:
@@ -47,7 +48,6 @@ assignees: ''
4748
- [ ] Announce the release on:
4849
- [ ] GMT [forum](https://forum.generic-mapping-tools.org/c/news/) (do this announcement first! draft on https://hackmd.io/@pygmt. requires moderator status)
4950
- [ ] [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)
50-
- [ ] [Twitter](https://twitter.com/gmt_dev) (after forum announcement)
5151
---
5252

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

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ Fixes #
2121
**Slash Commands**
2222

2323
You can write slash commands (`/command`) in the first line of a comment to perform
24-
specific operations. Supported slash commands are:
24+
specific operations. Supported slash command is:
2525

2626
- `/format`: automatically format and lint the code
27-
- `/test-gmt-dev`: run full tests on the latest GMT development version

.github/release-drafter.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ template: |
5353
5454
$CHANGES
5555
56-
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION
56+
**Full Changelog**: <https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION>
5757
5858
### Contributors
5959

.github/workflows/benchmarks.yml

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,10 @@ on:
1111
branches: [ main ]
1212
paths:
1313
- 'pygmt/**/*.py'
14-
- '!pygmt/tests/**'
1514
- '.github/workflows/benchmarks.yml'
15+
# Run in PRs but only if the PR has the 'run/benchmark' label
1616
pull_request:
17-
paths:
18-
- 'pygmt/**/*.py'
19-
- '!pygmt/tests/**'
20-
- '.github/workflows/benchmarks.yml'
17+
types: [ opened, reopened, labeled, synchronize ]
2118
# `workflow_dispatch` allows CodSpeed to trigger backtest
2219
# performance analysis in order to generate initial data.
2320
workflow_dispatch:
@@ -32,6 +29,7 @@ concurrency:
3229
jobs:
3330
benchmarks:
3431
runs-on: ubuntu-22.04
32+
if: github.repository == 'GenericMappingTools/pygmt' && (github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'run/benchmark'))
3533
defaults:
3634
run:
3735
shell: bash -l {0}
@@ -59,14 +57,14 @@ jobs:
5957
# $CONDA is an environment variable pointing to the root of the miniconda directory
6058
# Preprend $CONDA/bin to $PATH so that conda's python is used over system python
6159
echo $CONDA/bin >> $GITHUB_PATH
62-
conda install --solver=libmamba gmt=6.4.0 python=3.12 \
60+
conda install --solver=libmamba gmt=6.5.0 python=3.12 \
6361
numpy pandas xarray netCDF4 packaging \
64-
geopandas pytest pytest-mpl
62+
geopandas pyarrow pytest pytest-mpl
6563
python -m pip install -U pytest-codspeed setuptools
6664
6765
# Download cached remote files (artifacts) from GitHub
6866
- name: Download remote data from GitHub
69-
uses: dawidd6/action-download-artifact@v3.0.0
67+
uses: dawidd6/action-download-artifact@v3.1.1
7068
with:
7169
workflow: cache_data.yaml
7270
workflow_conclusion: success
@@ -79,7 +77,7 @@ jobs:
7977
mkdir -p ~/.gmt
8078
mv .gmt/* ~/.gmt
8179
# Change modification times of the two files, so GMT won't refresh it
82-
touch ~/.gmt/server/gmt_data_server.txt ~/.gmt/server/gmt_hash_server.txt
80+
touch ~/.gmt/gmt_data_server.txt ~/.gmt/gmt_hash_server.txt
8381
ls -lhR ~/.gmt
8482
8583
# Install the package that we want to test
@@ -88,7 +86,7 @@ jobs:
8886

8987
# Run the benchmark tests
9088
- name: Run benchmarks
91-
uses: CodSpeedHQ/action@v2.0.2
89+
uses: CodSpeedHQ/action@v2.1.1
9290
with:
9391
run: |
9492
python -c "import pygmt; pygmt.show_versions()"

.github/workflows/cache_data.yaml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
# by other GitHub Actions workflows.
66
#
77
# It is scheduled to run every Sunday at 12:00 (UTC). If new remote files are
8-
# needed urgently, maintainers can update the workflow file or
8+
# needed urgently, maintainers can update the workflow file or the
99
# 'pygmt/helpers/caching.py' file to refresh the cache.
1010
#
1111
name: Cache data
1212

1313
on:
1414
pull_request:
15-
# Make any changes to the following files to refresh the cache
15+
# Make any changes to the following files to refresh the cache in PRs
1616
paths:
1717
- 'pygmt/helpers/caching.py'
1818
- '.github/workflows/cache_data.yaml'
@@ -38,7 +38,7 @@ jobs:
3838

3939
# Install Micromamba with conda-forge dependencies
4040
- name: Setup Micromamba
41-
uses: mamba-org/setup-micromamba@v1.7.3
41+
uses: mamba-org/setup-micromamba@v1.8.0
4242
with:
4343
environment-name: pygmt
4444
condarc: |
@@ -47,7 +47,7 @@ jobs:
4747
- nodefaults
4848
create-args: >-
4949
python=3.12
50-
gmt=6.4.0
50+
gmt=6.5.0
5151
numpy
5252
pandas
5353
xarray
@@ -66,6 +66,9 @@ jobs:
6666
run: |
6767
python -c "from pygmt.helpers.caching import cache_data; cache_data()"
6868
69+
- name: List downloaded remote files
70+
run: ls -lhR ~/.gmt
71+
6972
# Upload the downloaded files as artifacts to GitHub
7073
- name: Upload artifacts to GitHub
7174
uses: actions/upload-artifact@v4
@@ -74,3 +77,5 @@ jobs:
7477
path: |
7578
~/.gmt/cache
7679
~/.gmt/server
80+
~/.gmt/gmt_data_server.txt
81+
~/.gmt/gmt_hash_server.txt

.github/workflows/check-links.yml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jobs:
1818
check_links:
1919
name: Check Links
2020
runs-on: ubuntu-latest
21+
if: github.repository == 'GenericMappingTools/pygmt'
2122

2223
steps:
2324
- name: Checkout the repository
@@ -33,7 +34,7 @@ jobs:
3334

3435
- name: Link Checker
3536
id: lychee
36-
uses: lycheeverse/lychee-action@v1.8.0
37+
uses: lycheeverse/lychee-action@v1.9.3
3738
with:
3839
# 429: Too many requests
3940
args: >
@@ -47,29 +48,26 @@ jobs:
4748
--exclude "^https://github.com/GenericMappingTools/gmt/releases/tag/X.Y.Z$"
4849
--exclude "^git"
4950
--exclude "^file://"
50-
--exclude "^https://docs.generic-mapping-tools.org/6.4/%s$"
51-
--exclude "^https://docs.generic-mapping-tools.org/6.4/%3Cmodule-name%3E.html$"
51+
--exclude "^https://docs.generic-mapping-tools.org/6.5/%s$"
52+
--exclude "^https://docs.generic-mapping-tools.org/6.5/%3Cmodule-name%3E.html$"
5253
--exclude "^https://www.generic-mapping-tools.org/remote-datasets/%s$"
5354
--exclude "^https://hackmd.io/@pygmt"
5455
--exclude "^https://doi.org"
5556
--exclude "^https://www.researchgate.net/project/"
5657
--exclude "^https://test.pypi.org/simple/"
57-
--exclude "^https://twitter.com/"
5858
--verbose
5959
"repository/**/*.rst"
6060
"repository/**/*.md"
6161
"repository/**/*.py"
6262
"documentation/dev/**/*.html"
63-
env:
64-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6563
6664
- name: Get current date
6765
id: date
6866
run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
6967

7068
- name: Create Issue From File
7169
if: env.lychee_exit_code != 0
72-
uses: peter-evans/create-issue-from-file@v4
70+
uses: peter-evans/create-issue-from-file@v5
7371
with:
7472
title: Link Checker Report on ${{ steps.date.outputs.date }}
7573
content-filepath: ./lychee/out.md

.github/workflows/ci_docs.yml

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,22 @@ name: Docs
1818
on:
1919
push:
2020
branches: [ main ]
21+
paths:
22+
- 'pygmt/**/*.py'
23+
- '!pygmt/tests/**'
24+
- 'doc/**'
25+
- 'examples/**'
26+
- 'README.md'
27+
- '.github/workflows/ci_docs.yml'
2128
pull_request:
2229
types: [opened, reopened, synchronize, ready_for_review]
23-
paths-ignore:
24-
- 'pygmt/tests/**'
25-
- '*.md'
26-
- 'LICENSE.txt'
27-
- '.gitignore'
30+
paths:
31+
- 'pygmt/**/*.py'
32+
- '!pygmt/tests/**'
33+
- 'doc/**'
34+
- 'examples/**'
35+
- 'README.md'
36+
- '.github/workflows/ci_docs.yml'
2837
release:
2938
types:
3039
- published
@@ -37,6 +46,7 @@ jobs:
3746
docs:
3847
name: ${{ matrix.os }}
3948
runs-on: ${{ matrix.os }}
49+
if: github.repository == 'GenericMappingTools/pygmt'
4050
strategy:
4151
fail-fast: false
4252
matrix:
@@ -65,7 +75,7 @@ jobs:
6575

6676
# Install Micromamba with conda-forge dependencies
6777
- name: Setup Micromamba
68-
uses: mamba-org/setup-micromamba@v1.7.3
78+
uses: mamba-org/setup-micromamba@v1.8.0
6979
with:
7080
environment-name: pygmt
7181
condarc: |
@@ -76,8 +86,8 @@ jobs:
7686
cache-environment: true
7787
create-args: >-
7888
python=3.12
79-
gmt=6.4.0
80-
ghostscript=9.54.0
89+
gmt=6.5.0
90+
ghostscript=10.02.1
8191
numpy
8292
pandas
8393
xarray
@@ -101,7 +111,7 @@ jobs:
101111
102112
# Download cached remote files (artifacts) from GitHub
103113
- name: Download remote data from GitHub
104-
uses: dawidd6/action-download-artifact@v3.0.0
114+
uses: dawidd6/action-download-artifact@v3.1.1
105115
with:
106116
workflow: cache_data.yaml
107117
workflow_conclusion: success
@@ -114,7 +124,7 @@ jobs:
114124
mkdir -p ~/.gmt
115125
mv .gmt/* ~/.gmt
116126
# Change modification times of the two files, so GMT won't refresh it
117-
touch ~/.gmt/server/gmt_data_server.txt ~/.gmt/server/gmt_hash_server.txt
127+
touch ~/.gmt/gmt_data_server.txt ~/.gmt/gmt_hash_server.txt
118128
ls -lhR ~/.gmt
119129
120130
# Install the package that we want to test

.github/workflows/ci_doctests.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ jobs:
2121
test:
2222
name: ${{ matrix.os }}
2323
runs-on: ${{ matrix.os }}
24+
if: github.repository == 'GenericMappingTools/pygmt'
2425
strategy:
2526
fail-fast: false
2627
matrix:
@@ -40,7 +41,7 @@ jobs:
4041

4142
# Install Micromamba with conda-forge dependencies
4243
- name: Setup Micromamba
43-
uses: mamba-org/setup-micromamba@v1.7.3
44+
uses: mamba-org/setup-micromamba@v1.8.0
4445
with:
4546
environment-name: pygmt
4647
condarc: |
@@ -49,7 +50,7 @@ jobs:
4950
- nodefaults
5051
create-args: >-
5152
python=3.12
52-
gmt=6.4.0
53+
gmt=6.5.0
5354
numpy
5455
pandas
5556
xarray
@@ -69,7 +70,7 @@ jobs:
6970
7071
# Download cached remote files (artifacts) from GitHub
7172
- name: Download remote data from GitHub
72-
uses: dawidd6/action-download-artifact@v3.0.0
73+
uses: dawidd6/action-download-artifact@v3.1.1
7374
with:
7475
workflow: cache_data.yaml
7576
workflow_conclusion: success
@@ -82,7 +83,7 @@ jobs:
8283
mkdir -p ~/.gmt
8384
mv .gmt/* ~/.gmt
8485
# Change modification times of the two files, so GMT won't refresh it
85-
touch ~/.gmt/server/gmt_data_server.txt ~/.gmt/server/gmt_hash_server.txt
86+
touch ~/.gmt/gmt_data_server.txt ~/.gmt/gmt_hash_server.txt
8687
ls -lhR ~/.gmt
8788
8889
# Install the package that we want to test

0 commit comments

Comments
 (0)