Prepare Release
npx claude-code-templates@latest --command deployment/prepare-release Content
Release Preparation
Prepare and validate release: $ARGUMENTS
Current Release Context
- Current version: !
git describe --tags --abbrev=0 2>/dev/null || echo "No previous releases" - Package version: @package.json or @setup.py or @pyproject.toml or @go.mod (if exists)
- Unreleased changes: !
git log $(git describe --tags --abbrev=0)..HEAD --oneline 2>/dev/null | wc -l || echo "All commits" - Branch status: !
git status --porcelain | wc -l || echo "0"uncommitted changes - Build status: !
npm test 2>/dev/null || python -m pytest 2>/dev/null || go test ./... 2>/dev/null || echo "Test framework detection needed"
Task
Systematic release preparation: $ARGUMENTS
Release Planning and Validation
- Determine release version number (semantic versioning)
- Review and validate all features included in release
- Check that all planned issues and features are complete
- Verify release criteria and acceptance requirements
Pre-Release Checklist
- Ensure all tests are passing (unit, integration, E2E)
- Verify code coverage meets project standards
- Complete security vulnerability scanning
- Perform performance testing and validation
- Review and approve all pending pull requests
Version Management
bash# Check current version git describe --tags --abbrev=0 # Determine next version (semantic versioning) # MAJOR.MINOR.PATCH # MAJOR: Breaking changes # MINOR: New features (backward compatible) # PATCH: Bug fixes (backward compatible) # Example version updates # 1.2.3 -> 1.2.4 (patch) # 1.2.3 -> 1.3.0 (minor) # 1.2.3 -> 2.0.0 (major)Code Freeze and Branch Management
bash# Create release branch from main git checkout main git pull origin main git checkout -b release/v1.2.3 # Alternative: Use main branch directly for smaller releases # Ensure no new features are merged during release processVersion Number Updates
- Update package.json, setup.py, or equivalent version files
- Update version in application configuration
- Update version in documentation and README
- Update API version if applicable
bash# Node.js projects npm version patch # or minor, major # Python projects # Update version in setup.py, __init__.py, or pyproject.toml # Manual version update sed -i 's/"version": "1.2.2"/"version": "1.2.3"/' package.jsonChangelog Generation
markdown# CHANGELOG.md ## [1.2.3] - 2024-01-15 ### Added - New user authentication system - Dark mode support for UI - API rate limiting functionality ### Changed - Improved database query performance - Updated user interface design - Enhanced error handling ### Fixed - Fixed memory leak in background tasks - Resolved issue with file upload validation - Fixed timezone handling in date calculations ### Security - Updated dependencies with security patches - Improved input validation and sanitizationDocumentation Updates
- Update API documentation with new endpoints
- Revise user documentation and guides
- Update installation and deployment instructions
- Review and update README.md
- Update migration guides if needed
Dependency Management
bash# Update and audit dependencies npm audit fix npm update # Python pip-audit pip freeze > requirements.txt # Review security vulnerabilities npm audit snyk testBuild and Artifact Generation
bash# Clean build environment npm run clean rm -rf dist/ build/ # Build production artifacts npm run build # Verify build artifacts ls -la dist/ # Test built artifacts npm run test:buildTesting and Quality Assurance
- Run comprehensive test suite
- Perform manual testing of critical features
- Execute regression testing
- Conduct user acceptance testing
- Validate in staging environment
bash# Run all tests npm test npm run test:integration npm run test:e2e # Check code coverage npm run test:coverage # Performance testing npm run test:performanceSecurity and Compliance Verification
- Run security scans and penetration testing
- Verify compliance with security standards
- Check for exposed secrets or credentials
- Validate data protection and privacy measures
Release Notes Preparation
markdown# Release Notes v1.2.3 ## 🎉 What's New - **Dark Mode**: Users can now switch to dark mode in settings - **Enhanced Security**: Improved authentication with 2FA support - **Performance**: 40% faster page load times ## 🔧 Improvements - Better error messages for form validation - Improved mobile responsiveness - Enhanced accessibility features ## 🐛 Bug Fixes - Fixed issue with file downloads in Safari - Resolved memory leak in background tasks - Fixed timezone display issues ## 📚 Documentation - Updated API documentation - New user onboarding guide - Enhanced troubleshooting section ## 🔄 Migration Guide - No breaking changes in this release - Automatic database migrations included - See [Migration Guide](link) for detailsRelease Tagging and Versioning
bash# Create annotated tag git add . git commit -m "chore: prepare release v1.2.3" git tag -a v1.2.3 -m "Release version 1.2.3 Features: - Dark mode support - Enhanced authentication Bug fixes: - Fixed file upload issues - Resolved memory leaks" # Push tag to remote git push origin v1.2.3 git push origin release/v1.2.3Deployment Preparation
- Prepare deployment scripts and configurations
- Update environment variables and secrets
- Plan deployment strategy (blue-green, rolling, canary)
- Set up monitoring and alerting for release
- Prepare rollback procedures
Staging Environment Validation
bash# Deploy to staging ./deploy-staging.sh v1.2.3 # Run smoke tests npm run test:smoke:staging # Manual validation checklist # [ ] User login/logout # [ ] Core functionality # [ ] New features # [ ] Performance metrics # [ ] Security checksProduction Deployment Planning
- Schedule deployment window
- Notify stakeholders and users
- Prepare maintenance mode if needed
- Set up deployment monitoring
- Plan communication strategy
Release Automation Setup
yaml# GitHub Actions Release Workflow name: Release on: push: tags: - 'v*' jobs: release: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: '18' - name: Install dependencies run: npm ci - name: Run tests run: npm test - name: Build run: npm run build - name: Create Release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: Release ${{ github.ref }} draft: false prerelease: falseCommunication and Announcements
- Prepare release announcement
- Update status page and documentation
- Notify customers and users
- Share on relevant communication channels
- Update social media and marketing materials
Post-Release Monitoring
- Monitor application performance and errors
- Track user adoption of new features
- Monitor system metrics and alerts
- Collect user feedback and issues
- Prepare hotfix procedures if needed
Release Retrospective
- Document lessons learned
- Review release process effectiveness
- Identify improvement opportunities
- Update release procedures
- Plan for next release cycle
Release Types and Considerations:
Patch Release (1.2.3 → 1.2.4):
- Bug fixes only
- No new features
- Minimal testing required
- Quick deployment
Minor Release (1.2.3 → 1.3.0):
- New features (backward compatible)
- Enhanced functionality
- Comprehensive testing
- User communication needed
Major Release (1.2.3 → 2.0.0):
- Breaking changes
- Significant new features
- Migration guide required
- Extended testing period
- User training and support
Hotfix Release:
# Emergency hotfix process
git checkout main
git pull origin main
git checkout -b hotfix/critical-bug-fix
# Make minimal fix
git add .
git commit -m "hotfix: fix critical security vulnerability"
# Fast-track testing and deployment
npm test
git tag -a v1.2.4-hotfix.1 -m "Hotfix for critical security issue"
git push origin hotfix/critical-bug-fix
git push origin v1.2.4-hotfix.1Remember to:
- Test everything thoroughly before release
- Communicate clearly with all stakeholders
- Have rollback procedures ready
- Monitor the release closely after deployment
- Document everything for future releases