Release beadhub to PyPI
Steps
- •
Determine version. If
$ARGUMENTSis provided, use it. Otherwise read the current version frompyproject.tomland ask what the new version should be. - •
Verify clean state:
bashgit status git log origin/main..HEAD --oneline
Working tree must be clean and up to date with origin. If there are unpushed commits, show them and ask whether to proceed.
- •
Run quality gates (all must pass):
bashuv run black src/ tests/ uv run isort src/ tests/ uv run ruff check src/ tests/ uv run mypy uv run pytest --tb=short -q
- •
Bump version in
pyproject.tomlto the target version. - •
Clean old artifacts and build:
bashrm -rf dist/ uv build
- •
Verify the package:
- •Check that
dist/contains exactly one.tar.gzand one.whl, both with the correct version in the filename. - •List the wheel contents and verify the package looks right:
bash
unzip -l dist/beadhub-<VERSION>-py3-none-any.whl
- •Confirm no unexpected files (credentials, .env files, large binaries) are included.
- •Report the artifact filenames and sizes to the user.
- •Check that
- •
Commit and push:
bashgit add pyproject.toml uv.lock git commit -m "release: Bump version to <VERSION>" git push
- •
Report ready. Tell the user the build artifacts in
dist/are verified and ready. They can publish withuv publish.
Version Format
MAJOR.MINOR.PATCH (no v prefix — this is a Python package, not a git tag).