Skip to content

fix: the Python matrix and classifiers cover the whole supported range - #25

Merged
AlexeyShalaev merged 1 commit into
masterfrom
fix/python-version-range
Oct 17, 2026
Merged

AlexeyShalaev merged 1 commit into
masterfrom
fix/python-version-range

Conversation

@AlexeyShalaev

Copy link
Copy Markdown
Member

The generated unit-test matrix was ["{{ python_min_version }}", "3.12", "3.13"]. With 3.12 as the minimum it tested 3.12 twice. With 3.14 it tested 3.12 and 3.13, below the project's own requires-python, and with any minimum nothing ran on 3.14, which every library in the org tests. The classifiers listed only the minimum, and the Codecov upload was tied to 3.12, so a render with a higher minimum uploaded nothing.

Both lists are now generated from python_min_version to python_max_version. The latter is a hidden value in copier.yml (when: false, so it is not asked and not written to the answers file), set to 3.14: the next Python is one line. Coverage is uploaded from the newest version. python_min_version gets a validator, a 3.x from 3.10 to the max; 3.10 is the floor because redis-client-kit uses it.

I kept the max at 3.14, not 3.15: pg-partsmith#121 shows that a dependency set still needs bumps (greenlet, pywin32) before 3.15 installs everywhere, and a fresh render resolves whatever is newest.

Renders of this branch:

min 3.10  matrix ["3.10", "3.11", "3.12", "3.13", "3.14"]  classifiers 3.10 … 3.14  coverage on 3.14
min 3.12  matrix ["3.12", "3.13", "3.14"]                  classifiers 3.12 3.13 3.14
min 3.14  matrix ["3.14"]                                  classifiers 3.14
3.9, 3.15, 4.1, 3.x   Validation error for question 'python_min_version': Use a 3.x version from 3.10 to 3.14

The answers file of a render has no python_max_version. actionlint 1.7.12 on the rendered workflows: only the two known client-id findings in release-please.yml.

Found while porting the template fixes into the libraries.

The unit-test matrix was [min, "3.12", "3.13"]: a render with 3.12 as
its minimum tested 3.12 twice, one with 3.14 tested two versions below
its own floor, and nothing ran on 3.14. The classifiers named only the
minimum, and coverage was uploaded from 3.12 alone, so a render with a
higher minimum uploaded none.

Both lists now run from python_min_version to python_max_version, a
hidden copier.yml value (3.14) raised in one place. Coverage goes up
from the newest version. python_min_version is validated: a 3.x from
3.10 to python_max_version.
@AlexeyShalaev
AlexeyShalaev merged commit 3356e81 into master Oct 17, 2026
3 checks passed
@AlexeyShalaev
AlexeyShalaev deleted the fix/python-version-range branch October 17, 2026 21:32
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