# Premiere panel installer — build pipeline Produces two artifacts from `services/premiere-plugin/`: | File | Platform | How an editor installs it | |------|----------|----------------------------| | `dist/dragonflight-premiere-panel-.zxp` | macOS + Windows | Drag into [Anastasiy's ZXP Installer](https://install.anastasiy.com/) | | `dist/dragonflight-premiere-panel--windows-setup.exe` | Windows | Double-click, Next → Finish | The version is read from `CSXS/manifest.xml`'s ``. To cut a new release: bump that one number, rebuild, attach the two files to a Forgejo release tag. ## Prerequisites | Building | Requires | |----------|----------| | `.zxp` only | Node 18+, runs on macOS / Linux / Windows | | `.exe` | Windows + [Inno Setup 6](https://jrsoftware.org/isinfo.php) on `PATH` (`ISCC.exe`) | | Both via `build-all.ps1` | Windows + Node 18+ + Inno Setup 6 | Install Inno Setup with winget: ``` winget install --id JRSoftware.InnoSetup ``` ## Build ``` cd services/premiere-plugin/build npm install powershell -File build-all.ps1 ``` Artifacts land in `services/premiere-plugin/build/dist/`. To build just one: ``` node build-zxp.mjs # cross-platform .zxp powershell -File build-installer.ps1 # Windows .exe (needs ISCC.exe) ``` ## Signing cert (.zxp) The first `node build-zxp.mjs` run generates a self-signed cert at `cert/dragonflight-selfsigned.p12` + passphrase at `cert/cert-passphrase.txt`. **Commit both files** — they need to be stable across builds so Adobe accepts ZXP upgrades in place. If you regenerate the cert, every editor who already installed an older `.zxp` has to uninstall + reinstall. The cert is self-signed → editors still need `PlayerDebugMode=1`. The Windows `.exe` installer sets this automatically. ZXP installs on macOS need a manual `defaults write com.adobe.CSXS.11 PlayerDebugMode 1`. See `cert/README.md` for cert details + how to regenerate. ## What the installers do Both install the bundle as `net.wilddragon.dragonflight.panel`. The Windows `.exe` additionally: 1. Removes any legacy `com.wilddragon.mam.panel` folder (with a consent checkbox, default on) — avoids editors seeing two panels in **Window → Extensions**. 2. Sets `HKCU\Software\Adobe\CSXS.{8..13}\PlayerDebugMode = "1"` so unsigned CEP extensions load. 3. Registers itself in Add/Remove Programs so uninstall reverses both. ## Layout ``` build/ ├── README.md ← this file ├── package.json ← devDep: zxp-sign-cmd ├── .gitignore ← ignores dist/ + node_modules/ ├── build-all.ps1 ← runs both builders ├── build-zxp.mjs ← Node: generates cert (first run), signs, packages ├── build-installer.ps1 ← wraps ISCC.exe with version + bundle-id flags ├── installer.iss ← Inno Setup script └── cert/ ├── README.md ← how to regenerate ├── dragonflight-selfsigned.p12 ← generated on first build (commit it) └── cert-passphrase.txt ← generated on first build (commit it) ```