From 70325de20c983cfb384528fca1470e0787e206b3 Mon Sep 17 00:00:00 2001 From: Dongdong Tian Date: Fri, 16 Oct 2026 00:09:28 +0800 Subject: [PATCH] Add support for Python 3.15 --- .github/workflows/benchmarks.yml | 2 +- .github/workflows/cache_data.yaml | 2 +- .github/workflows/ci_docs.yml | 2 +- .github/workflows/ci_doctests.yaml | 2 +- .github/workflows/ci_tests.yaml | 6 +++--- .github/workflows/ci_tests_dev.yaml | 2 +- .github/workflows/format-command.yml | 2 +- .github/workflows/publish-to-pypi.yml | 2 +- .github/workflows/style_checks.yaml | 2 +- .github/workflows/type_checks.yml | 2 +- ci/requirements/docs.yml | 2 +- doc/install.md | 2 +- pyproject.toml | 1 + 13 files changed, 15 insertions(+), 14 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 16f87c22822..71df1f62262 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -54,7 +54,7 @@ jobs: cache-environment-key: micromamba-environment-${{ steps.date.outputs.date }} create-args: >- gmt=6.7.0 - python=3.14 + python=3.15 numpy pandas xarray diff --git a/.github/workflows/cache_data.yaml b/.github/workflows/cache_data.yaml index b564e1b87e7..b6b2c73b67a 100644 --- a/.github/workflows/cache_data.yaml +++ b/.github/workflows/cache_data.yaml @@ -52,7 +52,7 @@ jobs: with: environment-name: pygmt create-args: >- - python=3.14 + python=3.15 gmt=6.7.0 numpy pandas diff --git a/.github/workflows/ci_docs.yml b/.github/workflows/ci_docs.yml index acad1ec0079..691cb2866fb 100644 --- a/.github/workflows/ci_docs.yml +++ b/.github/workflows/ci_docs.yml @@ -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.14 + python=3.15 gmt=6.7.0 ghostscript=10.08.0 numpy diff --git a/.github/workflows/ci_doctests.yaml b/.github/workflows/ci_doctests.yaml index f384ea0d341..538d884930e 100644 --- a/.github/workflows/ci_doctests.yaml +++ b/.github/workflows/ci_doctests.yaml @@ -47,7 +47,7 @@ jobs: with: environment-name: pygmt create-args: >- - python=3.14 + python=3.15 gmt=6.7.0 numpy pandas diff --git a/.github/workflows/ci_tests.yaml b/.github/workflows/ci_tests.yaml index 2854d928d3e..b459aa85ff3 100644 --- a/.github/workflows/ci_tests.yaml +++ b/.github/workflows/ci_tests.yaml @@ -61,7 +61,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.12', '3.14'] + python-version: ['3.12', '3.15'] os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, windows-latest] # Is it a draft Pull Request (true or false)? isDraft: @@ -81,8 +81,8 @@ jobs: pandas-version: '=2.3' xarray-version: '=2024.10' optional-packages: ' contextily geopandas ipython pyarrow-core rioxarray netCDF4 sphinx-gallery' - # Python 3.14 + core packages (latest versions) + optional packages - - python-version: '3.14' + # Python 3.15 + core packages (latest versions) + optional packages + - python-version: '3.15' numpy-version: '2.5' pandas-version: '' xarray-version: '' diff --git a/.github/workflows/ci_tests_dev.yaml b/.github/workflows/ci_tests_dev.yaml index 44425c5fa82..04ac7204d5a 100644 --- a/.github/workflows/ci_tests_dev.yaml +++ b/.github/workflows/ci_tests_dev.yaml @@ -70,7 +70,7 @@ jobs: # environment cache is persistent for one week. cache-environment-key: micromamba-environment-${{ steps.date.outputs.date }} create-args: >- - python=3.14 + python=3.15 cmake make ninja diff --git a/.github/workflows/format-command.yml b/.github/workflows/format-command.yml index 6fa80bb5b29..805bcd44308 100644 --- a/.github/workflows/format-command.yml +++ b/.github/workflows/format-command.yml @@ -36,7 +36,7 @@ jobs: - name: Set up Python uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: - python-version: '3.14' + python-version: '3.15' - name: Install formatting tools run: | diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index 4a0f7c31150..5808b5a4571 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -50,7 +50,7 @@ jobs: - name: Set up Python uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: - python-version: '3.14' + python-version: '3.15' - name: Install dependencies run: python -m pip install build diff --git a/.github/workflows/style_checks.yaml b/.github/workflows/style_checks.yaml index ce204d6a537..21bf4275fb4 100644 --- a/.github/workflows/style_checks.yaml +++ b/.github/workflows/style_checks.yaml @@ -33,7 +33,7 @@ jobs: - name: Set up Python uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: - python-version: '3.14' + python-version: '3.15' - name: Install packages run: | diff --git a/.github/workflows/type_checks.yml b/.github/workflows/type_checks.yml index 8deb69ab243..93b67ff8955 100644 --- a/.github/workflows/type_checks.yml +++ b/.github/workflows/type_checks.yml @@ -43,7 +43,7 @@ jobs: - name: Set up Python uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: - python-version: '3.14' + python-version: '3.15' - name: Install packages run: | diff --git a/ci/requirements/docs.yml b/ci/requirements/docs.yml index c4aa6108f4d..69a2f512d69 100644 --- a/ci/requirements/docs.yml +++ b/ci/requirements/docs.yml @@ -4,7 +4,7 @@ channels: - nodefaults dependencies: # Required dependencies - - python=3.14 + - python=3.15 - gmt=6.7.0 - ghostscript=10.08.0 - numpy diff --git a/doc/install.md b/doc/install.md index f6a00eca23e..768f08e6b00 100644 --- a/doc/install.md +++ b/doc/install.md @@ -99,7 +99,7 @@ Now we can create a new virtual environment with Python and all our dependencies installed (we'll call it `pygmt` but feel free to change it to whatever you want): ``` -conda create --name pygmt python=3.14 numpy pandas xarray packaging gmt +conda create --name pygmt python=3.15 numpy pandas xarray packaging gmt ``` Activate the environment by running the following (**do not forget this step!**): diff --git a/pyproject.toml b/pyproject.toml index 43e081b3458..0b2ce8f3594 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,6 +33,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", ] dependencies = [ "numpy>=2.2",