Skip to content

release: a portable zip replaces the Windows MSI - #343

Merged
Shman4ik merged 1 commit into
mainfrom
release/windows-zip
Oct 1, 2026
Merged

Shman4ik merged 1 commit into
mainfrom
release/windows-zip

Conversation

@Shman4ik

@Shman4ik Shman4ik commented Oct 1, 2026

Copy link
Copy Markdown
Owner

What and why

The direct Windows download becomes a portable pgNimbus-<version>-win-x64.zip instead of a per-user MSI.

  • Nobody downloads the MSI. About 38 downloads across 30 releases, and none for 0.13.0, 0.13.1 or 1.0.0. Windows users come through the Microsoft Store, and winget install pgNimbus resolves to the Store package too.
  • It had started to cost more. WiX 7 refuses to build until its OSMF EULA is accepted (WIX7015, found while checking Bump wix from 5.0.2 to 7.0.0 #305), so the MSI meant a build dependency and a licence for a channel nobody used. Bump wix from 5.0.2 to 7.0.0 #305 and build(deps): WiX 7, with its OSMF EULA accepted for the MSI build #341 are closed in favour of this PR.
  • What the zip gives up: the Start menu shortcut, the Apps entry, and upgrading in place. The app keeps its data in %AppData%\pgNimbus either way, so updating means replacing the folder. The app has no update check, so an MSI user was already downloading every version by hand.

Changes

  • release.yml. WiX restore, Build MSI and the msiexec install/uninstall smoke are gone. In their place:
    • scripts/windows/build-zip.ps1 packs one top-level folder (pgNimbus-<version>-win-x64/, like the Linux .tar.gz) with no .pdb;
    • a smoke step unpacks the zip into a fresh folder, launches the exe and fails if a .pdb shipped;
    • the SHA, the windows-zip artifact, the release download pattern and the checksum/upload globs follow.
  • winget manifests describe a zip with a nested portable exe aliased pgnimbus. ArchiveBinariesDependOnPath puts the folder on PATH, because a symlinked exe would be cut off from the native DLLs next to it. The templates move to schema 1.9.0 (the field doesn't exist in 1.6.0) and carry schema headers. Scope is dropped, since it doesn't apply to portable.
  • WiX leaves .config/dotnet-tools.json, and packaging/windows/Product.wxs is deleted.
  • Docs:
    • README, the installation guide (with a note telling MSI users to uninstall and move to the Store or the zip), docs/index.md and the landing page;
    • the bug template's install-method list, which also gains the Store and the three Linux packages it never had;
    • release-ci.md, logo-assets.md, LOGO-ASSETS.md, CLAUDE.md's layout line, the release checklist's caveats, ROADMAP T5, and the script comments that pointed at Product.wxs.

Verified

  • build-zip.ps1 over a local win-x64 publish: a 52 MB zip (JIT self-contained; the AOT one will be smaller) with one top-level folder and no .pdb (the publish had 3).
  • Unpacked and launched with Smoke-Launch.ps1 (PGNIMBUS_DATA_DIR set to a scratch folder): PGNIMBUS_STARTUP_PROBE window_ms=2085, ok.
  • render-manifest.sh + winget validate (winget 1.30 preview): Manifest validation succeeded, no warnings. The 1.6.0 schema warned Unknown field [ArchiveBinariesDependOnPath].
  • Not run: the release workflow itself (workflow_dispatch), so the zip steps haven't run on a GitHub runner yet, with that runner's winget validating 1.9.0. Worth one dispatch before the next tag.
  • Not run: winget install --manifest (it needs the local-manifest admin setting enabled on this machine).

No app code, no UI change, nothing in shared/nimbusUi.

🤖 Generated with Claude Code

The per-user MSI was downloaded about 38 times over 30 releases, none
for 0.13.0 to 1.0.0; Windows users come through the Store. WiX 7 had
just started to require accepting its OSMF EULA, so the MSI cost a build
dependency and a licence for a channel nobody used.

The release now ships pgNimbus-<version>-win-x64.zip (one top-level
folder, no .pdb, like the Linux .tar.gz), built by
scripts/windows/build-zip.ps1 and smoke-launched from a fresh unpack.
The winget manifests describe a zip with a nested portable exe aliased
pgnimbus, on manifest schema 1.9.0 with schema headers (validated
without warnings). WiX leaves the tool manifest and Product.wxs goes.

README, the installation guide, the landing page, the bug template, the
rules and the roadmap say zip; the installation guide tells MSI users to
uninstall it and move to the Store or the zip.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Shman4ik
Shman4ik merged commit 30c6bd1 into main Oct 1, 2026
4 checks passed
@Shman4ik
Shman4ik deleted the release/windows-zip branch October 1, 2026 12:56
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