This guide outlines the complete release process for Deploy Center, ensuring consistent, high-quality releases.
- Versioning Strategy
- Pre-Release Checklist
- Release Process
- Post-Release Tasks
- Hotfix Procedure
- Rollback Procedure
- npm Publishing
- Docker Publishing
- v3.0 CI & Branch Protection (Operational)
Deploy Center follows Semantic Versioning (SemVer):
- MAJOR (
X.0.0) - Breaking changes, incompatible API changes - MINOR (
0.X.0) - New features, backward-compatible functionality - PATCH (
0.0.X) - Bug fixes, backward-compatible improvements
| Change Type | Example | New Version |
|---|---|---|
| Bug fix | Fix webhook signature verification | 2.0.0 → 2.0.1 |
| New feature | Add Telegram notifications | 2.0.1 → 2.1.0 |
| Breaking change | Change API authentication method | 2.1.0 → 3.0.0 |
- Alpha:
2.1.0-alpha.1- Early development, unstable - Beta:
2.1.0-beta.1- Feature complete, testing phase - RC:
2.1.0-rc.1- Release candidate, final testing
- All tests passing (unit, integration, e2e)
- No linting errors (
npm run lint) - Code coverage meets minimum threshold (80%+)
- No security vulnerabilities (
npm audit) - CodeQL security scan passed
- All TypeScript compilation errors resolved
-
CHANGELOG.mdupdated with all changes -
README.mdreflects new features/changes - API documentation updated (if applicable)
- Migration guide created (for breaking changes)
- All new features documented
- Screenshots/GIFs updated (if UI changed)
- All dependencies up to date
- No deprecated packages in use
- License compatibility verified
- Bundle size acceptable (check with
npm run analyze)
- All migrations tested
- Rollback migrations tested
- Database schema documented
- Seed data updated (if applicable)
- Environment variables documented
-
.env.exampleupdated - Configuration validation working
- Default values reviewed
- Manual testing completed
- Regression testing completed
- Performance testing completed
- Load testing (for major releases)
- Cross-browser testing (client)
- Mobile responsiveness verified (client)
# Ensure you're on the main branch with latest changes
git checkout main
git pull origin main
# Create a release branch
git checkout -b release/v2.1.0Server:
cd server
npm version minor # or major/patch
cd ..Client:
cd client
npm version minor # or major/patch
cd ..Manual Updates:
- Update version in
README.mdbadges - Update version in
package.jsonfiles (if not done by npm version) - Update version in Docker files (if applicable)
Add release notes following Keep a Changelog format:
## [2.1.0] - 2025-11-28
### Added
- Telegram notification integration
- Project health check endpoint
- Deployment rollback functionality
### Changed
- Improved webhook signature verification
- Updated TypeScript to v5.3
- Enhanced error logging with structured logs
### Fixed
- Pipeline execution race condition
- Discord notification delivery failures
- Memory leak in deployment queue
### Security
- Fixed JWT token expiration validation
- Added rate limiting to API endpoints
- Upgraded dependencies with security patches
### Deprecated
- Old `/api/v1/deploy` endpoint (use `/api/v2/deploy`)
### Removed
- Legacy file-based configuration (use database)git add .
git commit -m "chore(release): prepare v2.1.0"
git push origin release/v2.1.0- Create PR from
release/v2.1.0tomain - Title:
Release v2.1.0 - Description: Copy changelog content
- Request reviews from maintainers
- Ensure all CI/CD checks pass
# After PR approval, merge to main
git checkout main
git pull origin main
# Create annotated tag
git tag -a v2.1.0 -m "Release v2.1.0
- Telegram notification integration
- Project health check endpoint
- Deployment rollback functionality
See CHANGELOG.md for full details"
# Push tag to trigger release workflows
git push origin v2.1.0Go to GitHub repository → Releases → Draft a new release
Settings:
-
Tag:
v2.1.0 -
Target:
main -
Release title:
Deploy Center v2.1.0 -
Description:
## 🚀 What's New in v2.1.0 ### ✨ New Features - 📱 Telegram notification integration - 🏥 Project health check endpoint - ↩️ Deployment rollback functionality ### 🔧 Improvements - Enhanced webhook signature verification - Improved error logging with structured logs ### 🐛 Bug Fixes - Fixed pipeline execution race condition - Resolved Discord notification delivery issues ### 📚 Documentation - Added Telegram setup guide - Updated API documentation ## 📦 Installation See [Installation Guide](https://github.com/FutureSolutionDev/Deploy-Center-Server#installation) ## 🔄 Upgrade Instructions ```bash git pull origin main cd server && npm install npm run migrate pm2 restart deploy-center
-
Artifacts: Attach any release binaries/packages
-
Pre-release: Check if this is a pre-release
-
Latest: Set as latest release
- GitHub release created successfully
- Docker images built and pushed (if applicable)
- npm packages published (if applicable)
- Release notes visible on GitHub
- All artifacts attached
- Update documentation website (if separate)
- Update API documentation
- Update examples repository
GitHub:
- Create GitHub Discussion announcement
- Update project README with latest version
Social Media:
- Tweet release announcement
- Post on LinkedIn
- Post on Discord community (if applicable)
Email:
- Notify mailing list subscribers
- Notify enterprise customers
- Monitor error tracking (Sentry, etc.)
- Check deployment success rate
- Review user feedback/issues
- Monitor performance metrics
# Delete release branch
git branch -d release/v2.1.0
git push origin --delete release/v2.1.0
# Update develop branch (if using git-flow)
git checkout develop
git merge main
git push origin developFor critical bugs in production that need immediate release:
git checkout main
git pull origin main
git checkout -b hotfix/v2.1.1# Make necessary fixes
# Update tests
# Update CHANGELOG.mdcd server
npm version patch
cd ../client
npm version patchgit add .
git commit -m "fix: critical security vulnerability in authentication"
git tag -a v2.1.1 -m "Hotfix v2.1.1 - Security patch"# Merge to main
git checkout main
git merge hotfix/v2.1.1
git push origin main v2.1.1
# Merge to develop
git checkout develop
git merge hotfix/v2.1.1
git push origin develop
# Delete hotfix branch
git branch -d hotfix/v2.1.1Follow the same GitHub release process as regular releases.
If a release causes critical issues in production:
Using Git Tags:
# Revert to previous version
git checkout v2.0.1
# For production deployment
pm2 restart deploy-centerUsing GitHub Releases:
- Download previous release artifacts
- Deploy previous version
# Rollback migrations
npm run migrate:rollback
# Or manually restore database backup- Update GitHub release - mark as problematic
- Post incident report issue
- Notify users via email/social media
- Update status page
# Create hotfix for the issue
git checkout -b hotfix/v2.1.1
# Fix issues
# Follow hotfix procedure above# Login to npm
npm login
# Verify authentication
npm whoamicd server
# Dry run to verify package contents
npm publish --dry-run
# Publish to npm
npm publish --access public
# Or for scoped package
npm publish --access publiccd client
# Build production bundle
npm run build
# Publish
npm publish --access public# Check package on npm
npm view @futuresolutiondev/deploy-center-server
# Test installation
npm install @futuresolutiondev/deploy-center-server# Build server image
docker build -t futuresolutiondev/deploy-center-server:2.1.0 -f server/Dockerfile .
docker build -t futuresolutiondev/deploy-center-server:latest -f server/Dockerfile .
# Build client image (if separate)
docker build -t futuresolutiondev/deploy-center-client:2.1.0 -f client/Dockerfile .
docker build -t futuresolutiondev/deploy-center-client:latest -f client/Dockerfile .# Run container
docker run -p 3000:3000 futuresolutiondev/deploy-center-server:2.1.0
# Verify functionality
curl http://localhost:3000/health# Login to Docker Hub
docker login
# Push versioned images
docker push futuresolutiondev/deploy-center-server:2.1.0
docker push futuresolutiondev/deploy-center-client:2.1.0
# Push latest tags
docker push futuresolutiondev/deploy-center-server:latest
docker push futuresolutiondev/deploy-center-client:latestVisit: https://hub.docker.com/r/futuresolutiondev/deploy-center-server
- Major: Yearly or as needed for breaking changes
- Minor: Monthly or bi-monthly for new features
- Patch: As needed for bug fixes (typically weekly)
- Beta Release: First Monday of the month
- Stable Release: Third Monday of the month
- Hotfixes: Any time for critical issues
- Current Version (v2.x): Full support
- Previous Major (v1.x): Security patches only (6 months)
- Older Versions: End of life, no support
# Delete and recreate tag
git tag -d v2.1.0
git push origin :refs/tags/v2.1.0
git tag -a v2.1.0 -m "Release v2.1.0"
git push origin v2.1.0# Check npm credentials
npm whoami
# Clear cache and retry
npm cache clean --force
npm publish# Clear build cache
docker builder prune -a
# Rebuild with no cache
docker build --no-cache -t image:tag .- Semantic Versioning
- Keep a Changelog
- Conventional Commits
- GitHub Releases Documentation
- npm Publishing Guide
Operational checklist for maintaining the CI / branch-protection / release process introduced in v3.0 (F-010). Sources of truth: Constitution §Governance and spec.md FR-037..FR-039.
Where: GitHub → Settings → Branches → "Add rule" / "Edit" for master.
| Setting | Value | Rationale |
|---|---|---|
| Branch name pattern | master |
Production branch |
| Require a pull request before merging | ✅ | Constitution Principle III/VI: review gate |
| Required approving reviews | 1 | Spec FR-039 |
| Dismiss stale pull request approvals when new commits are pushed | ✅ | Forces re-review after force-push or rebase |
| Require status checks to pass before merging | ✅ | Spec FR-037 + FR-039 |
| Require branches to be up to date before merging | ✅ | Avoid silent merge of stale-on-master branch |
| Required status checks | Build & Test on Node 18.x, Build & Test on Node 20.x, ESLint Check, TypeScript Type Check, Prettier Check, CodeQL Security Analysis (javascript) |
The required jobs gate merge |
| Require conversation resolution before merging | ✅ | Don't merge with unresolved review comments |
| Require signed commits | optional (recommended) | Tighter authorship audit |
| Require linear history | ✅ | Cleaner git log, easier rollback |
| Restrict who can push to matching branches | (leave empty for solo; restrict to maintainers when team grows) | — |
| Allow force pushes | ❌ | Never force-push master |
| Allow deletions | ❌ | Never delete master |
Verification: open a draft PR with a deliberately failing change → confirm the merge button is disabled until CI is green AND ≥ 1 approval lands.
Bypass exists for genuine emergencies only (production hotfix where adding tests would block the fix). Misuse erodes the constitution.
- PR author requests bypass in the PR description with rationale.
- Repo Admin (the only role allowed) applies the literal label
ci-skip-coverageto the PR. - Re-trigger CI (or push an empty commit).
- The
coverage-bypass-checkjob:- Verifies the label exists.
- Calls
gh api repos/:owner/:repo/collaborators/:actor/permissionagainst the actor who applied the label. - Sets job output
skip=trueonly ifpermission == 'admin'.
- The bypass is logged in the CI run summary (
::notice::⚠ Coverage gate bypassed by @<actor>) — visible in the PR Checks tab forever. - Author MUST file a follow-up issue tagged
coverage-debtto add the missing tests before the next release.
Audit: quarterly, grep CI run summaries for "Coverage gate bypassed"
and confirm every entry has a closed coverage-debt issue.
# RC
git tag v3.0.0-rc.1 -m "v3.0.0 release candidate 1"
git push origin v3.0.0-rc.1
# Smoke retest on staging (~30 min), per specs/001-v3-foundation/quickstart.md.
# If green:
git tag v3.0.0 -m "v3.0 — Foundation release"
git push origin v3.0.0
gh release create v3.0.0 --notes-file docs/migration-v2-to-v3.mdPost-tag: announce in operator channels; close all v3.0 milestone issues.
git checkout -b hotfix/v3.0.1 v3.0.0
# cherry-pick fix commits from master
git tag v3.0.1Hotfixes MUST pass the same CI gates as master PRs. Constitution coverage
gate is NOT relaxed for hotfixes.
For questions about the release process:
- Email: info@futuresolutionsdev.com
- GitHub Discussions: Deploy Center Discussions
- Issue Tracker: Report Issues