Repository navigation
ci: discover supported stable Python versions automatically - #229
Merged
Merged
Conversation
Replace the fixed Python matrix with validated live discovery from the official release-cycle feed. Align current package support to Python 3.11–3.15 and upload coverage from the newest discovered release. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
Description
Discover the CI test matrix from the official Python release-cycle JSON feed used by the Python Developer's Guide, rather than maintaining a fixed list.
bugfixandsecurityPython release on Ubuntu and macOS; exclude prereleases and EOL releases.This addresses the Python support-policy mismatch exposed by #228: its coverage 7.17.0 update requires Python 3.11 or newer. This PR does not change those dependency pins.
Type of Change
Testing
Validation uses the project's existing development dependencies in a dedicated virtual environment, on Python 3.13:
python -m pytest tests/ -q --cov=himl --cov-report=term-missing --cov-fail-under=80— passed: 244 tests, 92.51% coverage.python -m flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics— passed: zero errors.python -m flake8 .github/scripts/python_versions.py tests/test_python_versions.py— passed.python -m flake8 . --count --exit-zero --max-complexity=10 --max-line-length=120 --statistics— completed with four existing advisory warnings in unchanged files.python -m mypy himl/ .github/scripts/python_versions.py --ignore-missing-imports— passed: 17 source files.python -m black --check .github/scripts/python_versions.py tests/test_python_versions.py— passed.actionlint -shellcheck='' .github/workflows/ci.yaml— passed.python .github/scripts/python_versions.py— passed against the live official feed: versions 3.11–3.15, latest 3.15.python -m build --outdir "$ARTIFACT_DIR"— passed for the final commit;ARTIFACT_DIRpoints to a session-local build output directory.python -m twine check "$ARTIFACT_DIR"/*— passed for both the final source distribution and wheel.The new tests cover stable-release filtering, numeric version sorting, malformed/empty data, network retries, exhausted retries, invalid JSON, and GitHub Actions outputs.
The first GitHub Actions run passed all 15 jobs: live discovery, all ten Python 3.11–3.15 Ubuntu/macOS matrix jobs, security, package build, Docker, and integration tests.
Checklist
Additional Notes
actionlint .github/workflows/ci.yamlreports the existing ShellCheck SC2086 warning for an unquoted$GITHUB_OUTPUTin the unchanged pip-cache step. Workflow validation passes with ShellCheck disabled; the newly added shell command quotes its output path.