Skip to content

Commit

Permalink
Merge branch 'main' into datatypes/gmtcube
Browse files Browse the repository at this point in the history
  • Loading branch information
seisman committed Sep 19, 2024
2 parents 087912d + 5196ae6 commit 9b87e6d
Show file tree
Hide file tree
Showing 70 changed files with 1,151 additions and 654 deletions.
42 changes: 22 additions & 20 deletions .github/ISSUE_TEMPLATE/4-release_checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,49 +8,51 @@ assignees: ''
---

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

**Priority PRs/issues to complete prior to release**

- [ ] Wrap X ()
- [ ] Wrap Y ()

**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)
- [ ] Run `make codespell` to check common misspellings. If there are any, either fix them or add them to `ignore-words-list` in `pyproject.toml`
- [ ] Review the ["PyGMT Team" page](https://www.pygmt.org/dev/team.html)
- [ ] 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
- [ ] 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)
- [ ] 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
- [ ] Update warnings in `pygmt.show_versions()` as well as notes in [Common installation issues](https://www.pygmt.org/dev/install.html#not-working-transparency)
and [Testing your install]((https://www.pygmt.org/dev/install.html#testing-your-install) 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"
- [ ] Review the ["PyGMT Team" page](https://www.pygmt.org/dev/team.html)
- [ ] Finish up 'Changelog entry for v0.x.x' Pull Request:
- [ ] Add a new entry in `doc/_static/version_switch.js` for documentation switcher
- [ ] Update `CITATION.cff` and BibTeX at https://github.com/GenericMappingTools/pygmt#citing-pygmt
- [ ] Update authorship list
- [ ] Update DOI (and url for BibTeX)
- [ ] Update version
- [ ] Update date released
- [ ] Add the documentation link `doc/minversions.md`
- [ ] Add minimum required version information `doc/minversions.md`
- [ ] 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))
- [ ] 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`
- [ ] Draft the announcement on https://hackmd.io/@pygmt

**Release**:

- [ ] At the [PyGMT release page on GitHub](https://github.com/GenericMappingTools/pygmt/releases):
- [ ] 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
- [ ] 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
- [ ] 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, but remember to pin SPEC0 versions]

- [ ] 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]
- [ ] 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! draft on https://hackmd.io/@pygmt. requires moderator status)
- [ ] 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)

---

- [ ] Party :tada: (don't tick before all other checkboxes are ticked!)
5 changes: 3 additions & 2 deletions .github/workflows/cache_data.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:
xarray
netCDF4
packaging
build
python-build
# Install the package that we want to test
- name: Install the package
Expand All @@ -76,9 +76,10 @@ jobs:

# Upload the downloaded files as artifacts to GitHub
- name: Upload artifacts to GitHub
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v4.4.0
with:
name: gmt-cache
include-hidden-files: true
path: |
~/.gmt/cache
~/.gmt/server
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci_docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ jobs:
create-args: >-
python=3.12
gmt=6.5.0
ghostscript=10.03.1
ghostscript=10.04.0
numpy
pandas
xarray
Expand All @@ -104,9 +104,9 @@ jobs:
geopandas<1.0
ipython
rioxarray
build
make
pip
python-build
myst-nb
panel
sphinx
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci_doctests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@ jobs:
ipython
pyarrow
rioxarray
build
make
pip
python-build
pytest
pytest-doctestplus
pytest-mpl
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/ci_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -119,16 +119,16 @@ jobs:
create-args: >-
python=${{ matrix.python-version }}${{ matrix.optional-packages }}
gmt=6.5.0
ghostscript=10.03.1
ghostscript=10.04.0
numpy=${{ matrix.numpy-version }}
pandas${{ matrix.pandas-version }}
xarray${{ matrix.xarray-version }}
netCDF4
packaging
build
dvc
make
pip
python-build
pytest
pytest-cov
pytest-doctestplus
Expand Down Expand Up @@ -161,7 +161,7 @@ jobs:

# Upload diff images on test failure
- name: Upload diff images if any test fails
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v4.4.0
if: failure()
with:
name: artifact-${{ runner.os }}-${{ matrix.python-version }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci_tests_dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ jobs:
ninja
curl
fftw
ghostscript=10.03.1
ghostscript=10.04.0
glib
hdf5
libblas
Expand Down Expand Up @@ -179,7 +179,7 @@ jobs:

# Upload diff images on test failure
- name: Upload diff images if any test fails
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v4.4.0
if: ${{ failure() }}
with:
name: artifact-GMT-${{ matrix.gmt_git_ref }}-${{ runner.os }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci_tests_legacy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,9 @@ jobs:
pyarrow
rioxarray
sphinx-gallery
build
make
pip
python-build
pytest
pytest-doctestplus
pytest-mpl
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/format-command.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
# Generate token from GenericMappingTools bot
- uses: actions/create-github-app-token@v1.10.3
- uses: actions/create-github-app-token@v1.11.0
id: generate-token
with:
app-id: ${{ secrets.APP_ID }}
Expand All @@ -25,7 +25,7 @@ jobs:
ref: ${{ github.event.client_payload.pull_request.head.ref }}

# Setup Python environment
- uses: actions/setup-python@v5.1.1
- uses: actions/setup-python@v5.2.0
with:
python-version: '3.12'

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/publish-to-pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:
fetch-depth: 0

- name: Set up Python
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
with:
python-version: '3.12'

Expand All @@ -75,10 +75,10 @@ jobs:
ls -lh dist/
- name: Publish to Test PyPI
uses: pypa/gh-action-pypi-publish@v1.9.0
uses: pypa/gh-action-pypi-publish@v1.10.1
with:
repository-url: https://test.pypi.org/legacy/

- name: Publish to PyPI
if: startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@v1.9.0
uses: pypa/gh-action-pypi-publish@v1.10.1
2 changes: 1 addition & 1 deletion .github/workflows/slash-command-dispatch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Slash Command Dispatch
uses: peter-evans/slash-command-dispatch@v4
uses: peter-evans/slash-command-dispatch@v4.0.0
with:
token: ${{ github.token }}
commands: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/style_checks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:

# Setup Python
- name: Set up Python
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
with:
python-version: '3.12'

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/type_checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:

# Setup Python
- name: Set up Python
uses: actions/setup-python@v5.1.1
uses: actions/setup-python@v5.2.0
with:
python-version: '3.12'

Expand Down
6 changes: 6 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,9 @@ repos:
- id: remove-crlf
- id: chmod
args: ['644']

# https://pre-commit.ci/#configuration
ci:
skip: [chmod]
autofix_prs: false
autoupdate_schedule: quarterly
6 changes: 3 additions & 3 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ authors:
family-names: Wessel
affiliation: University of Hawaiʻi at Mānoa, USA
orcid: https://orcid.org/0000-0001-5708-7336
date-released: 2024-05-01
doi: 10.5281/zenodo.11062720
date-released: 2024-09-05
doi: 10.5281/zenodo.13679420
license: BSD-3-Clause
repository-code: https://github.com/GenericMappingTools/pygmt
type: software
version: 0.12.0
version: 0.13.0
16 changes: 5 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ research using the following BibTeX:

```
@software{
pygmt_2024_11062720,
pygmt_2024_13679420,
author = {Tian, Dongdong and
Uieda, Leonardo and
Leong, Wei Ji and
Expand All @@ -152,12 +152,12 @@ research using the following BibTeX:
Quinn, Jamie and
Wessel, Paul},
title = {{PyGMT: A Python interface for the Generic Mapping Tools}},
month = may,
month = sep,
year = 2024,
publisher = {Zenodo},
version = {0.12.0},
doi = {10.5281/zenodo.11062720},
url = {https://doi.org/10.5281/zenodo.11062720}
version = {0.13.0},
doi = {10.5281/zenodo.13679420},
url = {https://doi.org/10.5281/zenodo.13679420}
}
```

Expand Down Expand Up @@ -186,12 +186,6 @@ Other official wrappers for GMT:
- [GMT.jl](https://github.com/GenericMappingTools/GMT.jl): A Julia wrapper for GMT.
- [gmtmex](https://github.com/GenericMappingTools/gmtmex): A Matlab/Octave wrapper for GMT.

Other non-official Python wrappers for GMT (not maintained):

- [gmtpy](https://github.com/emolch/gmtpy) by [Sebastian Heimann](https://github.com/emolch)
- [pygmt](https://github.com/ian-r-rose/pygmt) by [Ian Rose](https://github.com/ian-r-rose)
- [PyGMT](https://github.com/glimmer-cism/PyGMT) by [Magnus Hagdorn](https://github.com/mhagdorn)

<!-- doc-index-end-before -->

## Minimum supported versions
Expand Down
4 changes: 2 additions & 2 deletions ci/requirements/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ dependencies:
# Required dependencies
- python=3.12
- gmt=6.5.0
- ghostscript=10.03.1
- ghostscript=10.04.0
- numpy
- pandas
- xarray
Expand All @@ -18,9 +18,9 @@ dependencies:
- ipython
- rioxarray
# Development dependencies (general)
- build
- make
- pip
- python-build
# Dev dependencies (building documentation)
- myst-nb
- panel
Expand Down
16 changes: 16 additions & 0 deletions doc/_static/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -203,3 +203,19 @@ a.copybtn {
.sphx-glr-single-img {
max-width: 80%!important;
}

/*
* Styles for aligning table cells.
* https://myst-parser.readthedocs.io/en/latest/syntax/tables.html#markdown-syntax
*/
th.text-left, td.text-left {
text-align: left !important;
}

th.text-center, td.text-center {
text-align: center !important;
}

th.text-right, td.text-right {
text-align: right !important;
}
1 change: 1 addition & 0 deletions doc/_static/version_switch.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
var all_versions = {
'latest': 'latest',
'dev': 'dev',
'v0.13.0': 'v0.13.0',
'v0.12.0': 'v0.12.0',
'v0.11.0': 'v0.11.0',
'v0.10.0': 'v0.10.0',
Expand Down
2 changes: 1 addition & 1 deletion doc/_templates/breadcrumbs.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
{% set gallery_path = gallery_dir[pagename.split("/")[0]] %}
{% set example_script = pagename|replace(pagename.split("/")[0], gallery_dir[pagename.split("/")[0]]) %}
{% if pagename.split("/")[-1] == "index" %}
{% set example_script = example_script|replace("index", "README.txt") %}
{% set example_script = example_script|replace("index", "GALLERY_HEADER.rst") %}
{% else %}
{% set example_script = example_script + ".py" %}
{% endif %}
Expand Down
1 change: 1 addition & 0 deletions doc/api/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -317,5 +317,6 @@ Low level access (these are mostly used by the :mod:`pygmt.clib` package):
clib.Session.get_libgmt_func
clib.Session.virtualfile_from_data
clib.Session.virtualfile_from_grid
clib.Session.virtualfile_from_stringio
clib.Session.virtualfile_from_matrix
clib.Session.virtualfile_from_vectors
Loading

0 comments on commit 9b87e6d

Please sign in to comment.