pywf-oss-release
Release a new version of a pywf open-source Python library: bump the version, make sure the changelog, tests, and docs are ready, then publish to PyPI and create the GitHub release, asking for the use
SKILL.md.claude/skills/pywf-oss-release/SKILL.md
GitHubTake the repo from "the change is done" to "the version is on PyPI and tagged on GitHub". Stop for the user's yes before every step that cannot be undone.
Read ../pywf-oss-base/SKILL.md, then:
- ../pywf-oss-base/references/01-secrets.md
- ../pywf-oss-base/references/03-mise.md
- ../pywf-oss-base/references/22-versioning-and-changelog.md
- ../pywf-oss-base/references/23-release.md
Steps
- Version.
- Show the last tag and the current
pyproject.tomlversion. - If they are equal, propose a bump (PATCH, MINOR, or MAJOR) with a one-line reason from the
api.pydiff, and apply it after the user's yes.
- Show the last tag and the current
- Changelog. If
release-history.rsthas no section for the target version, or a stale one, run thepywf-oss-changelogsteps first. - Checks.
mise run cov,mise run lint, andmise run build-docpass.git statusis clean, apart from the version bump (pyproject.toml,uv.lock) and the changelog edit.- On any failure, report it and stop.
- Commit and push. Show the commit message; commit and push to
mainafter the user's yes. - Publish. Ask: "Publish
<package_name><version>to PyPI?" After the user's yes, runmise run publish. - GitHub release. Ask, and run
mise run releaseafter the user's yes. - Report. Give the PyPI URL (printed by
publish) and the release URL.
Next step (optional): pywf-oss-write-pypi-skill.