Skip to content

feat(windows): ship an installer, with the zip as the portable option - #115

Merged
StuartCameronCode merged 6 commits into
mainfrom
linux-appimage
Oct 5, 2026
Merged

StuartCameronCode merged 6 commits into
mainfrom
linux-appimage

Conversation

@StuartCameronCode

Copy link
Copy Markdown
Owner

Lands #114 on main.

#114 was stacked on linux-appimage (#113). #113 was merged into main first, and #114 was merged 19 seconds later while its base was still linux-appimage, so the Windows installer work landed on that branch instead of main.

This PR carries exactly that work across: the content of #114 as already reviewed, nothing new. It merges cleanly.

🤖 Generated with Claude Code

https://claude.ai/code/session_014GLXdGLfPwgYjW1AkonGqN

StuartCameronCode and others added 6 commits October 5, 2026 22:17
The Windows release was a zip to extract and run. It now also ships an
Inno Setup installer built from the same tree, giving a Start menu
shortcut, an optional desktop shortcut and an entry in Settings > Apps.

- Per-user only (PrivilegesRequired=lowest), with no all-users option:
  on Windows the app downloads deps and add-ons beside the executable,
  so the install directory has to stay user-writable.
- An upgrade keeps deps\ and addons\; uninstall removes them. templates\
  and data\ are cleared before an upgrade, since Inno never removes a
  file a newer version dropped.
- The installer is its own script, build-windows-installer.ps1, because
  build-windows.yml assembles the package inline rather than calling
  package-windows.ps1. Both now call it.
- Inno Setup is pinned to 6.7.3 by SHA-256 in the workflow.
- packaging_test.dart lints the per-user restriction, the uninstall and
  upgrade rules, and the filename across the .iss, scripts and upload.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014GLXdGLfPwgYjW1AkonGqN
Same Windows-checkout CRLF trap as the AppImage lint tests: the installer
group asserted workflow lines ending in \n.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014GLXdGLfPwgYjW1AkonGqN
…e runner's

The runner image already has an ISCC.exe on PATH (a Chocolatey shim), and
build-windows-installer.ps1 found that before the pinned 6.7.3 the
workflow had just installed. Install the pinned copy to its own directory
and pass it as $ISCC; log the compiler's version.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014GLXdGLfPwgYjW1AkonGqN
ISCC.exe carries no usable version resource, so it printed 0.0.0.0. The
path already names the pinned copy in CI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014GLXdGLfPwgYjW1AkonGqN
feat(windows): ship an installer, with the zip as the portable option
@StuartCameronCode
StuartCameronCode merged commit be30d14 into main Oct 5, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant