docs: Add plugin zip guide and create distribution package
✅ Plugin Zip Created: - File: woonoow.zip - Size: 1.4MB (compressed) - Location: /wp-content/plugins/woonoow.zip 📝 Created PLUGIN_ZIP_GUIDE.md: - Step-by-step zipping process - What to include/exclude - Size optimization tips - Testing checklist - Automated script template - Version management guide ✅ Zip Contents: - All PHP files (includes/, *.php) - Admin SPA build (admin-spa/dist/) - Assets (icons, templates) - Main plugin file (woonoow.php) - README.md only (no other docs) ❌ Excluded from Zip: - node_modules/ - admin-spa/src/ (source files) - .git/ - All .md docs (except README.md) - package.json, composer.json - Dev config files 🎯 Ready for Distribution!
This commit is contained in:
222
PLUGIN_ZIP_GUIDE.md
Normal file
222
PLUGIN_ZIP_GUIDE.md
Normal file
@@ -0,0 +1,222 @@
|
|||||||
|
# Plugin Zip Guide
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
This guide explains how to properly zip the WooNooW plugin for distribution.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## What to Include
|
||||||
|
|
||||||
|
### ✅ Include
|
||||||
|
- All PHP files (`includes/`, `*.php`)
|
||||||
|
- Admin SPA build (`admin-spa/dist/`)
|
||||||
|
- Assets (`assets/`)
|
||||||
|
- Languages (`languages/`)
|
||||||
|
- README.md
|
||||||
|
- LICENSE (if exists)
|
||||||
|
- woonoow.php (main plugin file)
|
||||||
|
|
||||||
|
### ❌ Exclude
|
||||||
|
- `node_modules/`
|
||||||
|
- `admin-spa/src/` (source files, only include dist)
|
||||||
|
- `.git/`
|
||||||
|
- `.gitignore`
|
||||||
|
- All `.md` documentation files (except README.md)
|
||||||
|
- `composer.json`, `composer.lock`
|
||||||
|
- `package.json`, `package-lock.json`
|
||||||
|
- `.DS_Store`, `Thumbs.db`
|
||||||
|
- Development/testing files
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Step-by-Step Process
|
||||||
|
|
||||||
|
### 1. Build Admin SPA
|
||||||
|
```bash
|
||||||
|
cd admin-spa
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
This creates optimized production files in `admin-spa/dist/`.
|
||||||
|
|
||||||
|
### 2. Create Zip (Automated)
|
||||||
|
```bash
|
||||||
|
# From plugin root directory
|
||||||
|
zip -r woonoow.zip . \
|
||||||
|
-x "*.git*" \
|
||||||
|
-x "*node_modules*" \
|
||||||
|
-x "admin-spa/src/*" \
|
||||||
|
-x "*.md" \
|
||||||
|
-x "!README.md" \
|
||||||
|
-x "composer.json" \
|
||||||
|
-x "composer.lock" \
|
||||||
|
-x "package.json" \
|
||||||
|
-x "package-lock.json" \
|
||||||
|
-x "*.DS_Store" \
|
||||||
|
-x "Thumbs.db"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Verify Zip Contents
|
||||||
|
```bash
|
||||||
|
unzip -l woonoow.zip | head -50
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Required Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
woonoow/
|
||||||
|
├── admin-spa/
|
||||||
|
│ └── dist/ # ✅ Built files only
|
||||||
|
├── assets/
|
||||||
|
│ ├── css/
|
||||||
|
│ ├── js/
|
||||||
|
│ └── images/
|
||||||
|
├── includes/
|
||||||
|
│ ├── Admin/
|
||||||
|
│ ├── Api/
|
||||||
|
│ ├── Core/
|
||||||
|
│ └── ...
|
||||||
|
├── languages/
|
||||||
|
├── README.md # ✅ Only this MD file
|
||||||
|
├── woonoow.php # ✅ Main plugin file
|
||||||
|
└── LICENSE (optional)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Size Optimization
|
||||||
|
|
||||||
|
### Before Zipping
|
||||||
|
1. ✅ Build admin SPA (`npm run build`)
|
||||||
|
2. ✅ Remove source maps if not needed
|
||||||
|
3. ✅ Ensure no dev dependencies
|
||||||
|
|
||||||
|
### Expected Size
|
||||||
|
- **Uncompressed:** ~5-10 MB
|
||||||
|
- **Compressed (zip):** ~2-4 MB
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Testing the Zip
|
||||||
|
|
||||||
|
### 1. Extract to Test Environment
|
||||||
|
```bash
|
||||||
|
unzip woonoow.zip -d /path/to/test/wp-content/plugins/
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Verify
|
||||||
|
- [ ] Plugin activates without errors
|
||||||
|
- [ ] Admin SPA loads correctly
|
||||||
|
- [ ] All features work
|
||||||
|
- [ ] No console errors
|
||||||
|
- [ ] No missing files
|
||||||
|
|
||||||
|
### 3. Check File Permissions
|
||||||
|
```bash
|
||||||
|
find woonoow -type f -exec chmod 644 {} \;
|
||||||
|
find woonoow -type d -exec chmod 755 {} \;
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Distribution Checklist
|
||||||
|
|
||||||
|
- [ ] Admin SPA built (`admin-spa/dist/` exists)
|
||||||
|
- [ ] No `node_modules/` in zip
|
||||||
|
- [ ] No `.git/` in zip
|
||||||
|
- [ ] No source files (`admin-spa/src/`) in zip
|
||||||
|
- [ ] No documentation (except README.md) in zip
|
||||||
|
- [ ] Plugin version updated in `woonoow.php`
|
||||||
|
- [ ] README.md updated with latest info
|
||||||
|
- [ ] Tested in clean WordPress install
|
||||||
|
- [ ] All features working
|
||||||
|
- [ ] No errors in console/logs
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Version Management
|
||||||
|
|
||||||
|
### Before Creating Zip
|
||||||
|
1. Update version in `woonoow.php`:
|
||||||
|
```php
|
||||||
|
* Version: 1.0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Update version in `admin-spa/package.json`:
|
||||||
|
```json
|
||||||
|
"version": "1.0.0"
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Tag in Git:
|
||||||
|
```bash
|
||||||
|
git tag -a v1.0.0 -m "Release v1.0.0"
|
||||||
|
git push origin v1.0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Automated Zip Script
|
||||||
|
|
||||||
|
Save as `create-zip.sh`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Build admin SPA
|
||||||
|
echo "Building admin SPA..."
|
||||||
|
cd admin-spa
|
||||||
|
npm run build
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# Create zip
|
||||||
|
echo "Creating zip..."
|
||||||
|
zip -r woonoow.zip . \
|
||||||
|
-x "*.git*" \
|
||||||
|
-x "*node_modules*" \
|
||||||
|
-x "admin-spa/src/*" \
|
||||||
|
-x "*.md" \
|
||||||
|
-x "!README.md" \
|
||||||
|
-x "composer.json" \
|
||||||
|
-x "composer.lock" \
|
||||||
|
-x "package.json" \
|
||||||
|
-x "package-lock.json" \
|
||||||
|
-x "*.DS_Store" \
|
||||||
|
-x "Thumbs.db" \
|
||||||
|
-x "create-zip.sh"
|
||||||
|
|
||||||
|
echo "✅ Zip created: woonoow.zip"
|
||||||
|
echo "📦 Size: $(du -h woonoow.zip | cut -f1)"
|
||||||
|
```
|
||||||
|
|
||||||
|
Make executable:
|
||||||
|
```bash
|
||||||
|
chmod +x create-zip.sh
|
||||||
|
./create-zip.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Issue: Zip too large
|
||||||
|
**Solution:** Ensure `node_modules/` is excluded
|
||||||
|
|
||||||
|
### Issue: Admin SPA not loading
|
||||||
|
**Solution:** Verify `admin-spa/dist/` is included and built
|
||||||
|
|
||||||
|
### Issue: Missing files error
|
||||||
|
**Solution:** Check all required files are included (use `unzip -l`)
|
||||||
|
|
||||||
|
### Issue: Permission errors
|
||||||
|
**Solution:** Set correct permissions (644 for files, 755 for dirs)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Final Notes
|
||||||
|
|
||||||
|
- Always test the zip in a clean WordPress environment
|
||||||
|
- Keep source code in Git, distribute only production-ready zip
|
||||||
|
- Document any special installation requirements in README.md
|
||||||
|
- Include changelog in README.md for version tracking
|
||||||
Reference in New Issue
Block a user