release
How to release a new pgdbm library version to PyPI
When & Why to Use This Skill
This Claude skill provides a standardized, step-by-step workflow for releasing the pgdbm Python library to PyPI. It ensures consistency by guiding the user through automated testing, multi-file version synchronization (pyproject.toml, plugin.json), changelog updates, and secure publishing, significantly minimizing manual errors in the software delivery process.
Use Cases
- Streamlining the Python package release process by automating version updates across pyproject.toml, source code, and plugin metadata.
- Ensuring compliance with Semantic Versioning (SemVer) and maintaining an accurate, professional CHANGELOG.md for project transparency.
- Executing a fail-safe deployment to PyPI including pre-release testing, Git tagging, and distribution build cleaning to prevent broken releases.
| name | release |
|---|---|
| description | How to release a new pgdbm library version to PyPI |
Releasing pgdbm
Overview
This skill guides you through releasing a new version of the pgdbm library.
Prerequisites
- All tests passing
- Changes committed to main branch
- CHANGELOG.md updated with changes
Release Checklist
1. Run Tests
uv run pytest
All tests must pass before releasing.
2. Update Version Numbers
Three files need version updates:
# Check current version
grep "^version" pyproject.toml
Update these files to the new version:
| File | Location |
|---|---|
pyproject.toml |
version = "X.Y.Z" |
src/pgdbm/__version__.py |
__version__ = "X.Y.Z" |
.claude-plugin/plugin.json |
"version": "X.Y.Z" |
Important: The plugin.json version controls Claude Code skill caching. Always bump it when releasing.
3. Update CHANGELOG.md
Add entry at the top:
## [X.Y.Z] - YYYY-MM-DD
### Added
- New features
### Changed
- Changes to existing features
### Fixed
- Bug fixes
4. Commit the Release
git add pyproject.toml src/pgdbm/__version__.py .claude-plugin/plugin.json CHANGELOG.md uv.lock
git commit -m "chore: bump version to X.Y.Z
- Summary of changes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>"
5. Create Git Tag
git tag -a vX.Y.Z -m "Release X.Y.Z"
6. Push to GitHub
git push origin main
git push origin vX.Y.Z
7. Publish to PyPI
Important: Clean the dist/ directory first to avoid uploading old versions.
rm -rf dist/
uv build
uv publish
Or if using twine:
rm -rf dist/
uv build
twine upload dist/*
8. Verify Release
# Check PyPI
pip index versions pgdbm
# Check plugin update works
claude plugin update pgdbm@juanre-ai-tools
Version Numbering
Follow semver:
- MAJOR (X.0.0): Breaking API changes
- MINOR (0.X.0): New features, backward compatible
- PATCH (0.0.X): Bug fixes, documentation
Related Skills
- For skill updates: See
publish-skillsskill