Skip to content

ci: fix Build & verify and coverage on 3.14 - #338

Merged
henryiii merged 2 commits into
pypa:mainfrom
henryiii:ci/bump-baipp
Aug 13, 2026
Merged

ci: fix Build & verify and coverage on 3.14#338
henryiii merged 2 commits into
pypa:mainfrom
henryiii:ci/bump-baipp

Conversation

@henryiii

@henryiii henryiii commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

🤖 AI text below 🤖

Two changes are needed together to make CI green.

1. Bump build-and-inspect-python-package to v3.0.1

Build & verify fails on main: twine check --strict rejects our own wheel with InvalidDistribution: Invalid distribution metadata: '2.5' is not a valid metadata version. flit-core now writes Metadata-Version: 2.5, and the pinned action shipped twine 6, which does not know that version.

baipp v3.0.0 bumps to twine 7, which adds support for metadata 2.5 and PEP 794. v3.0.1 also moves the tool installation to a separate directory and unsets UV_EXCLUDE_NEWER, so our [tool.uv] exclude-newer no longer leaks into the build tools.

Verified locally that twine 6.2.0 rejects our wheel and twine 7.0.0 passes it, with packaging held at the 26.2 the action pins. The v3 line no longer force-tags moving @v3 tags, so the full commit hash pin stays as is; the artifact is still named Packages, so the download step needs no change.

2. Drop coverage dynamic contexts

sysmon, the default coverage core on Python 3.14 and later, cannot record dynamic contexts, so the test runs fail there. This removes --cov-context=test from both nox sessions and html.show_contexts from pyproject.toml.

The alternative was to pin run.core = "ctrace" (as pypa/build did), but that gives up the sysmon speedup. Coverage totals and the Codecov XML do not change; only the per-line "which tests covered this" view in the local HTML report is lost.

v3.0.0 ships twine 7, which accepts metadata 2.5. flit-core now writes
Metadata-Version 2.5, so "twine check --strict" in the older twine 6
rejected our own wheel and the "Build & verify" job failed.

v3.0.1 also runs its tool installation in a different directory and
unsets UV_EXCLUDE_NEWER, so our [tool.uv] exclude-newer no longer
applies to the build tools.

Assisted-by: ClaudeCode:claude-opus-5
sysmon, the default coverage core on Python 3.14+, cannot record dynamic
contexts. Remove --cov-context=test and html.show_contexts; only the
per-line "which tests covered this" view in the local HTML report is
lost.

Assisted-by: ClaudeCode:claude-opus-5
@henryiii henryiii changed the title ci: bump build-and-inspect-python-package to v3.0.1 ci: fix Build & verify and coverage on 3.14 Aug 13, 2026
@henryiii
henryiii merged commit a434728 into pypa:main Aug 13, 2026
25 checks passed
@henryiii
henryiii deleted the ci/bump-baipp branch August 13, 2026 03:52
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