TokenPak Release Checklist¶
Run before every release. Every section must be ✓ before publishing.
1️⃣ Version Consistency¶
- pyproject.toml —
version = "X.Y.Z"is bumped - proxy.py —
PROXY_VERSION = "X.Y.Z"matches - tokenpak/init.py —
__version__ = "X.Y.Z"matches - Run check script:
bash scripts/pre-release-check.sh X.Y.Zpasses
2️⃣ Quality Gates¶
- Tests pass:
pytest tests/ -q→ 0 failures, 0 errors - Version command works:
tokenpak versionshows the correct version - Update detection:
tokenpak update --checkdetects the new version as available - Update applies cleanly:
tokenpak update --dry-runruns without errors - Rollback works: After a test update,
tokenpak rollbackrestores previous version
3️⃣ Config Safety ⚠️¶
These cannot be automated — verify manually:
- Config preservation:
~/.tokenpak/config.jsonis NOT modified by update - Vault files untouched: No
.mdor.jsonfiles in~/vault/are modified - System files untouched: No system-level config files (
.bashrc, systemd, etc.) are modified
How to verify:
# Before update
cp ~/.tokenpak/config.json ~/.tokenpak/config.json.backup
tokenpak update --dry-run
diff ~/.tokenpak/config.json ~/.tokenpak/config.json.backup # Should be identical
4️⃣ Documentation¶
- CHANGELOG.md has an entry for this version with:
- Version number and release date
- Summary of new features/fixes
- Any breaking changes or migration notes
- README.md reflects any API changes (if applicable)
- Migration guide written (only if config schema or CLI changed)
5️⃣ Git & Release¶
- Commit message: All changes committed with clear message
git commit -m "Release v X.Y.Z: [summary of changes]" - Git tag:
git tag vX.Y.Z && git push origin vX.Y.Z - PyPI/Cloudsmith: Package published
# For PyPI: pip install build twine python -m build twine upload dist/* # For Cloudsmith (Pro): bash scripts/publish-pro.sh X.Y.Z
✅ Pre-Release Script¶
Use bash scripts/pre-release-check.sh X.Y.Z to automate checks 1-2 and document 4.
This script will: 1. Verify version consistency 2. Run full test suite 3. Check for CHANGELOG entry 4. Report results and halt on first failure
Manual sections (3, 5) must still be done by hand.
🚀 Release Complete¶
After publishing: 1. Close any related GitHub issues 2. Announce in release notes 3. Update external documentation (if applicable)
Notes¶
- No half-releases: If any check fails, fix it before moving to the next section.
- Dry-run first: Always test
update --dry-runbefore committing to a real update. - Rollback tested: If rollback fails, do not ship — fix the rollback mechanism first.