Conversation
pyproject declares requires-python = ">=3.11" and security.yml audits
dependencies across ["3.11", "3.12", "3.13", "3.14"], but test.yml only
ever runs the suite on 3.13 and 3.14. The older half of the supported
range ships without a single test execution behind it.
The floor is genuine, not vestigial: tomllib in src/specify_cli/
_assets.py is the only 3.11+ API in use, so 3.11 is exactly right as the
minimum — it just is not covered.
Both added interpreters pass locally today, so this closes a coverage
gap rather than introducing failures:
Python 3.11.16 — 8176 passed, 208 skipped
Python 3.12.14 — 8176 passed, 208 skipped
Python 3.13.15 — 8176 passed, 208 skipped
Added via `include` on ubuntu-latest only, taking the matrix from 6 jobs
to 8 rather than 12; the OS-specific paths on macOS and Windows stay
covered by 3.13/3.14.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The project supports Python 3.11 through 3.14 but only ever executes its tests on the newest two. This is an internal inconsistency rather than a matter of taste:
pyproject.tomlrequires-python = ">=3.11".github/workflows/security.yml["3.11", "3.12", "3.13", "3.14"].github/workflows/test.yml["3.13", "3.14"]The scheduled dependency audit already treats 3.11–3.14 as the supported matrix, and
tests/test_security_workflow.py::test_scheduled_dependency_audit_runs_supported_python_os_matrixasserts exactly that list. Meanwhile the older half of the range ships without a single test execution behind it.The floor is genuine rather than vestigial:
tomllibinsrc/specify_cli/_assets.py:111is the only 3.11+ API in the source, so 3.11 is exactly the right minimum — it simply is not covered.Evidence
Both added interpreters pass the full suite today, so this closes a coverage gap rather than introducing failures. Run locally on macOS 15 (arm64) against
a2c1843:Cost
Added through
includeonubuntu-latestonly, which takes the matrix from 6 jobs to 8 rather than to 12. The OS-specific paths on macOS and Windows stay covered by 3.13/3.14; what 3.11 and 3.12 add is interpreter coverage, which is not OS-dependent for this codebase.If the two extra jobs are unwelcome, the alternative worth considering is the opposite direction — raise
requires-pythonto>=3.13and stop claiming support for versions nobody tests. Either resolves the inconsistency; leaving it as-is does not. Happy to switch this PR to that shape instead if maintainers prefer it.AI disclosure
Written with Claude Code (Opus 5). The inconsistency was found by reading the three files against each other, and each added interpreter was installed and run through the full suite locally before the matrix was touched. I reviewed the change and re-ran the evidence against current
mainbefore opening this.