woaru
Version:
Universal Project Setup Autopilot - Analyze and automatically configure development tools for ANY programming language
242 lines (182 loc) • 6.16 kB
Markdown
# WOARU Release Checklist
This checklist ensures that every WOARU release works perfectly with `npx woaru` out-of-the-box.
## 🚨 Critical Pre-Release Steps
### 1. Code Quality & Testing
- [ ] **All tests pass**: `npm test`
- [ ] **Linting passes**: `npm run lint`
- [ ] **Type checking passes**: `npm run typecheck`
- [ ] **Build completes successfully**: `npm run build`
- [ ] **No console errors or warnings** in build output
### 2. Package Validation (MANDATORY)
- [ ] **Package validation passes**: `npm run validate:package`
- [ ] **Critical files verification**:
- [ ] `dist/` directory exists and contains compiled JS
- [ ] `tools/` directory copied to package
- [ ] `ai-models.json` present
- [ ] `templates/` directory present
- [ ] `locales/` directory present
- [ ] `src/database/tools-db.json` present
- [ ] `src/database/tools-db-schema.json` present
### 3. Local Installation Testing (MANDATORY)
```bash
# Create test package
npm pack
# Test in clean directory
mkdir test-release && cd test-release
npm install ../woaru-*.tgz
# Verify CLI works
npx woaru --version
npx woaru init test-project
npx woaru analyze
```
- [ ] **CLI version displays correctly**
- [ ] **`npx woaru init` works without errors**
- [ ] **`npx woaru analyze` works without errors**
- [ ] **No "tools directory not found" errors**
- [ ] **All AI providers load correctly**
- [ ] **Templates are accessible**
- [ ] **Localization works**
### 4. Documentation Updates
- [ ] **Version updated in `package.json`**
- [ ] **CHANGELOG.md updated with new features/fixes**
- [ ] **README.md updated if needed**
- [ ] **API documentation updated if needed**
### 5. Version Management
- [ ] **Version follows semantic versioning**:
- Patch (x.x.X): Bug fixes, no breaking changes
- Minor (x.X.x): New features, backwards compatible
- Major (X.x.x): Breaking changes
```bash
# Version bump
npm version patch # or minor/major
```
## 🔍 Release Testing Matrix
Test the following scenarios before release:
### Operating Systems
- [ ] **macOS**: `npx woaru --version`
- [ ] **Linux**: `npx woaru --version`
- [ ] **Windows**: `npx woaru --version`
### Node.js Versions
- [ ] **Node 18**: Minimum supported version
- [ ] **Node 20**: Current LTS
- [ ] **Node 22**: Latest stable
### Package Managers
- [ ] **npm**: `npx woaru`
- [ ] **yarn**: `yarn dlx woaru`
- [ ] **pnpm**: `pnpm dlx woaru`
### Installation Methods
- [ ] **Global install**: `npm install -g woaru && woaru --version`
- [ ] **npx direct**: `npx woaru --version`
- [ ] **Local project**: `npm install woaru && npx woaru --version`
## 📦 Publication Process
### 1. Final Verification
```bash
# Clean build
rm -rf dist node_modules
npm install
npm run build
# Final validation
npm run validate:package
npm pack --dry-run # Check what gets included
```
- [ ] **Clean install and build successful**
- [ ] **Package contents verified**
- [ ] **No unexpected files in package**
### 2. Git Preparation
```bash
# Commit all changes
git add .
git commit -m "chore(release): Prepare for version X.X.X"
# Create release tag
git tag vX.X.X
```
- [ ] **All changes committed**
- [ ] **Release tag created**
- [ ] **Working directory clean**
### 3. NPM Publication
```bash
# Publish to npm
npm publish
# Verify publication
npm view woaru version
npm view woaru files
```
- [ ] **Publication successful**
- [ ] **Version visible on npm**
- [ ] **Files list correct on npm**
### 4. Post-Publication Verification
```bash
# Test published package (wait 5-10 minutes for npm propagation)
npx clear-npx-cache
npx woaru@latest --version
```
- [ ] **Latest version installs correctly**
- [ ] **CLI works immediately after install**
- [ ] **No missing files errors**
## 🚨 Rollback Procedure
If issues are discovered after release:
### Immediate Actions
1. **Unpublish if within 24 hours**: `npm unpublish woaru@X.X.X`
2. **Or deprecate version**: `npm deprecate woaru@X.X.X "Version has critical issues, use X.X.Y instead"`
### Fix and Re-release
1. **Fix the issue immediately**
2. **Increment patch version**
3. **Re-run full release checklist**
4. **Publish fixed version**
## 📋 Common Release Issues
### "Failed to start supervisor"
- **Cause**: Missing `tools/` directory
- **Fix**: Verify `tools/` in package.json files array and copy-assets.js
### ES Module Import Errors
- **Cause**: Missing .js extensions or __dirname issues
- **Fix**: Run `npm run build:fix-esm`
### "Templates not found"
- **Cause**: Missing `templates/` directory
- **Fix**: Verify templates copying in build process
### Package Size Too Large
- **Cause**: Including unnecessary files
- **Fix**: Review package.json files array and .npmignore
## 🔧 Release Automation
### GitHub Actions (Optional)
Consider setting up automated testing:
```yaml
# .github/workflows/release.yml
name: Release Testing
on:
push:
tags: ['v*']
jobs:
test-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- run: npm ci
- run: npm run build
- run: npm run validate:package
- run: npm pack
- run: npm install -g woaru-*.tgz
- run: woaru --version
```
## 📞 Emergency Contacts
### Critical Issues
- **Package doesn't work**: Immediate unpublish/deprecate
- **Security vulnerability**: Follow npm security advisory process
- **Breaking changes**: Clearly document and consider major version bump
### Support Channels
- **GitHub Issues**: Bug reports and user issues
- **GitHub Discussions**: Community questions
- **npm Support**: Package-related technical issues
---
## ✅ Final Release Checklist
Before marking release as complete:
- [ ] **NPM package published successfully**
- [ ] **Git tag pushed to repository**
- [ ] **GitHub release created with notes**
- [ ] **CHANGELOG.md reflects new version**
- [ ] **Documentation updated**
- [ ] **Community notified (if major release)**
- [ ] **Post-release monitoring for 24 hours**
**Remember**: A broken npm package affects all users immediately. Take time to verify everything works perfectly!
---
*Last updated: Version 5.3.0*