Skip to content

Commit 06a5975

Browse files
committed
Merge branch 'main' into feature/direction_rose
2 parents 4b8fa9f + b4a94d7 commit 06a5975

File tree

126 files changed

+2479
-1673
lines changed

Some content is hidden

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

126 files changed

+2479
-1673
lines changed

.github/ISSUE_TEMPLATE/2-feature_request.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Feature request - General feature
1+
name: Feature request
22
description: Request the addition of a new feature/functionality
33
labels: ["feature request"]
44
body:
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
name: Wrapper for a GMT module
3+
about: Track the progress of wrapping a GMT module. [For project maintainers only!]
4+
title: "Wrapper: Description of the module"
5+
labels: ["feature request"]
6+
7+
---
8+
9+
*This issue serves as the central place for discussing and tracking the implementation of the `<wrapper>` method in PyGMT. The issue will be closed when the initial implementation is complete. Progress is tracked at https://github.com/orgs/GenericMappingTools/projects/3.*
10+
11+
## Documentation
12+
13+
- GMT: https://docs.generic-mapping-tools.org/dev/<module>.html
14+
- GMT.jl: https://www.generic-mapping-tools.org/GMTjl_doc/documentation/modules/<module>
15+
- PyGMT: https://www.pygmt.org/dev/api/generated/<wrapper>.html
16+
17+
## GMT Option Flags and Modifiers
18+
19+
☑️: *Implemented*; ⬜: *To be implemented/discussed*; ~~Strikethrough~~: *Won't implement*.
20+
21+
- [ ] `-B`: `frame`
22+
- [ ] `-J`: `projection`
23+
- [ ] `-R`: `region`
24+
- [ ] ...
25+
- [ ] ~~`-U`~~: Use `Figure.timestamp` instead.
26+
- [ ] `-V`: `verbose`
27+
- [ ] ~~`-X`/`-Y`~~: Use `Figure.shift_origin` instead.
28+
- [ ] ~~`--PAR=value`~~: Use `pygmt.config` instead.
29+
30+
## Notes on Input Formats
31+
32+
*Add any notes on the input formats, especially the meaning of columns.*
33+
34+
## Linked Pull Requests
35+
36+
- [ ] Initial feature implementation
37+
- [ ] Add a tutorial or gallery example
38+
39+
## Related Issues and Discussions
40+
41+
*Add links to related wrapper discussions, API design threads, or upstream GMT changes here.*

.github/ISSUE_TEMPLATE/3-module_request.yaml

Lines changed: 0 additions & 41 deletions
This file was deleted.

.github/ISSUE_TEMPLATE/4-release_checklist.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ assignees: ''
2424
- [ ] Review the ["PyGMT Team" page](https://www.pygmt.org/dev/team.html)
2525
- [ ] README looks good on TestPyPI. Visit [TestPyPI](https://test.pypi.org/project/pygmt/#history), click the latest pre-release, and check the homepage.
2626
- [ ] Check to ensure that:
27-
- [ ] Deprecated workarounds/codes/tests are removed. Run `grep "# TODO" **/*.py` to find all potential TODOs.
27+
- [ ] Deprecated workarounds/codes/tests are removed. Run `grep -r "# TODO" --include="*.py" .` to find all potential TODOs.
2828
- [ ] All tests pass in the ["GMT Legacy Tests" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_tests_legacy.yaml)
2929
- [ ] All tests pass in the ["GMT Dev Tests" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_tests_dev.yaml)
3030
- [ ] All tests pass in the ["Doctests" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_doctests.yaml)

.github/ISSUE_TEMPLATE/5-bump_gmt_checklist.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ assignees: ''
77

88
---
99

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:
13-
14-
`mamba install -c conda-forge gmt=X.Y.Z`
10+
:tada: [GMT X.Y.Z](https://github.com/GenericMappingTools/gmt/releases/tag/X.Y.Z) has been released! It is installable from the [conda-forge channel](https://anaconda.org/conda-forge/gmt/files) using the following command:
11+
```
12+
mamba install -c conda-forge gmt=X.Y.Z
13+
```
1514

1615
<!-- Please add specific checklist items for the tests, xfail pytest markers, and deprecated syntax that need to be updated. -->
1716

@@ -29,13 +28,19 @@ using the following command:
2928
- [ ] Update GMT 6.x minor version for `extlinks` urls in `doc/conf.py`
3029
- [ ] Fix failing tests (1 or more PRs)
3130
- [ ] Fix failing doctests reported in the ["Doctest" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_doctests.yaml)
32-
- [ ] 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
31+
- [ ] Run `grep -r "# TODO(GMT.*)" --include="*.py" .` to find TODO items related to GMT
32+
- [ ] Remove related workarounds/patches
33+
- [ ] Fix tests with pytest `xfail`/`skipif` markers that now pass
34+
- [ ] Update this checklist if necessary
3335

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

3638
- [ ] Bump the minimum required GMT version (1 PR)
3739
- [ ] Update `required_gmt_version` in `pygmt/clib/__init__.py`
3840
- [ ] Remove unsupported GMT version from `.github/workflows/ci_tests_legacy.yaml`
3941
- [ ] Ensure minimum required version is correct in `doc/minversions.md`
40-
- [ ] 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
42+
- [ ] Run `grep -r "# TODO(GMT.*)" --include="*.py" .` to find TODO items related to GMT
43+
- [ ] Remove related workarounds/patches
44+
- [ ] Fix tests with pytest `xfail`/`skipif` markers that now pass
4145
- [ ] Update deprecated syntax in source code and examples based on the [GMT Changelog](https://docs.generic-mapping-tools.org/latest/changes.html)
46+
- [ ] Update this checklist if necessary

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,11 @@ Fixes #
1111
<!-- If significant changes to the documentation are made, please insert the link to the documentation page after it has been built. -->
1212
**Preview**:
1313

14+
**Guidelines**
1415

15-
**Reminders**
16-
17-
- [ ] Run `make format` and `make check` to make sure the code follows the style guide.
18-
- [ ] Add tests for new features or tests that would have caught the bug that you're fixing.
19-
- [ ] Add new public functions/methods/classes to `doc/api/index.rst`.
20-
- [ ] Write detailed docstrings for all functions/methods.
21-
- [ ] If wrapping a new module, open a 'Wrap new GMT module' issue and submit reasonably-sized PRs.
22-
- [ ] If adding new functionality, add an example to docstrings or tutorials.
16+
- [General Guidelines for Pull Request](https://www.pygmt.org/dev/contributing.html#general-guidelines-for-making-a-pull-request-pr)
17+
- [Guidelines for Contributing Documentation](https://www.pygmt.org/dev/contributing.html#contributing-documentation)
18+
- [Guidelines for Contributing Code](https://www.pygmt.org/dev/contributing.html#contributing-code)
2319

2420
**Slash Commands**
2521

.github/workflows/benchmarks.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
steps:
3737
# Checkout current git repository
3838
- name: Checkout
39-
uses: actions/checkout@v5.0.0
39+
uses: actions/checkout@v6.0.1
4040
with:
4141
# fetch all history so that setuptools-scm works
4242
fetch-depth: 0
@@ -56,7 +56,7 @@ jobs:
5656
cache-environment-key: micromamba-environment-${{ steps.date.outputs.date }}
5757
create-args: >-
5858
gmt=6.6.0
59-
python=3.13
59+
python=3.14
6060
numpy
6161
pandas
6262
xarray
@@ -84,7 +84,7 @@ jobs:
8484

8585
# Run the benchmark tests
8686
- name: Run benchmarks
87-
uses: CodSpeedHQ/action@6b43a0cd438f6ca5ad26f9ed03ed159ed2df7da9 # v4.1.1
87+
uses: CodSpeedHQ/action@6a8e2b874c338bf81cc5e8be715ada75908d3871 # v4.3.4
8888
with:
8989
mode: "instrumentation"
9090
# 'bash -el -c' is needed to use the custom shell.

.github/workflows/cache_data.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
steps:
3939
# Checkout current git repository
4040
- name: Checkout
41-
uses: actions/checkout@v5.0.0
41+
uses: actions/checkout@v6.0.1
4242
with:
4343
# fetch all history so that setuptools-scm works
4444
fetch-depth: 0
@@ -50,7 +50,7 @@ jobs:
5050
with:
5151
environment-name: pygmt
5252
create-args: >-
53-
python=3.13
53+
python=3.14
5454
gmt=6.6.0
5555
numpy
5656
pandas
@@ -74,7 +74,7 @@ jobs:
7474

7575
# Upload the downloaded files as artifacts to GitHub
7676
- name: Upload artifacts to GitHub
77-
uses: actions/upload-artifact@v4.6.2
77+
uses: actions/upload-artifact@v5.0.0
7878
with:
7979
name: gmt-cache
8080
include-hidden-files: true

.github/workflows/cache_dvc.yaml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Cache baseline images tracked by DVC and upload as artifacts.
2+
#
3+
# This workflow downloads dvc cache needed by PyGMT tests and uploads them as workflow
4+
# artifacts, which can then be accessed by other GitHub Actions workflows.
5+
#
6+
# This workflow serves as a workaround for the DagsHub authentication issue that
7+
# prevents PRs from forks to access the DVC remote.
8+
# Related issue: https://github.com/GenericMappingTools/pygmt/issues/4147
9+
#
10+
# It is scheduled to run every Sunday at 12:00 (UTC) and on the main branch if there are
11+
# any changes to the baseline images.
12+
#
13+
name: Cache DVC
14+
15+
on:
16+
push:
17+
branches: [ main ]
18+
paths:
19+
- 'pygmt/tests/baseline/*.png.dvc'
20+
# pull_request: # For testing only.
21+
workflow_dispatch:
22+
# Schedule runs on 12 noon every Sunday
23+
schedule:
24+
- cron: '0 12 * * 0'
25+
26+
permissions: {}
27+
28+
jobs:
29+
dvc_cache:
30+
name: Cache DVC baseline images
31+
runs-on: ubuntu-latest
32+
defaults:
33+
run:
34+
shell: bash -l {0}
35+
36+
steps:
37+
- name: Checkout
38+
uses: actions/checkout@v6.0.1
39+
with:
40+
# fetch all history so that setuptools-scm works
41+
fetch-depth: 0
42+
persist-credentials: false
43+
44+
- name: Setup data version control (DVC)
45+
uses: iterative/setup-dvc@175771be1dc3d119268e00a896b52a4b77decb5e # v1.2.0
46+
47+
- name: Pull baseline image data from dvc remote
48+
env:
49+
DAGSHUB_TOKEN: ${{ secrets.DAGSHUB_TOKEN }}
50+
run: |
51+
dvc remote modify upstream url https://${DAGSHUB_TOKEN}@dagshub.com/GenericMappingTools/pygmt.dvc --local
52+
dvc pull --no-run-cache --verbose && ls -lhR pygmt/tests/baseline/
53+
54+
- name: Upload DVC cache as artifacts to GitHub
55+
uses: actions/upload-artifact@v5.0.0
56+
with:
57+
name: dvc-cache
58+
include-hidden-files: true
59+
path: .dvc/cache/

.github/workflows/check-links.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,21 @@ jobs:
2626

2727
steps:
2828
- name: Checkout the repository
29-
uses: actions/checkout@v5.0.0
29+
uses: actions/checkout@v6.0.1
3030
with:
3131
path: repository
3232
persist-credentials: false
3333

3434
- name: Checkout the documentation
35-
uses: actions/checkout@v5.0.0
35+
uses: actions/checkout@v6.0.1
3636
with:
3737
ref: gh-pages
3838
path: documentation
3939
persist-credentials: false
4040

4141
- name: Link Checker
4242
id: lychee
43-
uses: lycheeverse/lychee-action@885c65f3dc543b57c898c8099f4e08c8afd178a2 # v2.6.1
43+
uses: lycheeverse/lychee-action@a8c4c7cb88f0c7386610c35eb25108e448569cb0 # v2.7.0
4444
with:
4545
fail: false # Don't fail action on broken links
4646
output: /tmp/lychee-out.md

0 commit comments

Comments
 (0)