From 8394b4a3fa007d01a351b4c5c08a16150eeba098 Mon Sep 17 00:00:00 2001 From: James Parrott <80779630+JamesParrott@users.noreply.github.com> Date: Sun, 4 Oct 2026 10:57:11 +0100 Subject: [PATCH 1/2] Update run_checks_build_and_test.yml --- .github/workflows/run_checks_build_and_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run_checks_build_and_test.yml b/.github/workflows/run_checks_build_and_test.yml index 8c0c223..690e779 100644 --- a/.github/workflows/run_checks_build_and_test.yml +++ b/.github/workflows/run_checks_build_and_test.yml @@ -60,7 +60,7 @@ jobs: "3.14", "3.13", "3.12", - "3.15-dev", + "3.15", "3.11", "3.10", "3.9", From 46a4360d8db55dea11dc325af5b27059a2628443 Mon Sep 17 00:00:00 2001 From: James Parrott <80779630+JamesParrott@users.noreply.github.com> Date: Sun, 1 Nov 2026 13:26:53 +0000 Subject: [PATCH 2/2] Add Python 3.15 to test matrix (put 3.9 on Ubuntu 24.04) Remove blank line Trim whitespace Run Linux Python 3.9 tests on Ubuntu-24.04 (unavailable on latest) Test network and benchmarks on Python 3.15. Bump uv, and setup-python to @v7 Restore action name --- .github/actions/test/action.yml | 2 +- .github/workflows/deploy.yml | 4 +- .../workflows/run_checks_build_and_test.yml | 44 ++++++++++++------- .github/workflows/speed_test.yml | 14 ++++-- 4 files changed, 41 insertions(+), 23 deletions(-) diff --git a/.github/actions/test/action.yml b/.github/actions/test/action.yml index d31a2eb..4d5402f 100644 --- a/.github/actions/test/action.yml +++ b/.github/actions/test/action.yml @@ -52,7 +52,7 @@ runs: # with "python" and "pip" on the system Path # (so that this custom Action can be used with both reproducible # Pythons from Python docker images, and more frequently deprecated Pythons - # from - uses: actions/setup-python@v6) + # from - uses: actions/setup-python@v7) - name: Checkout shapefiles and zip file artefacts repo diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 8631147..3941ec5 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -25,9 +25,9 @@ jobs: steps: - uses: actions/checkout@v6 - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: - python-version: '3.x' + python-version: '3.15' - name: Download wheel and sdist (built in previous job) diff --git a/.github/workflows/run_checks_build_and_test.yml b/.github/workflows/run_checks_build_and_test.yml index 690e779..1daf3c6 100644 --- a/.github/workflows/run_checks_build_and_test.yml +++ b/.github/workflows/run_checks_build_and_test.yml @@ -18,7 +18,7 @@ jobs: uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 with: version: 0.13.6 # uv version - python-version: "3.14" + python-version: "3.15" - name: uv Sync project, asserting locked with dev dependency group run: uv sync --frozen --group lint @@ -33,8 +33,8 @@ jobs: - name: Install the latest version of uv and set the python version uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 with: - version: 0.11.15 # uv version - python-version: "3.14" + version: 0.13.6 # uv version + python-version: "3.15" # use latest mypy version here, (even though pinned to 1.19.1 in lint group for Python 3.9 support) - name: Run mypy --strict @@ -45,9 +45,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - - uses: actions/setup-python@v6 + - uses: actions/setup-python@v7 with: - python-version: "3.13" + python-version: "3.15" - name: Build wheel from the project repo uses: ./.github/actions/build_wheel_and_sdist @@ -57,6 +57,7 @@ jobs: fail-fast: false matrix: python-version: [ + "3.15", "3.14", "3.13", "3.12", @@ -66,19 +67,24 @@ jobs: "3.9", ] os: [ - "ubuntu-24.04", + "ubuntu-latest", ] - include: - - python-version: "3.14" + exclude: # Don't just remove it from matrix in case we want + # to run Property tests on Windows or MacOS too. + - python-version: "3.9" os: "ubuntu-latest" - - python-version: "3.14" + + include: + - python-version: "3.15" os: "windows-latest" - - python-version: "3.14" + - python-version: "3.15" os: "macos-latest" + - python-version: "3.9" + os: "ubuntu-24.04" runs-on: ${{ matrix.os }} steps: - - uses: actions/setup-python@v6 + - uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }} @@ -99,24 +105,30 @@ jobs: fail-fast: false matrix: python-version: [ + "3.15", "3.14", "3.13", "3.12", - "3.15-dev", "3.11", "3.10", "3.9", ] os: [ - "ubuntu-24.04", + "ubuntu-latest", "windows-latest", "macos-latest", ] + exclude: + - python-version: "3.9" + os: "ubuntu-latest" + include: + - python-version: "3.9" + os: "ubuntu-24.04" runs-on: ${{ matrix.os }} steps: - - uses: actions/setup-python@v6 + - uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }} @@ -129,11 +141,11 @@ jobs: with: pyshp_repo_directory: ./Pyshp - - name: "Network tests (on Localhost ${{ !(matrix.os == 'ubuntu-24.04' && matrix.python-version == '3.14') }})" + - name: "Network tests (on Localhost ${{ !(matrix.os == 'ubuntu-latest' && matrix.python-version == '3.15') }})" uses: ./Pyshp/.github/actions/test with: extra_args: '-m network' - replace_remote_urls_with_localhost: ${{ !(matrix.os == 'ubuntu-24.04' && matrix.python-version == '3.14') }} + replace_remote_urls_with_localhost: ${{ !(matrix.os == 'ubuntu-latest' && matrix.python-version == '3.15') }} # Checkout to ./PyShp, as the test job also needs to check out the artefact repo pyshp_repo_directory: ./Pyshp diff --git a/.github/workflows/speed_test.yml b/.github/workflows/speed_test.yml index a2a40bb..04c1c59 100644 --- a/.github/workflows/speed_test.yml +++ b/.github/workflows/speed_test.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - - uses: actions/setup-python@v6 + - uses: actions/setup-python@v7 - name: Build wheel from the project repo uses: ./.github/actions/build_wheel_and_sdist @@ -24,17 +24,23 @@ jobs: matrix: python-version: [ "3.9", - "3.14", + "3.15", ] os: [ + "ubuntu-latest", "windows-latest", - "ubuntu-24.04", ] + exclude: + - python-version: "3.9" + os: "ubuntu-latest" + include: + - python-version: "3.9" + os: "ubuntu-24.04" runs-on: ${{ matrix.os }} steps: - - uses: actions/setup-python@v6 + - uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }}