From 7993b60d74647a11a965ce9f82ec0f6b4e30def8 Mon Sep 17 00:00:00 2001 From: Caglar Pir Date: Thu, 3 Sep 2026 09:17:59 +0200 Subject: [PATCH] Pin CI Python to 3.13 to match Pipfile.lock The PyTest workflow requests python-version: "3.x", which now resolves to CPython 3.14. Pipfile.lock pins scipy==1.15.3, whose newest wheels are cp313, so pip falls back to building scipy from its sdist. That build needs OpenBLAS, which ubuntu-latest does not provide, and 'make setup-dev' fails before any test runs. Pinning to 3.13 is the newest interpreter the current lockfile resolves against: scipy, numpy, pandas and shapely all publish cp313 manylinux wheels, and the one sdist-only dependency (turfpy 0.0.7) is pure Python. The publish workflow runs the same pipenv install against the same lockfile, so it is pinned identically. --- .github/workflows/pypi-publish.yml | 4 +++- .github/workflows/pytest.yml | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index c25d2f6..7c72534 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -19,7 +19,9 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.x" + # Pinned rather than "3.x" for the same reason as pytest.yml: this + # job also runs `pipenv install --dev` against Pipfile.lock. + python-version: "3.13" - name: Install dependencies run: | diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index 7484890..171dd4e 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -16,7 +16,10 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.x" + # Pinned rather than "3.x": Pipfile.lock pins scipy==1.15.3, which + # publishes wheels only up to cp313. On a newer interpreter pip falls + # back to the sdist, which needs OpenBLAS and fails on ubuntu-latest. + python-version: "3.13" - name: Install dependencies run: | make setup-dev