From 499d2af34afca792c7404417587d35d756cafea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Thu, 16 Oct 2025 14:49:42 +0200 Subject: [PATCH 1/7] cibw: add py314 wheels --- .github/workflows/main.yml | 13 +++++++------ pyproject.toml | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b2c5420..3b117d1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -59,7 +59,7 @@ jobs: fail-fast: false matrix: # macos-13 is an intel runner, macos-latest is apple silicon - os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-13, macos-latest] + os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm, macos-15-intel, macos-latest] steps: - uses: actions/checkout@v4 @@ -67,7 +67,7 @@ jobs: fetch-depth: "0" - name: Build wheels - uses: pypa/cibuildwheel@v2.22.0 + uses: pypa/cibuildwheel@v3.2.1 with: output-dir: dist-wheel-${{ matrix.os }} @@ -82,7 +82,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, macos-13, macos-14] + os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm, macos-15-intel, macos-latest] # https://github.com/scipy/oldest-supported-numpy/blob/main/setup.cfg ver: - { py: "3.9", np: "==1.20.0" } @@ -90,11 +90,12 @@ jobs: - { py: "3.11", np: "==1.23.2" } - { py: "3.12", np: "==1.26.2" } - { py: "3.13", np: "==2.1.0" } - - { py: "3.13", np: ">=2.1.0" } + - { py: "3.14", np: "==2.3.2" } + - { py: "3.14", np: ">=2.3.2" } exclude: - - os: macos-14 + - os: macos-latest ver: { py: "3.9", np: "==1.20.0" } - - os: macos-14 + - os: macos-latest ver: { py: "3.10", np: "==1.21.6" } steps: - uses: actions/checkout@v4 diff --git a/pyproject.toml b/pyproject.toml index c9bef75..4a6fb26 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -145,8 +145,8 @@ max-line-length = 120 build-frontend = "build" # explicitly enable pypy enable = ["pypy"] -# Disable building py3.6/7/8, pp3.8, 32bit linux -skip = ["cp36-*", "cp37-*", "cp38-*", "pp38-*", "*_i686"] +# Disable building free-threaded versions +skip = ["cp31?t-*"] # Run the package tests using `pytest` test-extras = "test" test-command = "pytest -v {package}/tests" From 028293916984b9d7c29c2514989a639897e952ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Thu, 16 Oct 2025 14:58:58 +0200 Subject: [PATCH 2/7] fix windows arm64 issues --- .github/workflows/main.yml | 2 +- pyproject.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3b117d1..2a05100 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -82,7 +82,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm, macos-15-intel, macos-latest] + os: [ubuntu-latest, ubuntu-24.04-arm, windows-latest, macos-15-intel, macos-latest] # https://github.com/scipy/oldest-supported-numpy/blob/main/setup.cfg ver: - { py: "3.9", np: "==1.20.0" } diff --git a/pyproject.toml b/pyproject.toml index 4a6fb26..8b67b36 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -145,8 +145,8 @@ max-line-length = 120 build-frontend = "build" # explicitly enable pypy enable = ["pypy"] -# Disable building free-threaded versions -skip = ["cp31?t-*"] +# Disable building free-threaded versions and cp39/310 on windows-arm64 (no numpy support) +skip = ["cp31?t-*", "cp39-win_arm64", "cp310-win_arm64"] # Run the package tests using `pytest` test-extras = "test" test-command = "pytest -v {package}/tests" From fe5bc3a428597c6d1292c0b40c8ca0c65a50f8a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Thu, 16 Oct 2025 15:04:44 +0200 Subject: [PATCH 3/7] fix license issue for setuptools --- pyproject.toml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8b67b36..c689ef4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,7 +13,7 @@ requires-python = ">=3.9" name = "pentapy" authors = [{name = "Sebastian Müller", email = "info@geostat-framework.org"}] readme = "README.md" -license = {text = "MIT"} +license = { text = "MIT License" } dynamic = ["version"] description = "pentapy: A toolbox for pentadiagonal matrizes." classifiers = [ @@ -21,7 +21,6 @@ classifiers = [ "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "Intended Audience :: Science/Research", - "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: Unix", "Programming Language :: Python", From 7be8ee07dfd099cfb6bda63c0f14593df9b98e14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Thu, 16 Oct 2025 15:07:45 +0200 Subject: [PATCH 4/7] add py314 to classifiers --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index c689ef4..6c3c8c8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,6 +30,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Programming Language :: Python :: 3 :: Only", "Topic :: Scientific/Engineering", "Topic :: Utilities", From 319d7de673037d06d8e13bd17123d171b1a5594b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Thu, 16 Oct 2025 15:23:25 +0200 Subject: [PATCH 5/7] update changelog --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ebef20..3e700a4 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to **pentapy** will be documented in this file. +## [1.4.1] - 2025-10 + +See [#33](https://github.com/GeoStat-Framework/pentapy/pull/33) + +### Enhancements +- added support for python 3.14 + + ## [1.4.0] - 2025-05 See [#31](https://github.com/GeoStat-Framework/pentapy/pull/31) @@ -120,6 +128,7 @@ This is the first release of pentapy, a python toolbox for solving pentadiagonal The solver is implemented in cython, which makes it really fast. +[1.4.1]: https://github.com/GeoStat-Framework/pentapy/compare/v1.4.0...v1.4.1 [1.4.0]: https://github.com/GeoStat-Framework/pentapy/compare/v1.3.0...v1.4.0 [1.3.0]: https://github.com/GeoStat-Framework/pentapy/compare/v1.2.0...v1.3.0 [1.2.0]: https://github.com/GeoStat-Framework/pentapy/compare/v1.1.2...v1.2.0 From 4caa2310e22d644b4954135a8e656966552808e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Thu, 16 Oct 2025 15:23:40 +0200 Subject: [PATCH 6/7] simpler build sys --- pyproject.toml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 6c3c8c8..b48cba3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,9 @@ [build-system] requires = [ "setuptools>=64", - "setuptools<72.2; implementation_name == 'pypy'", # https://github.com/pypa/distutils/issues/283 "setuptools_scm>=7", - "numpy>=2.0.0rc1", - "Cython>=3.0.10,<3.1.0", + "numpy>=2", + "Cython>=3", ] build-backend = "setuptools.build_meta" @@ -13,7 +12,7 @@ requires-python = ">=3.9" name = "pentapy" authors = [{name = "Sebastian Müller", email = "info@geostat-framework.org"}] readme = "README.md" -license = { text = "MIT License" } +license = "MIT License" dynamic = ["version"] description = "pentapy: A toolbox for pentadiagonal matrizes." classifiers = [ From 510ab581938d673f3ce36f60d6a4a233239b469e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Thu, 16 Oct 2025 15:28:43 +0200 Subject: [PATCH 7/7] fix license specifiers --- pyproject.toml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b48cba3..34b5c0e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "setuptools>=64", + "setuptools>=77", "setuptools_scm>=7", "numpy>=2", "Cython>=3", @@ -12,7 +12,8 @@ requires-python = ">=3.9" name = "pentapy" authors = [{name = "Sebastian Müller", email = "info@geostat-framework.org"}] readme = "README.md" -license = "MIT License" +license = "MIT" +license-files = ["LICENSE"] dynamic = ["version"] description = "pentapy: A toolbox for pentadiagonal matrizes." classifiers = [ @@ -72,9 +73,6 @@ Tracker = "https://github.com/GeoStat-Framework/pentapy/issues" Changelog = "https://github.com/GeoStat-Framework/pentapy/blob/main/CHANGELOG.md" Conda-Forge = "https://anaconda.org/conda-forge/pentapy" -[tool.setuptools] -license-files = ["LICENSE"] - [tool.setuptools_scm] write_to = "src/pentapy/_version.py" write_to_template = "__version__ = '{version}'"