Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.6 KiB
Release a new version of responder to PyPI and GitHub.
Usage: /release (e.g. /release 3.6.0)
If no version is provided, ask the user what version to release.
Steps
-
Verify clean state: Run
git statusand ensure the working tree is clean. If not, stop and ask the user. -
Run tests: Run
uv run pytest -x --no-header -q. If any fail, stop and report. -
Bump version: Update
responder/__version__.pyto the new version. -
Update changelog:
- Run
git log --oneline $(git describe --tags --abbrev=0)..HEADto get commits since last release. - Add a new section in
CHANGELOG.mdunder## [Unreleased]with the date, categorized into Added/Changed/Fixed/Removed. - Update the compare links at the bottom of the file.
- Run
-
Lock deps: Run
uv lock. -
Commit: Stage
responder/__version__.py,CHANGELOG.md, anduv.lock. Commit with messageBump version to X.Y.Z and update changelog. -
Push and tag:
git push git tag vX.Y.Z git push origin vX.Y.Z -
GitHub release: Create a release with
gh release createincluding highlights and a link to the full changelog. -
Build and publish:
uv build uvx twine upload dist/responder-X.Y.Z*Note: This requires a PyPI token. If twine fails due to auth, tell the user to set
TWINE_USERNAME=__token__andTWINE_PASSWORDand re-run, or run! uvx twine upload dist/responder-X.Y.Z*interactively. -
Update GitHub release: Edit the release to add a link to the PyPI page:
https://pypi.org/project/responder/X.Y.Z/ -
Report: Print a summary with links to the GitHub release and PyPI page.