chore: require python 3.11+ and update dependencies - #2
Merged
Conversation
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.
Security maintenance. No change to metric computation:
src/banos/and the golden fixtures are untouched.Python 3.11 minimum
3.9 has been end of life since October 2025 and 3.10 reaches it in October 2026. Supporting them forced
uv.lockto carry a second resolution branch pinned to old releases, and that is where most of the Dependabot alerts came from — the same advisory was reported twice, once per branch:The lock drops from 207 to 165 entries (1102 kB to 563 kB).
Refreshed lock
Targeted
uv lock --upgrade-packageon the vulnerable packages only — Jupyter stack, Keras, Pillow, Mistune, Tornado, urllib3, requests, setuptools, pygments, idna, soupsieve, bleach, nbconvert, pytest. No blanketuv lock --upgrade.numpy,pandas,scipy,matplotlibandseabornresolve to the same versions as before on Python 3.11+, so nothing numerical moves. The only change inside the runtime closure is Pillow 12.1.1 to 12.3.0, which matplotlib uses for image output and no metric depends on.Actions pinned to commit SHAs
Workflow actions run with access to this repository and to the OIDC identity used to publish on PyPI, and a floating tag can be rewritten upstream without any change here.
pypa/gh-action-pypi-publishwas referenced by moving branch (release/v1) and carries an advisory below 1.13.0. Dependabot is configured to keep the pinned SHAs current, for GitHub Actions only.CI installs with
uv sync --lockedThe committed lock had drifted: it still declared version 0.2.0 and an incomplete
devgroup, so CI was silently re-resolving instead of testing what is committed.Verification
83 passed on each of Python 3.11, 3.12, 3.13 and 3.14, coverage 99.4%, golden regression tests green at their 1e-10 tolerance.
Matrix is now 3.11 / 3.12 / 3.13 / 3.14. The required status checks on
mainstill listTest (Python 3.9)andTest (Python 3.10), which no longer exist, so the ruleset needs updating before this can merge.