Skip to content

👷 build: bump gh-action-pypi-publish to v1.14.2 - #48

Merged
nstarman merged 1 commit into
GalacticDynamics:mainfrom
nstarman:claude/fix-pypi-publish-metadata
Aug 19, 2026
Merged

👷 build: bump gh-action-pypi-publish to v1.14.2#48
nstarman merged 1 commit into
GalacticDynamics:mainfrom
nstarman:claude/fix-pypi-publish-metadata

Conversation

@nstarman

Copy link
Copy Markdown
Contributor

Problem

The v1.6.0 CD run failed in the TestPyPI job, blocking the release (PyPI is still at 1.5.2):

Checking dist/diffraxtra-1.6.0-py3-none-any.whl: ERROR InvalidDistribution:
Invalid distribution metadata: '2.5' is not a valid metadata version

Root cause

Not the package — the publisher. pypa/gh-action-pypi-publish@v1.13.0 (Sept 2025) pins packaging==25.0 / twine==6.1.0, and packaging 25.0's validator tops out at Metadata-Version 2.4:

packaging accepted metadata versions
25.0 (v1.13.0) 1.0 … 2.3, 2.4
26.2 (v1.14.2) 1.0 … 2.4, 2.5, 2.6

hatchling 1.32 now emits Metadata-Version: 2.5, so the pinned validator rejects a perfectly valid wheel.

Verification

Downloaded the exact artifacts from the failed run and checked them with twine 7.0.0 (what v1.14.2 ships):

Checking diffraxtra-1.6.0-py3-none-any.whl: PASSED
Checking diffraxtra-1.6.0.tar.gz:           PASSED

The dists were always fine; only the publish action was stale.

Follow-ups (not in this PR)

  • v1.6.0 needs re-cutting. The release pointed at 506de69, which is current main — the tag no longer exists upstream. Re-running the failed job would replay the old workflow, so this has to land first, then the release gets re-created.
  • Why the pin rotted: .github/dependabot.yml schedules github-actions updates quarterly. v1.14.2 shipped 2026-07-29, three weeks before the release. Worth considering weekly for a pin that gates publishing.

🤖 Generated with Claude Code

v1.13.0 pins packaging==25.0, whose metadata validator tops out at
Metadata-Version 2.4. hatchling now emits 2.5, so the v1.6.0 release
failed in the TestPyPI job with:

    InvalidDistribution: Invalid distribution metadata: '2.5' is not a
    valid metadata version

v1.14.2 pins packaging==26.2 / twine==7.0.0, which accept 2.5. Verified
locally: twine 7.0.0 passes `twine check` on the exact dists the failed
run produced.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@codecov

codecov Bot commented Aug 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (main@506de69). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #48   +/-   ##
=======================================
  Coverage        ?   98.30%           
=======================================
  Files           ?        5           
  Lines           ?      177           
  Branches        ?        0           
=======================================
  Hits            ?      174           
  Misses          ?        3           
  Partials        ?        0           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@nstarman nstarman added this to the v1.6.x milestone Aug 19, 2026
@nstarman
nstarman merged commit 20baa2e into GalacticDynamics:main Aug 19, 2026
21 checks passed
@nstarman
nstarman deleted the claude/fix-pypi-publish-metadata branch August 19, 2026 03:52
nstarman added a commit that referenced this pull request Aug 19, 2026
Co-authored-by: Nathaniel Starkman <nstarman@users.noreply.github.com>
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