[refactor] Streamline create-frontend-release command (#4546)

This commit is contained in:
Christian Byrne
2025-07-27 00:53:28 -07:00
committed by GitHub
parent 67277d483d
commit 68f50670d3

View File

@@ -138,7 +138,6 @@ echo "Last stable release: $LAST_STABLE"
```bash ```bash
npm run test:unit npm run test:unit
npm run test:component npm run test:component
npm run test:browser
``` ```
2. Run type checking: 2. Run type checking:
```bash ```bash
@@ -170,7 +169,7 @@ echo "Last stable release: $LAST_STABLE"
3. Generate breaking change summary 3. Generate breaking change summary
4. **COMPATIBILITY REVIEW**: Breaking changes documented and justified? 4. **COMPATIBILITY REVIEW**: Breaking changes documented and justified?
### Step 7: Generate and Save Changelog ### Step 7: Generate Comprehensive Release Notes
1. Extract commit messages since base release: 1. Extract commit messages since base release:
```bash ```bash
@@ -185,44 +184,25 @@ echo "Last stable release: $LAST_STABLE"
echo "WARNING: PR #$PR not on main branch!" echo "WARNING: PR #$PR not on main branch!"
done done
``` ```
3. Group by type: 3. Create comprehensive release notes including:
- 🚀 **Features** (feat:) - **Version Change**: Show version bump details
- 🐛 **Bug Fixes** (fix:) - **Changelog** grouped by type:
- 💥 **Breaking Changes** (BREAKING CHANGE) - 🚀 **Features** (feat:)
- 📚 **Documentation** (docs:) - 🐛 **Bug Fixes** (fix:)
- 🔧 **Maintenance** (chore:, refactor:) - 💥 **Breaking Changes** (BREAKING CHANGE)
- ⬆️ **Dependencies** (deps:, dependency updates) - 📚 **Documentation** (docs:)
4. Include PR numbers and links - 🔧 **Maintenance** (chore:, refactor:)
5. Add issue references (Fixes #123) - ⬆️ **Dependencies** (deps:, dependency updates)
6. **Save changelog locally:** - Include PR numbers and links
```bash - Add issue references (Fixes #123)
# Save to dated file for history
echo "$CHANGELOG" > release-notes-${NEW_VERSION}-$(date +%Y%m%d).md
# Save to current for easy access
echo "$CHANGELOG" > CURRENT_RELEASE_NOTES.md
```
7. **CHANGELOG REVIEW**: Verify all PRs listed are actually on main branch
### Step 8: Create Enhanced Release Notes
1. Create comprehensive user-facing release notes including:
- **What's New**: Major features and improvements
- **Bug Fixes**: User-visible fixes
- **Breaking Changes**: Migration guide if applicable
- **Dependencies**: Major dependency updates
- **Performance**: Notable performance improvements
- **Contributors**: Thank contributors for their work
2. Reference related documentation updates
3. Include screenshots for UI changes (if available)
4. **Save release notes:** 4. **Save release notes:**
```bash ```bash
# Enhanced release notes for GitHub # Save release notes for PR and GitHub release
echo "$RELEASE_NOTES" > github-release-notes-${NEW_VERSION}.md echo "$RELEASE_NOTES" > release-notes-${NEW_VERSION}.md
``` ```
5. **CONTENT REVIEW**: Release notes clear and helpful for users? 5. **CONTENT REVIEW**: Release notes clear and comprehensive?
### Step 9: Create Version Bump PR ### Step 8: Create Version Bump PR
**For standard version bumps (patch/minor/major):** **For standard version bumps (patch/minor/major):**
```bash ```bash
@@ -258,25 +238,20 @@ echo "Workflow triggered. Waiting for PR creation..."
# For manual PRs # For manual PRs
gh pr create --title "${NEW_VERSION}" \ gh pr create --title "${NEW_VERSION}" \
--body-file enhanced-pr-description.md \ --body-file release-notes-${NEW_VERSION}.md \
--label "Release" --label "Release"
``` ```
3. **Create enhanced PR description:** 3. **Add required sections to PR body:**
```bash ```bash
cat > enhanced-pr-description.md << EOF # Create PR body with release notes plus required sections
# Release v${NEW_VERSION} cat > pr-body.md << EOF
${RELEASE_NOTES}
## Version Change
\`${CURRENT_VERSION}\` → \`${NEW_VERSION}\` (${VERSION_TYPE})
## Changelog
${CHANGELOG}
## Breaking Changes ## Breaking Changes
${BREAKING_CHANGES} ${BREAKING_CHANGES:-None}
## Testing Performed ## Testing Performed
- ✅ Full test suite (unit, component, browser) - ✅ Full test suite (unit, component)
- ✅ TypeScript compilation - ✅ TypeScript compilation
- ✅ Linting checks - ✅ Linting checks
- ✅ Build verification - ✅ Build verification
@@ -295,15 +270,11 @@ echo "Workflow triggered. Waiting for PR creation..."
``` ```
4. Update PR with enhanced description: 4. Update PR with enhanced description:
```bash ```bash
gh pr edit ${PR_NUMBER} --body-file enhanced-pr-description.md gh pr edit ${PR_NUMBER} --body-file pr-body.md
``` ```
5. Add changelog as comment for easy reference: 5. **PR REVIEW**: Version bump PR created and enhanced correctly?
```bash
gh pr comment ${PR_NUMBER} --body-file CURRENT_RELEASE_NOTES.md
```
6. **PR REVIEW**: Version bump PR created and enhanced correctly?
### Step 11: Critical Release PR Verification ### Step 9: Critical Release PR Verification
1. **CRITICAL**: Verify PR has "Release" label: 1. **CRITICAL**: Verify PR has "Release" label:
```bash ```bash
@@ -325,7 +296,7 @@ echo "Workflow triggered. Waiting for PR creation..."
``` ```
7. **FINAL CODE REVIEW**: Release label present and no [skip ci]? 7. **FINAL CODE REVIEW**: Release label present and no [skip ci]?
### Step 12: Pre-Merge Validation ### Step 10: Pre-Merge Validation
1. **Review Requirements**: Release PRs require approval 1. **Review Requirements**: Release PRs require approval
2. Monitor CI checks - watch for update-locales 2. Monitor CI checks - watch for update-locales
@@ -333,7 +304,7 @@ echo "Workflow triggered. Waiting for PR creation..."
4. Check no new commits to main since PR creation 4. Check no new commits to main since PR creation
5. **DEPLOYMENT READINESS**: Ready to merge? 5. **DEPLOYMENT READINESS**: Ready to merge?
### Step 13: Execute Release ### Step 11: Execute Release
1. **FINAL CONFIRMATION**: Merge PR to trigger release? 1. **FINAL CONFIRMATION**: Merge PR to trigger release?
2. Merge the Release PR: 2. Merge the Release PR:
@@ -358,7 +329,7 @@ echo "Workflow triggered. Waiting for PR creation..."
gh run watch ${WORKFLOW_RUN_ID} gh run watch ${WORKFLOW_RUN_ID}
``` ```
### Step 14: Enhance GitHub Release ### Step 12: Enhance GitHub Release
1. Wait for automatic release creation: 1. Wait for automatic release creation:
```bash ```bash
@@ -371,10 +342,10 @@ echo "Workflow triggered. Waiting for PR creation..."
2. **Enhance the GitHub release:** 2. **Enhance the GitHub release:**
```bash ```bash
# Update release with our enhanced notes # Update release with our release notes
gh release edit v${NEW_VERSION} \ gh release edit v${NEW_VERSION} \
--title "🚀 ComfyUI Frontend v${NEW_VERSION}" \ --title "🚀 ComfyUI Frontend v${NEW_VERSION}" \
--notes-file github-release-notes-${NEW_VERSION}.md \ --notes-file release-notes-${NEW_VERSION}.md \
--latest --latest
# Add any additional assets if needed # Add any additional assets if needed
@@ -386,7 +357,7 @@ echo "Workflow triggered. Waiting for PR creation..."
gh release view v${NEW_VERSION} gh release view v${NEW_VERSION}
``` ```
### Step 15: Verify Multi-Channel Distribution ### Step 13: Verify Multi-Channel Distribution
1. **GitHub Release:** 1. **GitHub Release:**
```bash ```bash
@@ -424,7 +395,7 @@ echo "Workflow triggered. Waiting for PR creation..."
4. **DISTRIBUTION VERIFICATION**: All channels published successfully? 4. **DISTRIBUTION VERIFICATION**: All channels published successfully?
### Step 16: Post-Release Monitoring Setup ### Step 14: Post-Release Monitoring Setup
1. **Monitor immediate release health:** 1. **Monitor immediate release health:**
```bash ```bash
@@ -492,8 +463,7 @@ echo "Workflow triggered. Waiting for PR creation..."
- Plan next release cycle - Plan next release cycle
## Files Generated ## Files Generated
- \`release-notes-${NEW_VERSION}-$(date +%Y%m%d).md\` - Detailed changelog - \`release-notes-${NEW_VERSION}.md\` - Comprehensive release notes
- \`github-release-notes-${NEW_VERSION}.md\` - GitHub release notes
- \`post-release-checklist.md\` - Follow-up tasks - \`post-release-checklist.md\` - Follow-up tasks
EOF EOF
``` ```
@@ -544,7 +514,7 @@ echo "- GitHub: Update release with warning notes"
The command implements multiple quality gates: The command implements multiple quality gates:
1. **🔒 Security Gate**: Vulnerability scanning, secret detection 1. **🔒 Security Gate**: Vulnerability scanning, secret detection
2. **🧪 Quality Gate**: Full test suite, linting, type checking 2. **🧪 Quality Gate**: Unit and component tests, linting, type checking
3. **📋 Content Gate**: Changelog accuracy, release notes quality 3. **📋 Content Gate**: Changelog accuracy, release notes quality
4. **🔄 Process Gate**: Release timing verification 4. **🔄 Process Gate**: Release timing verification
5. **✅ Verification Gate**: Multi-channel publishing confirmation 5. **✅ Verification Gate**: Multi-channel publishing confirmation