mirror of
https://github.com/SuperClaude-Org/SuperClaude_Framework.git
synced 2025-12-17 09:46:06 +00:00
Delete RELEASE_INSTRUCTIONS.md
Signed-off-by: NomenAK <39598727+NomenAK@users.noreply.github.com>
This commit is contained in:
parent
b25f60cdb0
commit
ce151e018a
@ -1,392 +0,0 @@
|
||||
# SuperClaude Framework Release Instructions
|
||||
|
||||
## 🚀 Complete Publishing Guide for PyPI and NPM
|
||||
|
||||
**Version**: 4.0.4 (Both PyPI and NPM)
|
||||
**Date**: 2025-08-22
|
||||
**Status**: READY FOR RELEASE
|
||||
|
||||
---
|
||||
|
||||
## 📋 Pre-Flight Checklist
|
||||
|
||||
### Critical Fixes Applied ✅
|
||||
- [x] Version consistency fixed (Both: 4.0.4)
|
||||
- [x] License format updated to PEP 639 compliance
|
||||
- [x] NPM package name corrected to `@bifrost_inc/superclaude`
|
||||
- [x] NPM version incremented to 4.0.4 (from existing 4.0.2)
|
||||
|
||||
### Required Accounts
|
||||
- [ ] PyPI account with maintainer access
|
||||
- [ ] TestPyPI account for testing
|
||||
- [ ] NPM account with org access to @superclaude-org
|
||||
- [ ] GitHub account with repo write access
|
||||
|
||||
---
|
||||
|
||||
## 🔐 Step 1: Setup Credentials
|
||||
|
||||
### PyPI Credentials
|
||||
|
||||
1. **Create PyPI API Token** (if not exists):
|
||||
```bash
|
||||
# Go to https://pypi.org/manage/account/token/
|
||||
# Create token with scope: "Entire account" or "Project: SuperClaude"
|
||||
# Save token securely
|
||||
```
|
||||
|
||||
2. **Create ~/.pypirc file**:
|
||||
```ini
|
||||
[distutils]
|
||||
index-servers =
|
||||
pypi
|
||||
testpypi
|
||||
|
||||
[pypi]
|
||||
username = __token__
|
||||
password = pypi-YOUR_TOKEN_HERE
|
||||
|
||||
[testpypi]
|
||||
username = __token__
|
||||
password = pypi-YOUR_TEST_TOKEN_HERE
|
||||
repository = https://test.pypi.org/legacy/
|
||||
```
|
||||
|
||||
3. **Secure the file**:
|
||||
```bash
|
||||
chmod 600 ~/.pypirc
|
||||
```
|
||||
|
||||
### NPM Credentials
|
||||
|
||||
1. **Login to NPM**:
|
||||
```bash
|
||||
npm login
|
||||
# Enter username, password, email
|
||||
# Enter OTP if 2FA enabled
|
||||
```
|
||||
|
||||
2. **Verify login**:
|
||||
```bash
|
||||
npm whoami
|
||||
# Should show your username
|
||||
|
||||
npm org ls @superclaude-org
|
||||
# Should show you have access
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Step 2: Test Deployments
|
||||
|
||||
### Test PyPI Deployment
|
||||
|
||||
1. **Clean previous builds**:
|
||||
```bash
|
||||
rm -rf dist/ build/ *.egg-info
|
||||
```
|
||||
|
||||
2. **Run validation**:
|
||||
```bash
|
||||
python3 scripts/validate_pypi_ready.py
|
||||
# Must show 5/5 checks passed
|
||||
```
|
||||
|
||||
3. **Build packages**:
|
||||
```bash
|
||||
python3 setup.py sdist bdist_wheel
|
||||
```
|
||||
|
||||
4. **Upload to TestPyPI**:
|
||||
```bash
|
||||
./scripts/publish.sh test
|
||||
# OR manually:
|
||||
python3 -m twine upload --repository testpypi dist/*
|
||||
```
|
||||
|
||||
5. **Test installation from TestPyPI**:
|
||||
```bash
|
||||
# Create virtual environment
|
||||
python3 -m venv test_env
|
||||
source test_env/bin/activate
|
||||
|
||||
# Install from TestPyPI
|
||||
pip install --index-url https://test.pypi.org/simple/ \
|
||||
--extra-index-url https://pypi.org/simple/ \
|
||||
SuperClaude==4.0.4
|
||||
|
||||
# Test the CLI
|
||||
SuperClaude --version
|
||||
SuperClaude install --dry-run
|
||||
|
||||
# Cleanup
|
||||
deactivate
|
||||
rm -rf test_env
|
||||
```
|
||||
|
||||
### Test NPM Deployment
|
||||
|
||||
1. **Verify package configuration**:
|
||||
```bash
|
||||
npm publish --dry-run
|
||||
# Check output for:
|
||||
# - Correct package name: @bifrost_inc/superclaude
|
||||
# - Version: 4.0.4
|
||||
# - Files included: bin/, README.md, LICENSE, package.json
|
||||
```
|
||||
|
||||
2. **Local test**:
|
||||
```bash
|
||||
# Pack the package
|
||||
npm pack
|
||||
|
||||
# Test local installation
|
||||
npm install -g ./superclaude-org-superclaude-4.0.4.tgz
|
||||
|
||||
# Verify it works
|
||||
superclaude --version
|
||||
|
||||
# Uninstall test
|
||||
npm uninstall -g @bifrost_inc/superclaude
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Step 3: Production Release
|
||||
|
||||
### ⚠️ FINAL CHECKS BEFORE RELEASE
|
||||
|
||||
```bash
|
||||
# Ensure on correct branch
|
||||
git branch --show-current
|
||||
# Should show: SuperClaude_V4_Beta or master
|
||||
|
||||
# Ensure working directory is clean
|
||||
git status
|
||||
# Should show: nothing to commit, working tree clean
|
||||
|
||||
# Tag the release
|
||||
git tag -a v4.0.4 -m "Release v4.0.4 - Production ready"
|
||||
git push origin v4.0.4
|
||||
```
|
||||
|
||||
### PyPI Production Release
|
||||
|
||||
1. **Final validation**:
|
||||
```bash
|
||||
python3 scripts/validate_pypi_ready.py
|
||||
# MUST show: "Project is ready for PyPI publication!"
|
||||
```
|
||||
|
||||
2. **Clean and rebuild**:
|
||||
```bash
|
||||
rm -rf dist/ build/ *.egg-info
|
||||
python3 setup.py sdist bdist_wheel
|
||||
```
|
||||
|
||||
3. **Upload to PyPI**:
|
||||
```bash
|
||||
./scripts/publish.sh prod
|
||||
# OR manually:
|
||||
python3 -m twine upload dist/*
|
||||
```
|
||||
|
||||
4. **Verify on PyPI**:
|
||||
```bash
|
||||
# Wait 1-2 minutes for CDN propagation
|
||||
pip install SuperClaude==4.0.4 --no-cache-dir
|
||||
SuperClaude --version
|
||||
```
|
||||
|
||||
### NPM Production Release
|
||||
|
||||
1. **Ensure logged in**:
|
||||
```bash
|
||||
npm whoami
|
||||
# Must show your username
|
||||
```
|
||||
|
||||
2. **Publish with 2FA** (if enabled):
|
||||
```bash
|
||||
npm publish --otp=YOUR_2FA_CODE
|
||||
# Without 2FA:
|
||||
npm publish
|
||||
```
|
||||
|
||||
3. **Verify on NPM**:
|
||||
```bash
|
||||
# Wait 1-2 minutes
|
||||
npm view @bifrost_inc/superclaude@4.0.4
|
||||
|
||||
# Test installation
|
||||
npm install -g @bifrost_inc/superclaude@4.0.4
|
||||
superclaude --version
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Step 4: Post-Release Verification
|
||||
|
||||
### Verification Checklist
|
||||
|
||||
1. **PyPI Verification**:
|
||||
```bash
|
||||
# Check PyPI page
|
||||
open https://pypi.org/project/SuperClaude/4.0.4/
|
||||
|
||||
# Fresh install test
|
||||
pip install SuperClaude==4.0.4 --no-cache-dir
|
||||
SuperClaude install --list-components
|
||||
```
|
||||
|
||||
2. **NPM Verification**:
|
||||
```bash
|
||||
# Check NPM page
|
||||
open https://www.npmjs.com/package/@bifrost_inc/superclaude
|
||||
|
||||
# Fresh install test
|
||||
npm install -g @bifrost_inc/superclaude@4.0.4
|
||||
superclaude install --list-components
|
||||
```
|
||||
|
||||
3. **Cross-platform test**:
|
||||
```bash
|
||||
# Test NPM → PyPI flow
|
||||
npm install -g @bifrost_inc/superclaude
|
||||
superclaude install --dry-run
|
||||
# Should successfully detect/install Python package
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔙 Rollback Procedures
|
||||
|
||||
### If PyPI Release Fails
|
||||
|
||||
1. **Yank the release** (makes it non-installable):
|
||||
```bash
|
||||
# Via web interface:
|
||||
# https://pypi.org/manage/project/SuperClaude/release/4.0.4/
|
||||
# Click "Options" → "Yank"
|
||||
|
||||
# Users can still install if they specify exact version
|
||||
```
|
||||
|
||||
2. **Fix issues and release patch**:
|
||||
```bash
|
||||
# Update version to 4.0.1
|
||||
# Fix issues
|
||||
# Re-release following steps above
|
||||
```
|
||||
|
||||
### If NPM Release Fails
|
||||
|
||||
1. **Unpublish** (within 72 hours):
|
||||
```bash
|
||||
npm unpublish @bifrost_inc/superclaude@4.0.4
|
||||
```
|
||||
|
||||
2. **Deprecate** (after 72 hours):
|
||||
```bash
|
||||
npm deprecate @bifrost_inc/superclaude@4.0.4 "Critical bug - use 4.0.4"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📢 Step 5: Announcement
|
||||
|
||||
### GitHub Release
|
||||
|
||||
1. Create release at: https://github.com/SuperClaude-Org/SuperClaude_Framework/releases/new
|
||||
2. Tag: v4.0.4
|
||||
3. Title: "SuperClaude v4.0.4 - Production Release"
|
||||
4. Description: Include changelog and installation instructions
|
||||
|
||||
### Update Documentation
|
||||
|
||||
```bash
|
||||
# Update README badges
|
||||
# Update installation docs
|
||||
# Update website if applicable
|
||||
```
|
||||
|
||||
### Community Announcement Template
|
||||
|
||||
```markdown
|
||||
🎉 SuperClaude v4.0.4 Released!
|
||||
|
||||
Install via:
|
||||
- PyPI: `pip install SuperClaude`
|
||||
- NPM: `npm install -g @bifrost_inc/superclaude`
|
||||
|
||||
What's New:
|
||||
- 14 specialized AI agents
|
||||
- 6 integrated MCP servers
|
||||
- 30-50% token usage reduction
|
||||
- [Full changelog](link)
|
||||
|
||||
Docs: https://github.com/SuperClaude-Org/SuperClaude_Framework
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Common Issues & Solutions
|
||||
|
||||
### PyPI Issues
|
||||
|
||||
**"Invalid credentials"**
|
||||
- Regenerate API token
|
||||
- Ensure token starts with `pypi-`
|
||||
- Check ~/.pypirc formatting
|
||||
|
||||
**"Version already exists"**
|
||||
- Can't overwrite - increment version
|
||||
- Update all version references
|
||||
|
||||
### NPM Issues
|
||||
|
||||
**"402 Payment Required"**
|
||||
- Package name might be private
|
||||
- Check org settings
|
||||
|
||||
**"403 Forbidden"**
|
||||
- No publish access to org
|
||||
- Contact org admin
|
||||
|
||||
**"E409 Conflict"**
|
||||
- Version already exists
|
||||
- Increment version number
|
||||
|
||||
---
|
||||
|
||||
## 📊 Success Metrics
|
||||
|
||||
After 24 hours, check:
|
||||
- PyPI download stats: https://pypistats.org/packages/superclaude
|
||||
- NPM download stats: https://www.npmjs.com/package/@bifrost_inc/superclaude
|
||||
- GitHub stars/issues
|
||||
- Community feedback
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Quick Command Summary
|
||||
|
||||
```bash
|
||||
# PyPI Test & Release
|
||||
./scripts/publish.sh test # Test on TestPyPI
|
||||
./scripts/publish.sh prod # Release to PyPI
|
||||
|
||||
# NPM Test & Release
|
||||
npm publish --dry-run # Test locally
|
||||
npm publish --otp=123456 # Release to NPM
|
||||
|
||||
# Verification
|
||||
pip install SuperClaude==4.0.4
|
||||
npm install -g @bifrost_inc/superclaude@4.0.4
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Remember**: Once published to PyPI, versions cannot be reused. Plan carefully!
|
||||
|
||||
Good luck with the release! 🚀
|
||||
Loading…
x
Reference in New Issue
Block a user