Skip to content

Packaging modernisation#4

Merged
alastairrushworth merged 2 commits into
mainfrom
packaging-modernisation
Jun 6, 2026
Merged

Packaging modernisation#4
alastairrushworth merged 2 commits into
mainfrom
packaging-modernisation

Conversation

@alastairrushworth

Copy link
Copy Markdown
Owner

No description provided.

alastairrushworth and others added 2 commits June 6, 2026 10:37
Pushing a version tag (git tag v0.x.y && git push origin v0.x.y) now
triggers release.yml, which builds the sdist + wheel, publishes to PyPI
via OIDC Trusted Publishers (no stored API token), and creates a GitHub
Release with auto-generated notes.

- Switch to hatch-vcs for version management: version is derived from
  git tags automatically, eliminating manual pyproject.toml bumps
- Add release.yml workflow gated on a "pypi" GitHub environment
- Add v[0-9]+.* tag trigger to python-package.yml so the full test
  matrix and wheel-verify job also run on release tag pushes
- Add fetch-depth: 0 to all checkout steps (needed by hatch-vcs)
- Document release process and one-time PyPI Trusted Publisher setup
  in README

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Python 3.9 reached end-of-life in October 2025. The scientific Python
ecosystem (plotnine, matplotlib, scipy) has dropped 3.9 support, which
caused uv to resolve older, vulnerable versions of transitive deps when
building the lockfile for 3.9:

  - filelock 3.19.1: TOCTOU symlink CVEs (fix requires Python >=3.10)
  - pillow 11.3.0: 7 OOB-write / integer-overflow CVEs (via plotnine
    0.13.6, the last plotnine release supporting Python 3.9)
  - pytest 8.4.2: tmpdir handling CVE (fixed in 9.0.3)

Bumping requires-python to >=3.10 resolves all three to safe versions.
uv audit now reports zero known vulnerabilities across 49 packages (down
from 71 with the Python 3.9 resolution tree included).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@alastairrushworth alastairrushworth merged commit 0de4b04 into main Jun 6, 2026
6 checks passed
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