Pypi testpypi release coordination
Skill kjuhwa/skills-hub/skills/release/pypi-testpypi-release-coordination
Release pipeline tags python-test-v* for TestPyPI dry runs and python-v* for PyPI; the workflow validates tag-vs-pyproject version, builds wheels, smoke-tests on TestPyPI, then promotes to PyPI.From its SKILL.md
npx -y skills add kjuhwa/skills-hub --skill pypi-testpypi-release-coordinationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
1.8 KB, 290 tokens by cl100k_base, as published. Nobody here has run it
Pypi Testpypi Release Coordination
Trigger: You publish a Python package and want a staged rollout instead of pushing straight to PyPI.
Steps
- Use distinct tag prefixes for dry-run vs prod (python-test-v* → TestPyPI, python-v* → PyPI).
- On tag push, extract the version, compare against pyproject.toml — abort on mismatch.
- Build all platform wheels; download as artifacts; install + smoke-test each one in a fresh venv.
- Push to TestPyPI; pip install from TestPyPI in a clean container; run the smoke test again.
- Only on green TestPyPI smoke do you publish to real PyPI.
- Auto-generate GitHub Release notes from the tag for human-readable changelogs.
Counter / Caveats
- Version bumps in pyproject.toml are still manual — easy to forget and create tag/version mismatch.
- TestPyPI is a separate index with separate wheel storage; rate limits and outages happen.
- PyPI does not allow re-uploading the same version; use -rcN tags during pre-release iteration.
- Token leaks compromise the package; use fine-grained GitHub Secrets and rotate.
Source
Extracted from magika (https://github.com/google/magika.git @ main).
Files of interest:
.github/workflows/python-build-and-release-package.yml:27-70
What ships with it: 1 file
895 B alongside SKILL.md
- content.md895 B