ISCC's /D command-line flag combined with Node.js spawn on Windows
produces broken ISPP defines due to argument quoting conflicts.
Switch to environment variables read via GetEnv() — robust and
avoids all quoting issues. Product name and publisher are now
hardcoded in the ISS (they never change).
Verified: installer shows 'Aryx' and correct version in metadata.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Switch from NSIS (early 2000s) to Inno Setup 6 — the modern standard
used by VS Code and most Electron apps. Features:
- Modern wizard UI (WizardStyle=modern)
- LZMA2/ultra64 solid compression (138.9 MB, down from 143 MB with NSIS)
- Per-user install to %LOCALAPPDATA%\Programs\Aryx (no admin needed)
- Optional desktop shortcut, Start Menu group
- Auto-closes running instance before install/uninstall
- Proper Add/Remove Programs integration via AppId
- Launch-after-install option
CI updated to install Inno Setup via Chocolatey on windows-latest.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Windows: add NSIS installation step via Chocolatey in CI workflow
- macOS: fix create-dmg CLI invocation to match sindresorhus package
API (--overwrite, --no-version-in-filename, --no-code-sign) and
rename output to expected asset name
- Add rename import to create-installer.ts
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace zip/tar archive distribution with platform-native installers:
- Windows: NSIS installer (.exe) with per-user install to
%LOCALAPPDATA%\Programs\Aryx, Start Menu and Desktop shortcuts,
Add/Remove Programs registration, and silent install support
- macOS: DMG disk image (.dmg) with drag-to-Applications experience
via create-dmg
- Linux: Debian package (.deb) with /opt/aryx installation,
/usr/bin/aryx symlink, desktop entry, hicolor icons, and
libsecret-1-0 dependency declaration
Add scripts/create-installer.ts as the platform-dispatching entry
point. Update CI workflow to produce native installers instead of
archives. Add installerAssetName to ReleaseTarget interface.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>