feat: Implement default welcome page for missing web application
- Added a professional HTML welcome page displayed when no web application is configured. - Enhanced `_load_webapp()` method to support improved path resolution for both development and bundled modes. - Updated error handling to show the welcome page instead of a bare error message when the webapp file is not found. - Modified unit tests to verify the welcome page is displayed in error scenarios. build: Complete Windows and macOS build scripts - Created `build_windows.py` for building Windows executable and optional MSI installer using PyInstaller. - Developed `build_macos.sh` for creating macOS application bundle and DMG image. - Added logging and error handling to build scripts for better user feedback. docs: Add build and icon requirements documentation - Created `PHASE_3_BUILD_SUMMARY.md` detailing the build process, results, and next steps. - Added `resources/icons/README.md` outlining icon requirements and creation guidelines. chore: Sync remotes script for repository maintenance - Introduced `sync_remotes.ps1` PowerShell script to fetch updates from origin and upstream remotes.
This commit is contained in:
parent
90dc09eb4d
commit
f0c96f15b8
10 changed files with 1415 additions and 39 deletions
|
|
@ -537,41 +537,100 @@ if __name__ == "__main__":
|
|||
|
||||
## Phase 3: Build & Distribution (Weeks 7-8)
|
||||
|
||||
### 3.1 Windows Installer (MSI)
|
||||
|
||||
**Setup:**
|
||||
```bash
|
||||
pip install pyinstaller
|
||||
```
|
||||
### 3.1 Windows Installer (Executable + MSI)
|
||||
|
||||
**Build Script** (`build/scripts/build_windows.py`):
|
||||
- Compile with PyInstaller
|
||||
- Create MSI with WiX (optional: advanced features)
|
||||
- Code signing (optional: professional deployment)
|
||||
- Output: `WebDropBridge-1.0.0-Setup.exe`
|
||||
- PyInstaller compilation with proper spec file
|
||||
- Standalone executable generation
|
||||
- Optional WiX MSI installer creation
|
||||
- Optional code signing support
|
||||
- Clean build management
|
||||
|
||||
**Features:**
|
||||
- ✅ Automatic dependency bundling (PySide6, Qt, Chromium)
|
||||
- ✅ Resource embedding (webapp, icons, stylesheets)
|
||||
- ✅ Hidden imports configuration for Qt Web Engine
|
||||
- ✅ Output validation and size reporting
|
||||
- ✅ WiX support for professional MSI creation
|
||||
|
||||
**PyInstaller Configuration** (`build/webdrop_bridge.spec`):
|
||||
- Bundles all dependencies (PySide6, Qt6 libraries)
|
||||
- Includes webapp files and resources
|
||||
- Sets up GUI mode (no console window)
|
||||
- Cross-platform compatible
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
# Build executable only
|
||||
python build/scripts/build_windows.py
|
||||
|
||||
# Build with MSI installer (requires WiX)
|
||||
python build/scripts/build_windows.py --msi
|
||||
|
||||
# Build with code signing (requires certificate)
|
||||
python build/scripts/build_windows.py --sign
|
||||
```
|
||||
|
||||
**Build Results:**
|
||||
- ✅ **Executable**: `WebDropBridge.exe` (195.66 MB)
|
||||
- ✅ **Output Directory**: `build/dist/windows/`
|
||||
- ✅ Contains all dependencies including Chromium engine
|
||||
|
||||
**Acceptance Criteria:**
|
||||
- Executable runs standalone
|
||||
- Installer installs to Program Files
|
||||
- Uninstaller removes all files
|
||||
- Shortcuts created in Start Menu
|
||||
- [x] Executable builds successfully
|
||||
- [x] Executable runs standalone (no Python required)
|
||||
- [x] All dependencies bundled correctly
|
||||
- [ ] MSI installer creation (requires WiX installation)
|
||||
- [ ] Code signing (requires certificate)
|
||||
|
||||
---
|
||||
|
||||
### 3.2 macOS DMG Package
|
||||
|
||||
**Build Script** (`build/scripts/build_macos.sh`):
|
||||
- Compile with PyInstaller
|
||||
- Create `.app` bundle
|
||||
- Generate DMG image
|
||||
- Code signing (optional)
|
||||
- Output: `WebDropBridge-1.0.0.dmg`
|
||||
- PyInstaller for .app bundle creation
|
||||
- DMG image generation
|
||||
- Professional DMG styling (optional via create-dmg)
|
||||
- Code signing and notarization support
|
||||
- Comprehensive error handling
|
||||
|
||||
**Features:**
|
||||
- ✅ Creates proper macOS .app bundle
|
||||
- ✅ DMG image for distribution
|
||||
- ✅ Professional volume icon and layout
|
||||
- ✅ Code signing with signing identities
|
||||
- ✅ Apple notarization support
|
||||
- ✅ Checksum verification
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
# Build .app bundle and DMG
|
||||
bash build/scripts/build_macos.sh
|
||||
|
||||
# With code signing
|
||||
bash build/scripts/build_macos.sh --sign
|
||||
|
||||
# With notarization
|
||||
bash build/scripts/build_macos.sh --notarize
|
||||
```
|
||||
|
||||
**Configuration (Environment Variables):**
|
||||
```bash
|
||||
# For code signing
|
||||
export APPLE_SIGNING_ID="Developer ID Application: Company Name"
|
||||
|
||||
# For notarization
|
||||
export APPLE_ID="your@apple.id"
|
||||
export APPLE_PASSWORD="app-specific-password"
|
||||
export APPLE_TEAM_ID="XXXXXXXXXX"
|
||||
```
|
||||
|
||||
**Acceptance Criteria:**
|
||||
- App bundle signed (if applicable)
|
||||
- DMG opens in Finder
|
||||
- Drag-to-Applications works
|
||||
- Notarization passes (if applicable)
|
||||
- [ ] .app bundle builds successfully
|
||||
- [ ] DMG image creates without errors
|
||||
- [ ] DMG mounts and shows contents properly
|
||||
- [ ] Code signing works
|
||||
- [ ] Notarization passes
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue