Skip to content

Commit

Permalink
Merge branch 'main' into remove/array-to-datetime
Browse files Browse the repository at this point in the history
  • Loading branch information
seisman committed Jan 9, 2025
2 parents a410357 + 5041384 commit 53288dc
Show file tree
Hide file tree
Showing 156 changed files with 2,990 additions and 943 deletions.
22 changes: 9 additions & 13 deletions .github/ISSUE_TEMPLATE/4-release_checklist.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: PyGMT release checklist
about: Checklist for a new PyGMT release.
about: Checklist for a new PyGMT release. [For project maintainers only!]
title: Release PyGMT vX.Y.Z
labels: maintenance
assignees: ''
Expand All @@ -19,17 +19,15 @@ assignees: ''

**Before release**:

- [ ] 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)
- [ ] 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)
- [ ] Review the ["PyGMT Team" page](https://www.pygmt.org/dev/team.html)
- [ ] README looks good on TestPyPI. Visit [TestPyPI](https://test.pypi.org/project/pygmt/#history), click the latest pre-release, and check the homepage.
- [ ] Check to ensure that:
- [ ] Deprecations and related tests are removed for this version by running `grep --include="*.py" -r vX.Y.Z` from the base of the repository
- [ ] Deprecated workarounds/codes/tests are removed. Run `grep "# TODO" **/*.py` to find all potential TODOs.
- [ ] All tests pass in the ["GMT Legacy Tests" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_tests_legacy.yaml)
- [ ] All tests pass in the ["GMT Dev Tests" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_tests_dev.yaml)
- [ ] All tests pass in the ["Doctests" workflow](https://github.com/GenericMappingTools/pygmt/actions/workflows/ci_doctests.yaml)
- [ ] 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
- [ ] 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
- [ ] Reserve a DOI on [Zenodo](https://zenodo.org) by clicking on "New Version"
- [ ] Finish up the "Changelog entry for v0.x.x" Pull Request (Use the previous changelog PR as a reference)
- [ ] Run `make codespell` to check common misspellings. If there are any, either fix them or add them to `ignore-words-list` in `pyproject.toml`
Expand All @@ -41,18 +39,16 @@ assignees: ''
- [ ] Edit the draft release notes with the finalized changelog
- [ ] Set the tag version and release title to vX.Y.Z
- [ ] Make a release by clicking the 'Publish Release' button, this will automatically create a tag too
- [ ] 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
- [ ] 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

**After release**:

- [ ] Update conda-forge [pygmt-feedstock](https://github.com/conda-forge/pygmt-feedstock)
[Done automatically by conda-forge's bot. Remember to pin Python and SPEC0 versions]
- [ ] 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]
- [ ] Bump PyGMT version on https://github.com/GenericMappingTools/try-gmt (after conda-forge update)
- [ ] Announce the release on:
- [ ] GMT [forum](https://forum.generic-mapping-tools.org/c/news/) (do this announcement first! Requires moderator status)
- [ ] [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)
- [ ] [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)
- [ ] Update release checklist template with any additional bullet points that may have arisen during the release

---

Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/5-bump_gmt_checklist.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: Bump GMT version checklist
about: Checklist for bumping the minimum required GMT version.
about: Checklist for bumping the minimum required GMT version. [For project maintainers only!]
title: Bump to GMT X.Y.Z
labels: maintenance
assignees: ''
Expand Down
1 change: 0 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ Fixes #
- [ ] Write detailed docstrings for all functions/methods.
- [ ] If wrapping a new module, open a 'Wrap new GMT module' issue and submit reasonably-sized PRs.
- [ ] If adding new functionality, add an example to docstrings or tutorials.
- [ ] Use underscores (not hyphens) in names of Python files and directories.

**Slash Commands**

Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:

# Install Micromamba with conda-forge dependencies
- name: Setup Micromamba
uses: mamba-org/[email protected].2
uses: mamba-org/[email protected].3
with:
environment-name: pygmt
condarc: |
Expand All @@ -58,14 +58,14 @@ jobs:
cache-environment-key: micromamba-environment-${{ steps.date.outputs.date }}
create-args: >-
gmt=6.5.0
python=3.12
python=3.13
numpy
pandas
xarray
netCDF4
packaging
geopandas
pyarrow
pyarrow-core
pytest
pytest-codspeed
pytest-mpl
Expand All @@ -87,7 +87,7 @@ jobs:

# Run the benchmark tests
- name: Run benchmarks
uses: CodSpeedHQ/action@v3.1.0
uses: CodSpeedHQ/action@v3.2.0
with:
# 'bash -el -c' is needed to use the custom shell.
# See https://github.com/CodSpeedHQ/action/issues/65.
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/cache_data.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,15 @@ jobs:

# Install Micromamba with conda-forge dependencies
- name: Setup Micromamba
uses: mamba-org/[email protected].2
uses: mamba-org/[email protected].3
with:
environment-name: pygmt
condarc: |
channels:
- conda-forge
- nodefaults
create-args: >-
python=3.12
python=3.13
gmt=6.5.0
numpy
pandas
Expand All @@ -76,7 +76,7 @@ jobs:

# Upload the downloaded files as artifacts to GitHub
- name: Upload artifacts to GitHub
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
with:
name: gmt-cache
include-hidden-files: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/check-links.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:

- name: Link Checker
id: lychee
uses: lycheeverse/lychee-action@v2.1.0
uses: lycheeverse/lychee-action@v2.2.0
with:
fail: false # Don't fail action on broken links
output: /tmp/lychee-out.md
Expand Down
22 changes: 14 additions & 8 deletions .github/workflows/ci_docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
# Is it a draft Pull Request (true or false)?
isDraft:
- ${{ github.event.pull_request.draft }}
# Only run one job (Ubuntu + Python 3.12) for draft PRs
# Only run jobs on Ubuntu for draft PRs
exclude:
- os: macos-latest
isDraft: true
Expand All @@ -80,7 +80,7 @@ jobs:

# Install Micromamba with conda-forge dependencies
- name: Setup Micromamba
uses: mamba-org/[email protected].2
uses: mamba-org/[email protected].3
with:
environment-name: pygmt
condarc: |
Expand All @@ -92,7 +92,7 @@ jobs:
# environment cache is persistent for one week.
cache-environment-key: micromamba-environment-${{ steps.date.outputs.date }}
create-args: >-
python=3.12
python=3.13
gmt=6.5.0
ghostscript=10.04.0
numpy
Expand All @@ -101,16 +101,17 @@ jobs:
netCDF4
packaging
contextily
geopandas<1.0
geopandas
ipython
pyarrow
pyarrow-core
rioxarray
make
pip
python-build
geodatasets
myst-nb
panel
sphinx
sphinx>=6.2
sphinx-autodoc-typehints
sphinx-copybutton
sphinx-design
Expand Down Expand Up @@ -162,9 +163,14 @@ jobs:
# to get the right commit hash.
message="Deploy $version from $(git rev-parse --short HEAD)"
cd deploy
# Need to have this file so that GitHub doesn't try to run Jekyll
# Create some files in the root directory.
# .nojekyll: Need to have this file so that GitHub doesn't try to run Jekyll
touch .nojekyll
# Delete all the files and replace with our new set
# CNAME: Set the custom domain name
echo "www.pygmt.org" > CNAME
# index.html: Redirect to the latest version
echo '<meta http-equiv="Refresh" content="0;url=latest/"/>' > index.html
# Delete all the files and replace with our new set
echo -e "\nRemoving old files from previous builds of ${version}:"
rm -rvf ${version}
echo -e "\nCopying HTML files to ${version}:"
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/ci_doctests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,15 @@ jobs:

# Install Micromamba with conda-forge dependencies
- name: Setup Micromamba
uses: mamba-org/[email protected].2
uses: mamba-org/[email protected].3
with:
environment-name: pygmt
condarc: |
channels:
- conda-forge
- nodefaults
create-args: >-
python=3.12
python=3.13
gmt=6.5.0
numpy
pandas
Expand All @@ -60,7 +60,7 @@ jobs:
contextily
geopandas
ipython
pyarrow
pyarrow-core
rioxarray
make
pip
Expand Down
41 changes: 25 additions & 16 deletions .github/workflows/ci_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ['3.10', '3.12']
python-version: ['3.11', '3.13']
os: [ubuntu-latest, macos-latest, windows-latest]
# Is it a draft Pull Request (true or false)?
isDraft:
Expand All @@ -68,21 +68,21 @@ jobs:
- os: windows-latest
isDraft: true
include:
# Python 3.10 + core packages (minimum supported versions) + optional packages (minimum supported versions if any)
- python-version: '3.10'
numpy-version: '1.24'
# Python 3.11 + core packages (minimum supported versions) + optional packages (minimum supported versions if any)
- python-version: '3.11'
numpy-version: '1.25'
pandas-version: '=2.0'
xarray-version: '=2023.04'
optional-packages: ' contextily geopandas<1 ipython pyarrow rioxarray sphinx-gallery'
# Python 3.12 + core packages (latest versions) + optional packages
- python-version: '3.12'
numpy-version: '2.1'
optional-packages: ' contextily geopandas<1 ipython pyarrow-core rioxarray sphinx-gallery'
# Python 3.13 + core packages (latest versions) + optional packages
- python-version: '3.13'
numpy-version: '2.2'
pandas-version: ''
xarray-version: ''
optional-packages: ' contextily geopandas>=1.0 ipython pyarrow rioxarray sphinx-gallery'
# Python 3.11 + core packages (Linux only)
optional-packages: ' contextily geopandas>=1.0 ipython pyarrow-core rioxarray sphinx-gallery'
# Python 3.12 + core packages (Linux only)
- os: 'ubuntu-latest'
python-version: '3.11'
python-version: '3.12'
numpy-version: ''
pandas-version: ''
xarray-version: ''
Expand Down Expand Up @@ -113,7 +113,7 @@ jobs:

# Install Micromamba with conda-forge dependencies
- name: Setup Micromamba
uses: mamba-org/[email protected].2
uses: mamba-org/[email protected].3
with:
environment-name: pygmt
condarc: |
Expand All @@ -133,7 +133,6 @@ jobs:
xarray${{ matrix.xarray-version }}
netCDF4
packaging
dvc
make
pip
python-build
Expand All @@ -154,9 +153,19 @@ jobs:
env:
GH_TOKEN: ${{ github.token }}

- name: Install uv
uses: astral-sh/[email protected]
with:
python-version: ${{ matrix.python-version }}

- name: Install dvc
run: |
uv pip install dvc
uv pip list
# Pull baseline image data from dvc remote (DAGsHub)
- name: Pull baseline image data from dvc remote
run: dvc pull --no-run-cache --verbose && ls -lhR pygmt/tests/baseline/
run: uv run dvc pull --no-run-cache --verbose && ls -lhR pygmt/tests/baseline/

# Install the package that we want to test
- name: Install the package
Expand All @@ -168,15 +177,15 @@ jobs:

# Upload diff images on test failure
- name: Upload diff images if any test fails
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
if: failure()
with:
name: artifact-${{ runner.os }}-${{ matrix.python-version }}
path: tmp-test-dir-with-unique-name

# Upload coverage to Codecov
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5.0.7
uses: codecov/codecov-action@v5.1.2
if: success() || failure()
with:
use_oidc: true
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/ci_tests_dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, macos-15, windows-2022]
os: [ubuntu-24.04, macos-15, windows-2025]
gmt_git_ref: [master]
timeout-minutes: 30
defaults:
Expand All @@ -57,7 +57,7 @@ jobs:

# Install Micromamba with conda-forge dependencies
- name: Setup Micromamba
uses: mamba-org/[email protected].2
uses: mamba-org/[email protected].3
with:
environment-name: pygmt
condarc: |
Expand All @@ -69,7 +69,7 @@ jobs:
# environment cache is persistent for one week.
cache-environment-key: micromamba-environment-${{ steps.date.outputs.date }}
create-args: >-
python=3.12
python=3.13
cmake
make
ninja
Expand Down Expand Up @@ -187,7 +187,7 @@ jobs:

# Upload diff images on test failure
- name: Upload diff images if any test fails
uses: actions/upload-artifact@v4.4.3
uses: actions/upload-artifact@v4.5.0
if: ${{ failure() }}
with:
name: artifact-GMT-${{ matrix.gmt_git_ref }}-${{ runner.os }}
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/ci_tests_legacy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,15 @@ jobs:

# Install Micromamba with conda-forge dependencies
- name: Setup Micromamba
uses: mamba-org/[email protected].2
uses: mamba-org/[email protected].3
with:
environment-name: pygmt
condarc: |
channels:
- conda-forge
- nodefaults
create-args: >-
python=3.10
python=3.11
gmt=${{ matrix.gmt_version }}
ghostscript<10
numpy<2
Expand All @@ -70,7 +70,7 @@ jobs:
contextily
geopandas
ipython
pyarrow
pyarrow-core
rioxarray
sphinx-gallery
make
Expand Down
Loading

0 comments on commit 53288dc

Please sign in to comment.