Skip to content

build: make release-check reproducible (lock build/twine, fix packaging conflict) - #63

Merged
Jamestth merged 1 commit into
mainfrom
fix/release-check-deps
Sep 21, 2026
Merged

Jamestth merged 1 commit into
mainfrom
fix/release-check-deps

Conversation

@Jamestth

@Jamestth Jamestth commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Problem

The tag-triggered publish CI job (and local make release-check) fail at the twine step with:

ImportError: cannot import name 'errors' from 'packaging'

Root cause: release-check ran uv pip install --upgrade build twine imperatively (pulling twine 7, which requires packaging>=26.1), but the subsequent uv run re-synced the environment to uv.lock, which pinned packaging==26.0. twine 7 then failed to import packaging.errors.

This blocks the automated release: the publish job builds from the tagged commit, so pushing v0.0.6 as-is would fail CI, skipping the PyPI upload and the GitHub Release (release job needs: publish).

Fix

  • Add a locked release dependency group (build, twine) to pyproject.toml.
  • Switch make release-check from the imperative uv pip install --upgrade build twine to uv sync --group release.
  • Re-lock: uv.lock now carries build, twine 7.0.0, and a coherent packaging 26.3.

Now the build/validate step is reproducible and no longer depends on an imperative upgrade racing the lockfile.

Verification

make release-check passes end-to-end locally (build + twine check):

Checking dist/vowl-*.whl: PASSED
Checking dist/vowl-*.tar.gz: PASSED

🤖 Generated with Claude Code

…heck

make release-check imperatively ran uv pip install --upgrade build twine,
but the subsequent uv run re-synced the environment to the lockfile,
reverting packaging to the locked 26.0 while twine 7 requires >=26.1. That
broke both local release-check and the tag-triggered publish CI job with
"ImportError: cannot import name 'errors' from 'packaging'".

Add a locked release dependency group (build, twine) and switch
release-check to uv sync --group release, so the build/validate step is
reproducible and packaging resolves coherently (now 26.3).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Jamestth
Jamestth requested a review from a team September 21, 2026 10:02
@Jamestth
Jamestth merged commit 5218e3a into main Sep 21, 2026
10 checks passed
@Jamestth
Jamestth deleted the fix/release-check-deps branch September 21, 2026 10:26
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.

2 participants