add publish-pip skill for manual PyPI releases#360
Merged
Conversation
Encoded runbook for the manual (no-CI, no-tag) PyPI release flow: version bump in pyproject.toml, .venv build + twine upload, and the local gotchas hit during the 0.6.6 publish (build/twine absent from a fresh venv, the 'import build' false positive, SSL_CERT_FILE=certifi for PyPI API verification, clean dist before upload, verify the built wheel version before the permanent upload). Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a developer skill at
.agents/skills/publish-pip/SKILL.mddocumenting the manual PyPI release workflow for this repo (no CI, no git tags — version lives only inpyproject.toml; releases are built + uploaded with the venvbuild/twinetools).Why
The
0.6.6publish (erase fix) was done from scratch and hit several non-obvious snags. The skill captures the verified runbook so the next release isn't re-derived:pyproject.toml(line ~7)build+twineare not runtime deps and can be absent from a fresh worktree venv — install + verify with-m build --version/twine --versionimport buildsucceeding is a false positive (can resolve to a localbuild/namespace dir / stale module) — always check-m build --versiondist/ build/ *.egg-infobefore building (re-uploading an existing version is rejected by PyPI)Version:from its METADATA before the permanent uploadCERTIFICATE_VERIFY_FAILED) →SSL_CERT_FILE="$(.venv/bin/python -m certifi)"bump version to X.Y.Z) so the repo matches PyPIValidation
Reference-skill test (non-destructive — no real upload): a fresh subagent followed the skill end-to-end for a hypothetical
0.6.7, executing every safe step and confirming each command runs as written (tooling checks, clean,python -m build, the METADATA version one-liner, theSSL_CERT_FILEPyPI verification). The test caught one broken quick-reference shorthand (SSL_CERT_FILE=$(certifi)—certifiisn't an executable) and an overstatedimport buildmechanism; both fixed and re-verified.Scope
Single new file, no code changes. Separate from the erase fix (PR #348) — kept off that branch to avoid mixing concerns.
🤖 Generated with Claude Code