# Version Update System - Summary **Created**: 2025-10-31 (v6.4.2) **Purpose**: Centralized system for managing version numbers across the application --- ## 📦 New Files Created ### 1. Quick Reference Guide **File**: `/opt/media-downloader/VERSION_UPDATE.md` - Fast track instructions (5 minutes) - Links to full documentation - Located in root for easy access ### 2. Complete Checklist **File**: `/opt/media-downloader/docs/VERSION_UPDATE_CHECKLIST.md` - Comprehensive step-by-step guide - All 8 version locations documented - Verification procedures - Common mistakes to avoid - Troubleshooting section ### 3. Automated Update Script **File**: `/opt/media-downloader/scripts/update-version.sh` - Updates 5 files automatically - Validates version format - Verifies all changes - Interactive confirmation - Color-coded output ### 4. README.md Updates **File**: `/opt/media-downloader/README.md` - Added "Version Updates" section - Organized documentation links - Updated to v6.4.2 --- ## 📍 Version Storage Locations ### Automated by Script (5 files) ✅ `/opt/media-downloader/VERSION` ✅ `web/backend/api.py` (FastAPI version, line ~266) ✅ `web/frontend/package.json` (npm version, line 4) ✅ `web/frontend/src/App.tsx` (UI menus, lines ~192 & ~305) ✅ `web/frontend/src/pages/Configuration.tsx` (About tab, lines ~2373 & ~2388) ### Manual Updates Required (3 files) ❌ `data/changelog.json` - Add new version entry at top ❌ `CHANGELOG.md` - Add new version section at top ❌ `README.md` - Update version in header (line 3) --- ## 🚀 Usage Example ### Step 1: Run Automated Script ```bash cd /opt/media-downloader bash scripts/update-version.sh 6.5.0 ``` **Output**: - Updates 5 files automatically - Verifies all changes - Shows what needs manual updates ### Step 2: Manual Updates ```bash # Edit changelog files nano data/changelog.json # Add entry at TOP nano CHANGELOG.md # Add section at TOP nano README.md # Update line 3 ``` ### Step 3: Restart & Backup ```bash # Restart API sudo systemctl restart media-downloader-api # Create version backup bash scripts/create-version-backup.sh ``` ### Step 4: Verify ```bash # Check all version references grep -rn "6\.5\.0" VERSION web/backend/api.py web/frontend/package.json \ web/frontend/src/App.tsx web/frontend/src/pages/Configuration.tsx \ data/changelog.json CHANGELOG.md README.md 2>/dev/null | grep -v node_modules # Open browser and check: # - Configuration → About tab # - Desktop/mobile menu version # - Health page loads correctly ``` --- ## 🎯 Design Goals 1. **Simplicity**: One command updates most files 2. **Safety**: Validation and verification built-in 3. **Documentation**: Clear instructions at multiple detail levels 4. **Consistency**: All version numbers updated together 5. **Traceability**: Clear audit trail of what was updated --- ## 📊 Version Number Format Uses [Semantic Versioning](https://semver.org/): `MAJOR.MINOR.PATCH` **Examples**: - `7.0.0` - Major version with breaking changes - `6.5.0` - Minor version with new features - `6.4.3` - Patch version with bug fixes **Current**: `6.4.2` --- ## 🔍 Quick Verification Command Check all version references in one command: ```bash cd /opt/media-downloader grep -rn "$(cat VERSION)" \ VERSION \ web/backend/api.py \ web/frontend/package.json \ web/frontend/src/App.tsx \ web/frontend/src/pages/Configuration.tsx \ data/changelog.json \ CHANGELOG.md \ README.md \ 2>/dev/null | grep -v node_modules ``` Should show 8+ matches across all key files. --- ## 📚 Documentation Hierarchy ``` Quick Reference (5 min): └── VERSION_UPDATE.md Complete Guide (15 min): └── docs/VERSION_UPDATE_CHECKLIST.md Automated Tool: └── scripts/update-version.sh This Summary: └── docs/VERSION_UPDATE_SUMMARY.md ``` --- ## ✅ Success Criteria After a version update, verify: - [ ] All 8 files contain new version number - [ ] No references to old version remain - [ ] API service restarted successfully - [ ] Frontend displays new version in 3 locations: - [ ] Desktop menu (bottom of sidebar) - [ ] Mobile menu (bottom) - [ ] Configuration → About tab - [ ] Health page loads without errors - [ ] Version backup created successfully - [ ] No console errors in browser --- ## 🛠️ Maintenance ### Adding New Version Locations If version appears in a new file: 1. **Update Documentation**: - `docs/VERSION_UPDATE_CHECKLIST.md` - Add to checklist - `VERSION_UPDATE.md` - Note if critical 2. **Update Script**: - `scripts/update-version.sh` - Add sed command - Add verification check 3. **Update This Summary**: - Add to "Version Storage Locations" ### Script Improvements Located in: `/opt/media-downloader/scripts/update-version.sh` Current features: - Version format validation - Interactive confirmation - Automated updates (5 files) - Verification checks - Color-coded output Future enhancements: - Automatic changelog.json update - Automatic CHANGELOG.md template - README.md header auto-update - Git commit creation option - Rollback capability --- ## 📝 Notes - **Created during**: v6.4.2 release - **Motivation**: Prevent version number inconsistencies - **Files**: 8 locations across Python, TypeScript, JSON, and Markdown - **Time saved**: ~10 minutes per release - **Errors prevented**: Missing version updates in UI/API --- **Last Updated**: 2025-10-31 (v6.4.2)