Skip to main content
← Back to list
01Issue
FeatureShippedSwamp CLIPublic
Assigneesstack72

Relationships

#1960 Fix Windows install script (install.ps1) parity with Unix

Opened by stack72 · 9/2/2026· Shipped 9/2/2026

Problem

scripts/install.ps1 exists but has several gaps compared to the Unix install.sh:

  1. No checksum verification — the Unix script verifies SHA-256 from both S3 artifact metadata and GitHub release checksums.txt. The PowerShell script skips this entirely.
  2. No S3 redirect handling — the Unix script follows x-amz-meta-x-amz-website-redirect-location. The PS1 script uses System.Net.WebClient which doesn't handle this.
  3. No "latest" version resolution — the Unix script resolves "latest" via S3 metadata; the PS1 script needs the same.
  4. No binary to download — blocked on the Windows binary being published (see sibling issue for release pipeline).

Proposed Solution

  1. Add SHA-256 checksum verification — download checksums.txt from the GitHub release and verify the zip hash matches before extracting
  2. Switch from System.Net.WebClient to Invoke-WebRequest (follows redirects by default) for S3 redirect handling
  3. Add latest version resolution matching the Unix script behavior
  4. Test both install paths: admin (C:\Program Files\swamp) and user ($env:LOCALAPPDATA\swamp)
  5. Add a post-release CI job on windows-latest that runs install.ps1 end-to-end, then asserts swamp --version matches the release tag
  6. Test that the binary is on PATH after install (both fresh install and upgrade over existing)

Files to Change

  • scripts/install.ps1 — checksum verification, redirect handling, latest resolution
  • .github/workflows/release.yml — add post-release Windows install smoke test job

Alternatives

  • Publish to winget/Chocolatey instead of maintaining a custom installer. Recommendation: defer to a follow-up — the PS1 script is the parity path for now.
02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 7 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

9/2/2026, 5:32:12 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack729/2/2026, 4:47:52 PM

Sign in to post a ripple.