Release Process¶
This guide covers the release process for friTap maintainers.
Version Numbering¶
friTap follows Semantic Versioning:
- MAJOR (X.0.0): Breaking changes, incompatible API changes
- MINOR (X.Y.0): New features, backward-compatible functionality
- PATCH (X.Y.Z): Bug fixes, backward-compatible fixes
Release Types¶
Regular Releases¶
- Feature releases: Every 3-4 months
- Bug fix releases: As needed
- Security releases: Immediate for critical issues
Pre-releases¶
- Alpha: Early development versions (X.Y.Z-alpha.N)
- Beta: Feature-complete, testing phase (X.Y.Z-beta.N)
- Release Candidate: Final testing (X.Y.Z-rc.N)
Release Checklist¶
Pre-Release (1-2 weeks before)¶
- [ ] Feature freeze: No new features, only bug fixes
- [ ] Update dependencies: Ensure all dependencies are current
- [ ] Run comprehensive tests: All platforms and test suites
- [ ] Update documentation: Ensure all docs reflect new features
- [ ] Review security: Check for any security implications
Release Preparation¶
-
[ ] Update version numbers:
-
[ ] Update CHANGELOG.md:
-
[ ] Update documentation version references
- [ ] Create release branch:
release/vX.Y.Z
- [ ] Final testing on release branch
Release Execution¶
-
[ ] Tag the release:
-
[ ] Build distribution packages:
-
[ ] Upload to PyPI:
-
[ ] Create GitHub release:
- Use tag vX.Y.Z
- Include changelog content
-
Attach distribution files
-
[ ] Update documentation site:
Post-Release¶
- [ ] Merge release branch to main
- [ ] Update development version: Set to next version + "-dev"
- [ ] Announce release:
- GitHub Discussions
- Social media (if applicable)
-
Email notifications
-
[ ] Monitor for issues: Watch for bug reports
- [ ] Plan next release: Update roadmap and milestones
Hotfix Process¶
For critical bugs requiring immediate release:
- Create hotfix branch from latest release tag
- Apply minimal fix - only essential changes
- Test thoroughly on affected platforms
- Update version (increment patch number)
- Follow standard release process with expedited timeline
- Backport to main if needed
Release Notes Template¶
# friTap vX.Y.Z Release
## Overview
Brief description of the release focus and major improvements.
## 🚀 New Features
- **Feature name**: Description of new capability
- **Enhancement**: Improvement to existing functionality
## 🐛 Bug Fixes
- **Issue description**: Fix applied
- **Platform fix**: Platform-specific correction
## 📚 Documentation
- Updated installation guide
- New examples and tutorials
- Improved troubleshooting
## 🔧 Technical Changes
- Dependency updates
- Performance improvements
- Code refactoring
## 📦 Installation
```bash
pip install --upgrade fritap
🔗 Links¶
🙏 Contributors¶
Thanks to all contributors for this release: - @contributor1 - @contributor2
📋 Next Steps¶
Preview of next release focus and timeline. ```
Communication¶
Release Announcements¶
GitHub Release: Primary announcement with full details GitHub Discussions: Community notification and discussion Documentation: Updated with new version information PyPI: Automatic via package upload
Breaking Changes¶
For releases with breaking changes:
- Advance notice: Announce in previous release
- Migration guide: Provide clear upgrade instructions
- Deprecation warnings: Include in code where possible
- Extended support: Maintain compatibility period when feasible
Rollback Procedure¶
If critical issues are discovered post-release:
- Assess impact: Determine severity and affected users
- Quick fix: If possible, prepare hotfix release
- PyPI removal: Remove problematic version if necessary
- Communication: Notify users via all channels
- Post-mortem: Analyze what went wrong and improve process
Automation¶
Future improvements to consider:
- Automated testing: Comprehensive CI/CD pipeline
- Release scripts: Automate version updates and tagging
- Distribution: Automatic PyPI uploads via CI
- Notifications: Automated release announcements
Maintainer Notes¶
- Access required: PyPI maintainer permissions, GitHub admin
- Security: Use 2FA for all release-related accounts
- Backup: Keep local copies of release artifacts
- Documentation: Keep this process updated as procedures evolve
For questions about the release process, contact the project maintainers.