feat(windows): ship an installer, with the zip as the portable option - #115
Merged
Merged
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Lands #114 on
main.#114 was stacked on
linux-appimage(#113). #113 was merged intomainfirst, and #114 was merged 19 seconds later while its base was stilllinux-appimage, so the Windows installer work landed on that branch instead ofmain.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