From 7050f3832e3c2730f41066e5f569374552d73b2b Mon Sep 17 00:00:00 2001 From: Dani Date: Fri, 4 Sep 2026 03:42:20 -0400 Subject: [PATCH] ci: run the floor as well as the latest Python MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CI has only ever run one interpreter — 3.14 — while the package declared a different one. That is how 1.0.0 and both 1.1.0 release candidates shipped a `python_requires` nobody had ever executed (in fact they shipped none at all: the constant was defined in the template and never passed to setup()). 1.1.0 fixes the metadata and sets the floor to 3.12, so run 3.12 alongside 3.14 and let the promise be tested. fail-fast is off so a break on one version still reports the other. Keep the matrix in step with templates/setup.mustache in the SDK factory. --- .github/workflows/ci.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cbdf812..35d48a8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,6 +15,14 @@ permissions: jobs: build: runs-on: ubuntu-latest + strategy: + fail-fast: false + # Floor + latest. The floor is the version setup.py's `python_requires` + # promises (>=3.12): a promise nothing runs is how 1.0.0 and both release + # candidates shipped a Requires-Python they had never tested. Keep this in + # step with templates/setup.mustache in the factory. + matrix: + python-version: ["3.12", "3.14"] steps: - uses: actions/checkout@v5 @@ -31,7 +39,7 @@ jobs: - uses: actions/setup-python@v6 if: steps.detect.outputs.has_pkg == 'true' with: - python-version: "3.14" + python-version: ${{ matrix.python-version }} - name: Install if: steps.detect.outputs.has_pkg == 'true'