Release Management
Partner Documentation
Manage versions and releases for your DCS-integrated site.
Version Strategy
DCS uses semantic versioning (semver):
MAJOR.MINOR.PATCH| Type | When | Example |
|---|---|---|
| MAJOR | Breaking changes | 2.0.0 |
| MINOR | New features | 1.1.0 |
| PATCH | Bug fixes, text changes | 1.0.1 |
Release Branches
Branch Structure
main ─────────────────────────────────────────────► main
│ ▲
└── release/1.2.0 ──(dev work)──(deploy)──(merge)──┘
│
└── tag: v1.2.0Creating a Release Branch
bash
# From main, create release branch
git checkout main
git pull origin main
git checkout -b release/1.3.0
git push origin release/1.3.0Release Branch Naming
Use the pattern: release/{version}
Examples:
release/1.0.0release/1.2.0release/2.0.0
Development Workflow
1. Start New Version
In the portal:
- Go to Site → Releases
- Click "Create New Version"
- Enter version number
- Branch is created automatically
2. Make Changes
Development requests and direct work go to the release branch:
bash
git checkout release/1.3.0
# Make changes
git commit -m "Add new feature"
git push3. Preview and Test
- Changes deploy to development environment
- Test in the preview site
- Make adjustments as needed
4. Finalize Release
When ready for production:
- Go to Site → Releases → Current Version
- Click "Finalize Release"
- Release branch merges to main
- Tag is created
- Production deploys
Version Bumping
Automatic Bumping
DCS automatically suggests version bumps based on changes:
| Change Type | Suggested Bump |
|---|---|
| Text overrides only | No bump needed |
| Config changes | PATCH |
| New widgets | MINOR |
| New pages | MINOR |
| Layout changes | MINOR |
| Breaking changes | MAJOR |
Manual Override
Override the suggested bump in the portal or via commit message:
bash
git commit -m "Add search feature
[version: minor]"Release Notes
Automatic Generation
DCS generates release notes from:
- Commit messages
- Development requests
- Text override changes
Example Release Notes
markdown
## v1.3.0 (2024-01-15)
### New Features
- Added testimonials section to home page (#123)
- Created new pricing page (#125)
### Improvements
- Updated hero section styling (#124)
- Improved mobile navigation
### Content Updates
- 15 text overrides committed
- Updated SEO metadata for 5 pages
### Contributors
- Jane Doe (3 commits)
- John Smith (2 commits)
- GitHub Copilot (3 commits)Custom Release Notes
Add custom notes in the finalization dialog or via a RELEASE_NOTES.md file.
Tagging
Tag Format
v{version}Examples:
v1.0.0v1.2.3v2.0.0
Tag Contents
Tags include:
- Version number
- Release date
- Commit SHA
- Release notes
Viewing Tags
bash
git tag -l
git show v1.2.0Hotfixes
For urgent production fixes:
1. Create Hotfix Branch
bash
git checkout main
git checkout -b hotfix/1.2.12. Make Fix
bash
# Fix the issue
git commit -m "Fix critical bug"3. Deploy Directly
Hotfixes can bypass the normal release flow:
- Go to Site → Releases
- Click "Emergency Deploy"
- Select hotfix branch
- Confirm deployment
4. Merge Back
bash
# Merge to main
git checkout main
git merge hotfix/1.2.1
# Also merge to current release branch
git checkout release/1.3.0
git merge hotfix/1.2.1Rollback
Via Portal
- Go to Site → Releases
- Find the version to rollback to
- Click "Rollback"
- Confirm
What Happens
- Git reverts to the previous release
- A new patch version is created
- Production deploys the reverted code
Rollback Limitations
- Text overrides are not affected (API-based)
- External integrations may need manual update
- Database changes are not automatically reverted
Change Tracking
View Changes
In the portal:
- Go to Site → Releases → Current Version
- Click "View Changes"
- See all changes since last release
Change Types
| Icon | Type | Description |
|---|---|---|
| 📝 | Text | Text override changes |
| 🔍 | SEO | SEO metadata changes |
| 💻 | Code | Code changes (dev requests) |
| 📄 | Page | New or modified pages |
| 🧩 | Widget | Widget additions/changes |
Release Approval
Approval Settings
Configure in Site → Settings → Releases:
- Auto-approve patches — Deploy patch versions automatically
- Required approvers — Users who must approve major releases
- Approval timeout — Auto-reject after N days
Approval Workflow
- Release is ready
- Approvers are notified
- Each approver reviews changes
- All required approvals received
- Release deploys to production
Multiple Sites
Coordinated Releases
For sites that depend on each other:
- Create release branches with same version
- Develop changes in parallel
- Finalize in correct order
- Use dependencies in workflow
Shared Components
If sites share components:
- Update shared package first
- Bump version in dependent sites
- Test integration before release
Best Practices
1. Regular Releases
- Release frequently (weekly/bi-weekly)
- Smaller releases = lower risk
- Keep release branches short-lived
2. Clear Commit Messages
feat: Add customer testimonials section
- Added 3 testimonial cards
- Responsive design for mobile
- Integrated with useTextContent
Closes #1233. Test Before Finalizing
- Always verify in development environment
- Test on multiple devices
- Check performance metrics
4. Document Breaking Changes
markdown
## v2.0.0 - Breaking Changes
### API Changes
- `useTextContent` now returns `{ t, isLoading, error }` instead of just `t`
### Migration Guide
1. Update composable usage
2. Handle loading state
3. Test error scenarios5. Clean Up Old Branches
bash
# Delete merged release branches
git branch -d release/1.1.0
git push origin --delete release/1.1.0Troubleshooting
Merge Conflicts
- Update release branch from main
- Resolve conflicts locally
- Push resolved version
- Retry finalization
Failed Deployment
- Check workflow logs
- Verify build succeeds locally
- Check Azure SWA status
- Rollback if necessary
Missing Changes
- Verify commits are on release branch
- Check if files are in .gitignore
- Review build output
Next Steps
- Deployment — Deployment workflows
- Development Requests — Automated changes
- GitHub Setup — Repository configuration
