694 lines
15 KiB
Markdown
694 lines
15 KiB
Markdown
# Deployment & Release Guide
|
|
|
|
**Version:** 2.2.3
|
|
**Last Updated:** 2026-02-07
|
|
**Audience:** Maintainers, DevOps, Release Managers
|
|
|
|
---
|
|
|
|
## 1. Pre-Release Checklist
|
|
|
|
### 1.1 Code Verification
|
|
|
|
Before any release, verify:
|
|
|
|
```bash
|
|
# 1. Check git status (clean working directory)
|
|
git status
|
|
# Expected: On branch main, nothing to commit
|
|
|
|
# 2. Update version numbers in all files
|
|
# - cli/package.json
|
|
# - .claude-plugin/plugin.json
|
|
# - .claude-plugin/marketplace.json
|
|
# - CHANGELOG.md (create if needed)
|
|
VERSION="2.2.3"
|
|
|
|
# 3. Verify all tests pass
|
|
cd src/ui-ux-pro-max && pytest tests/ # When added in v2.3
|
|
cd ../../cli && npm test
|
|
|
|
# 4. Run linting
|
|
npm run lint
|
|
python -m flake8 src/ui-ux-pro-max/scripts/
|
|
python -m mypy src/ui-ux-pro-max/scripts/
|
|
|
|
# 5. Run CLI build
|
|
npm run build
|
|
|
|
# 6. Test installation in temporary directory
|
|
mkdir /tmp/test-uipro
|
|
cd /tmp/test-uipro
|
|
node /path/to/cli/dist/index.js init --ai claude --offline
|
|
# Verify files generated correctly
|
|
```
|
|
|
|
### 1.2 Documentation Verification
|
|
|
|
```bash
|
|
# Check that docs are updated
|
|
grep -r "2.2.3" docs/
|
|
# Should find version in multiple places
|
|
|
|
# Verify all links work
|
|
grep -r "\[.*\](.*\.md)" docs/
|
|
# Should find internal links pointing to existing files
|
|
|
|
# Check for broken references
|
|
grep -r "TODO\|FIXME\|XXX" docs/
|
|
# Should be minimal (only intentional notes)
|
|
```
|
|
|
|
### 1.3 Platform Testing
|
|
|
|
Test the full installation flow for each platform:
|
|
|
|
```bash
|
|
# Test Claude Code (macOS/Linux/Windows)
|
|
uipro init --ai claude --offline
|
|
|
|
# Test Cursor
|
|
uipro init --ai cursor --offline
|
|
|
|
# Test Windsurf
|
|
uipro init --ai windsurf --offline
|
|
|
|
# Test GitHub Copilot
|
|
uipro init --ai copilot --offline
|
|
|
|
# Test offline mode (no GitHub download)
|
|
uipro init --ai claude --offline
|
|
# Should succeed without network call
|
|
```
|
|
|
|
---
|
|
|
|
## 2. Release Process
|
|
|
|
### 2.1 Create Release Branch
|
|
|
|
```bash
|
|
# Create release branch
|
|
git checkout -b release/v2.2.3
|
|
|
|
# Update version numbers
|
|
sed -i 's/"version": "2.2.2"/"version": "2.2.3"/' cli/package.json
|
|
sed -i 's/"version": "2.2.1"/"version": "2.2.3"/' .claude-plugin/marketplace.json
|
|
sed -i 's/"version": "2.0.1"/"version": "2.2.3"/' .claude-plugin/plugin.json
|
|
|
|
# Create CHANGELOG entry
|
|
cat >> CHANGELOG.md << 'EOF'
|
|
## [2.2.3] - 2026-02-07
|
|
|
|
### Added
|
|
- Droid (Factory) platform support
|
|
- Improved error messages for edge cases
|
|
|
|
### Fixed
|
|
- Version alignment (2.0.1 → 2.2.3 in plugin.json)
|
|
- Windows emoji encoding in design system output
|
|
|
|
### Changed
|
|
- Updated CLI assets synchronization
|
|
|
|
### Security
|
|
- No security issues reported
|
|
EOF
|
|
|
|
# Commit
|
|
git add .
|
|
git commit -m "chore: release v2.2.3
|
|
|
|
- Update version numbers across all files
|
|
- Add Droid platform support
|
|
- Align plugin.json with current version"
|
|
```
|
|
|
|
### 2.2 Sync CLI Assets
|
|
|
|
**Critical:** Must sync before npm publish
|
|
|
|
```bash
|
|
# Copy data files
|
|
cp -r src/ui-ux-pro-max/data/* cli/assets/data/
|
|
|
|
# Copy scripts
|
|
cp -r src/ui-ux-pro-max/scripts/* cli/assets/scripts/
|
|
|
|
# Copy templates
|
|
cp -r src/ui-ux-pro-max/templates/* cli/assets/templates/
|
|
|
|
# Verify sync
|
|
ls -la cli/assets/data/ | wc -l
|
|
ls -la cli/assets/scripts/ | wc -l
|
|
ls -la cli/assets/templates/ | wc -l
|
|
|
|
# Should match src/ structure
|
|
|
|
# Commit sync
|
|
git add cli/assets/
|
|
git commit -m "chore: sync CLI assets from src/"
|
|
```
|
|
|
|
### 2.3 Build & Test
|
|
|
|
```bash
|
|
# Build CLI
|
|
cd cli
|
|
npm run build
|
|
|
|
# Verify build output
|
|
ls -la dist/
|
|
# Should contain: index.js, index.js.map, package.json
|
|
|
|
# Test build output
|
|
node dist/index.js --help
|
|
# Should display help menu
|
|
|
|
# Test init command
|
|
mkdir /tmp/release-test
|
|
cd /tmp/release-test
|
|
node /path/to/cli/dist/index.js init --ai claude --offline
|
|
# Verify installation succeeds
|
|
|
|
cd - # Return to project root
|
|
```
|
|
|
|
### 2.4 Create GitHub Release
|
|
|
|
```bash
|
|
# Create git tag
|
|
git tag -a v2.2.3 -m "Release v2.2.3
|
|
|
|
- Droid platform support
|
|
- Version alignment
|
|
- CLI asset synchronization
|
|
- Bug fixes and improvements"
|
|
|
|
# Push to remote
|
|
git push origin release/v2.2.3
|
|
git push origin v2.2.3
|
|
|
|
# Create GitHub release via gh CLI
|
|
gh release create v2.2.3 \
|
|
--title "UI/UX Pro Max v2.2.3" \
|
|
--notes "## Features
|
|
- Droid (Factory) platform support
|
|
- Improved error messages
|
|
|
|
## Fixes
|
|
- Version alignment (plugin.json)
|
|
- Windows emoji encoding
|
|
|
|
## Installation
|
|
\`\`\`bash
|
|
npm install -g uipro-cli@2.2.3
|
|
uipro init --ai claude
|
|
\`\`\`"
|
|
```
|
|
|
|
---
|
|
|
|
## 3. npm Package Publishing
|
|
|
|
### 3.1 npm Authentication
|
|
|
|
```bash
|
|
# Login to npm (one-time)
|
|
npm login
|
|
# Prompts for username, password, 2FA code
|
|
|
|
# Verify login
|
|
npm whoami
|
|
# Should show your npm username
|
|
|
|
# Set up credentials for CI (optional)
|
|
npm token create --read-only
|
|
# For GitHub Actions, add as NPM_TOKEN secret
|
|
```
|
|
|
|
### 3.2 Publish to npm
|
|
|
|
```bash
|
|
# From cli/ directory
|
|
cd cli
|
|
|
|
# Verify package.json is correct
|
|
cat package.json | grep version
|
|
# Should show 2.2.3
|
|
|
|
# Do a dry run first (recommended)
|
|
npm publish --dry-run
|
|
# Shows what would be published without doing it
|
|
|
|
# Publish for real
|
|
npm publish
|
|
|
|
# Verify on npm registry
|
|
npm info uipro-cli
|
|
# Should show version 2.2.3 in "dist-tags"
|
|
```
|
|
|
|
### 3.3 Post-Publish Verification
|
|
|
|
```bash
|
|
# Install from npm (tests installation)
|
|
npm install -g uipro-cli@2.2.3
|
|
|
|
# Verify it works
|
|
uipro --version
|
|
# Should output: 2.2.3
|
|
|
|
# Test init command with installed version
|
|
mkdir /tmp/final-test
|
|
cd /tmp/final-test
|
|
uipro init --ai claude --offline
|
|
|
|
# Check file structure
|
|
ls -la .claude/skills/ui-ux-pro-max/
|
|
# Should contain SKILL.md, data/, scripts/, templates/
|
|
```
|
|
|
|
---
|
|
|
|
## 4. Claude Marketplace Publishing
|
|
|
|
### 4.1 Marketplace Submission
|
|
|
|
**Requirements:**
|
|
- GitHub repository must be public
|
|
- plugin.json or marketplace.json in root
|
|
- All versions aligned
|
|
- Feature descriptions accurate
|
|
|
|
### 4.2 Update Marketplace Metadata
|
|
|
|
```json
|
|
{
|
|
".claude-plugin/marketplace.json": {
|
|
"name": "ui-ux-pro-max-skill",
|
|
"id": "ui-ux-pro-max-skill",
|
|
"metadata": {
|
|
"description": "UI/UX design intelligence skill with 67 styles, 96 palettes, 57 font pairings, 25 charts, and 13 stack guidelines",
|
|
"version": "2.2.3"
|
|
},
|
|
"plugins": [
|
|
{
|
|
"name": "ui-ux-pro-max",
|
|
"version": "2.2.3",
|
|
"description": "Professional UI/UX design intelligence for AI coding assistants..."
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
### 4.3 Submit to Marketplace
|
|
|
|
```bash
|
|
# Automatic via GitHub integration
|
|
# Marketplace watches for:
|
|
# - marketplace.json in root
|
|
# - Version tag matches marketplace version
|
|
# - Automatic sync on push to main
|
|
|
|
# Manual submission (if needed)
|
|
# Go to: https://marketplace.claude.ai/
|
|
# Click "Submit Plugin"
|
|
# Select repository: nextlevelbuilder/ui-ux-pro-max-skill
|
|
# Review metadata
|
|
# Click "Publish"
|
|
```
|
|
|
|
---
|
|
|
|
## 5. Continuous Integration / CD
|
|
|
|
### 5.1 GitHub Actions Workflow
|
|
|
|
Create `.github/workflows/release.yml`:
|
|
|
|
```yaml
|
|
name: Release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
|
|
jobs:
|
|
publish:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Setup Node
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 18
|
|
registry-url: https://registry.npmjs.org/
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Run tests
|
|
run: |
|
|
cd cli && npm test
|
|
python -m pytest src/ui-ux-pro-max/tests/
|
|
|
|
- name: Run linting
|
|
run: |
|
|
npm run lint
|
|
python -m flake8 src/ui-ux-pro-max/scripts/
|
|
|
|
- name: Sync CLI assets
|
|
run: |
|
|
cp -r src/ui-ux-pro-max/data/* cli/assets/data/
|
|
cp -r src/ui-ux-pro-max/scripts/* cli/assets/scripts/
|
|
cp -r src/ui-ux-pro-max/templates/* cli/assets/templates/
|
|
|
|
- name: Build CLI
|
|
run: cd cli && npm run build
|
|
|
|
- name: Publish to npm
|
|
run: cd cli && npm publish
|
|
env:
|
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
|
|
- name: Create GitHub Release
|
|
uses: actions/create-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: ${{ github.ref }}
|
|
release_name: Release ${{ github.ref }}
|
|
body: |
|
|
Release notes here
|
|
## Installation
|
|
```bash
|
|
npm install -g uipro-cli@${{ github.ref }}
|
|
uipro init --ai claude
|
|
```
|
|
draft: false
|
|
prerelease: false
|
|
```
|
|
|
|
### 5.2 Pre-commit Hooks
|
|
|
|
Create `.git/hooks/pre-commit`:
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
|
|
# Check that versions are aligned
|
|
VERSION_CLI=$(grep '"version"' cli/package.json | head -1 | grep -o '"[^"]*"' | tail -1 | tr -d '"')
|
|
VERSION_MARKETPLACE=$(grep '"version"' .claude-plugin/marketplace.json | head -1 | grep -o '"[^"]*"' | tail -1 | tr -d '"')
|
|
VERSION_PLUGIN=$(grep '"version"' .claude-plugin/plugin.json | head -1 | grep -o '"[^"]*"' | tail -1 | tr -d '"')
|
|
|
|
if [ "$VERSION_CLI" != "$VERSION_MARKETPLACE" ] || [ "$VERSION_CLI" != "$VERSION_PLUGIN" ]; then
|
|
echo "❌ Version mismatch!"
|
|
echo " CLI: $VERSION_CLI"
|
|
echo " Marketplace: $VERSION_MARKETPLACE"
|
|
echo " Plugin: $VERSION_PLUGIN"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✓ Versions aligned: $VERSION_CLI"
|
|
```
|
|
|
|
---
|
|
|
|
## 6. Rollback Procedures
|
|
|
|
### 6.1 npm Rollback
|
|
|
|
```bash
|
|
# If something went wrong after publishing
|
|
|
|
# Option 1: Deprecate version
|
|
npm deprecate uipro-cli@2.2.3 "Broken release, use 2.2.2"
|
|
|
|
# Option 2: Publish patch immediately
|
|
# Fix bug
|
|
git checkout -b hotfix/v2.2.4
|
|
# ... make fixes ...
|
|
# Follow release process for v2.2.4
|
|
|
|
# Option 3: Unpublish (not recommended, breaks caching)
|
|
npm unpublish uipro-cli@2.2.3
|
|
```
|
|
|
|
### 6.2 Git Rollback
|
|
|
|
```bash
|
|
# If tag was created in error
|
|
git tag -d v2.2.3 # Delete local tag
|
|
git push origin :refs/tags/v2.2.3 # Delete remote tag
|
|
|
|
# If branch was merged
|
|
git revert -m 1 <commit-hash>
|
|
git push origin main
|
|
```
|
|
|
|
### 6.3 Marketplace Rollback
|
|
|
|
```bash
|
|
# Marketplace sync is automatic
|
|
# To fix:
|
|
1. Fix plugin.json/marketplace.json
|
|
2. Push to main
|
|
3. Marketplace auto-syncs within 5 minutes
|
|
4. Broken version remains available (manual cleanup via marketplace UI)
|
|
```
|
|
|
|
---
|
|
|
|
## 7. Release Documentation
|
|
|
|
### 7.1 CHANGELOG Format
|
|
|
|
```markdown
|
|
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
## [2.2.3] - 2026-02-07
|
|
|
|
### Added
|
|
- Droid (Factory) platform support
|
|
- Caching layer for repeated queries (v2.3 target)
|
|
|
|
### Fixed
|
|
- Version alignment: plugin.json updated from v2.0.1 to v2.2.3
|
|
- Windows emoji encoding in design system output
|
|
|
|
### Changed
|
|
- CLI assets synchronization before publish
|
|
- Improved error messages for missing CSVs
|
|
|
|
### Security
|
|
- No security vulnerabilities reported
|
|
|
|
### Deprecated
|
|
- Legacy plugin format (v2.0.1) - use v2.2.3+
|
|
|
|
## [2.2.1] - 2026-01-15
|
|
|
|
### Added
|
|
- Marketplace integration
|
|
- v2.0 design system generation
|
|
```
|
|
|
|
### 7.2 Release Notes Template
|
|
|
|
```markdown
|
|
## UI/UX Pro Max v2.2.3
|
|
|
|
Professional UI/UX design intelligence for 15 AI coding assistants.
|
|
|
|
### What's New
|
|
|
|
#### Droid Platform Support
|
|
UI/UX Pro Max now works with Droid (Factory mode)! Install with:
|
|
```bash
|
|
uipro init --ai droid
|
|
```
|
|
|
|
#### Bug Fixes
|
|
- Fixed version mismatch in plugin.json (was v2.0.1, now v2.2.3)
|
|
- Fixed Windows emoji encoding in design system output
|
|
|
|
#### Improved Installation
|
|
- Faster offline installation (uses bundled assets)
|
|
- Better error messages for troubleshooting
|
|
|
|
### Installation
|
|
|
|
```bash
|
|
npm install -g uipro-cli@2.2.3
|
|
uipro init --ai claude # Claude Code
|
|
uipro init --ai cursor # Cursor
|
|
uipro init --ai windsurf # Windsurf
|
|
uipro init --ai copilot # GitHub Copilot
|
|
# ... and 10+ other platforms
|
|
```
|
|
|
|
### Documentation
|
|
|
|
- [Quick Start](README.md)
|
|
- [Design System Generation](docs/system-architecture.md)
|
|
- [Platform Guides](docs/)
|
|
- [Contributing](CONTRIBUTING.md)
|
|
|
|
### Downloads
|
|
|
|
- npm: `npm install -g uipro-cli@2.2.3`
|
|
- GitHub: [Download Release](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/releases/tag/v2.2.3)
|
|
|
|
### Credits
|
|
|
|
Thank you to all contributors and the community! 🎉
|
|
|
|
---
|
|
|
|
**Previous Releases:** [Changelog](CHANGELOG.md) | [Releases](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/releases)
|
|
```
|
|
|
|
---
|
|
|
|
## 8. Deployment Checklist
|
|
|
|
### 8.1 Before Release
|
|
|
|
- [ ] All tests pass locally
|
|
- [ ] Linting passes (Python & TypeScript)
|
|
- [ ] Version numbers aligned (2.2.3)
|
|
- [ ] CHANGELOG updated
|
|
- [ ] CLI assets synced
|
|
- [ ] README reviewed and updated
|
|
- [ ] Documentation links verified
|
|
- [ ] No console.log or debug statements
|
|
- [ ] No hardcoded secrets or API keys
|
|
|
|
### 8.2 During Release
|
|
|
|
- [ ] Create release branch: `release/v2.2.3`
|
|
- [ ] Update version numbers in all files
|
|
- [ ] Commit changes with descriptive message
|
|
- [ ] Build CLI: `npm run build`
|
|
- [ ] Test installation in temp directory
|
|
- [ ] Create GitHub tag: `git tag -a v2.2.3`
|
|
- [ ] Push branch and tag to GitHub
|
|
- [ ] Publish to npm: `npm publish`
|
|
- [ ] Verify npm package page
|
|
- [ ] Create GitHub release with notes
|
|
- [ ] Update marketplace.json
|
|
|
|
### 8.3 After Release
|
|
|
|
- [ ] Announce on social media (@nextlevelbuilder)
|
|
- [ ] Post to GitHub Discussions
|
|
- [ ] Update website homepage (if applicable)
|
|
- [ ] Send email to newsletter subscribers
|
|
- [ ] Monitor GitHub issues for bugs
|
|
- [ ] Respond to user questions
|
|
- [ ] Update installed version info in docs
|
|
|
|
---
|
|
|
|
## 9. Monitoring & Analytics
|
|
|
|
### 9.1 npm Package Metrics
|
|
|
|
```bash
|
|
# View downloads
|
|
npm view uipro-cli downloads
|
|
|
|
# View version distribution
|
|
npm view uipro-cli versions
|
|
|
|
# View weekly downloads
|
|
curl -s 'https://api.npmjs.org/downloads/point/last-week/uipro-cli'
|
|
```
|
|
|
|
### 9.2 GitHub Metrics
|
|
|
|
```bash
|
|
# Clone stats
|
|
git clone https://github.com/nextlevelbuilder/ui-ux-pro-max-skill.git
|
|
cd ui-ux-pro-max-skill
|
|
git log --oneline | wc -l # Total commits
|
|
|
|
# Star history
|
|
# View at: https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/stargazers
|
|
```
|
|
|
|
### 9.3 User Feedback
|
|
|
|
- Monitor GitHub issues
|
|
- Review npm package reviews
|
|
- Check marketplace ratings
|
|
- Respond to GitHub Discussions
|
|
- Analyze error reports
|
|
|
|
---
|
|
|
|
## 10. Troubleshooting Deployment Issues
|
|
|
|
### 10.1 npm Publish Fails
|
|
|
|
```bash
|
|
# Issue: "npm ERR! 403 Forbidden"
|
|
# Solution: Check npm credentials
|
|
npm login
|
|
npm whoami
|
|
|
|
# Issue: "npm ERR! 404 Not Found"
|
|
# Solution: Check package.json name and files
|
|
cat cli/package.json | grep -E '"name"|"files"'
|
|
|
|
# Issue: "npm ERR! version conflicts"
|
|
# Solution: Increment version
|
|
npm version patch # Bumps version automatically
|
|
```
|
|
|
|
### 10.2 GitHub Release Fails
|
|
|
|
```bash
|
|
# Issue: "fatal: tag 'v2.2.3' already exists"
|
|
# Solution: Delete existing tag
|
|
git tag -d v2.2.3
|
|
git push origin :refs/tags/v2.2.3
|
|
|
|
# Issue: "Permission denied"
|
|
# Solution: Check GitHub token
|
|
gh auth login
|
|
gh auth status
|
|
```
|
|
|
|
### 10.3 Platform Installation Fails
|
|
|
|
```bash
|
|
# Issue: ".claude directory not found"
|
|
# Solution: Create manually or use --create flag
|
|
mkdir -p ~/.claude/skills
|
|
uipro init --ai claude
|
|
|
|
# Issue: "Python not found"
|
|
# Solution: Ensure Python 3 installed
|
|
python3 --version
|
|
which python3
|
|
```
|
|
|
|
---
|
|
|
|
## 11. Unresolved Questions
|
|
|
|
1. **Automated Testing:** Should we add nightly tests for all 15 platforms?
|
|
2. **Analytics:** How to track which platforms are most popular?
|
|
3. **Deprecation Policy:** When to remove support for old platforms?
|
|
4. **Semantic Versioning:** Should design system changes trigger minor version bumps?
|
|
5. **Security Updates:** Process for immediate security patches?
|