Skip to content

ci: run the floor as well as the latest Python - #20

Open
dani1005 wants to merge 1 commit into
v1from
ci/python-version-matrix
Open

ci: run the floor as well as the latest Python#20
dani1005 wants to merge 1 commit into
v1from
ci/python-version-matrix

Conversation

@dani1005

@dani1005 dani1005 commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Runs the version python_requires promises, not just the newest one.

Why

CI has only ever run a single interpreter — 3.14 — while the package declared a different floor. That is how 1.0.0 and both 1.1.0 release candidates shipped a Requires-Python nobody had executed. In fact they shipped none at all: PYTHON_REQUIRES was defined in the factory's setup.mustache and never passed to setup(), so PyPI has no Requires-Python for any release of this package to date. pip therefore installs it on any interpreter and the user meets a traceback instead of a clear message.

The companion factory MR fixes that and sets the floor to 3.12. This makes the floor real by running it.

Change

python-version: "3.14" → a ["3.12", "3.14"] matrix, fail-fast: false so a break on one version still reports the other. Nothing else moves.

Verified locally, before this lands

Built from the 1.1.0 generated tree with the fixed template:

  • the wheel's METADATA now carries Requires-Python: >=3.12 and pydantic<3,>=2;
  • pip install on Python 3.10 refuses with requires a different Python: 3.10.17 not in '>=3.12' — which is the entire point of the fix;
  • installing on 3.14 and running this workflow's own import/config smoke plus the 50 wrapper tests in tests/ passes.

Keep the matrix in step with templates/setup.mustache in the SDK factory if the floor moves again.

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant