Skip to content

Make Windows releases reproducible and self-explanatory - #18

Merged
stuartd merged 1 commit into
mainfrom
codex/release-packaging
Sep 16, 2026
Merged

stuartd merged 1 commit into
mainfrom
codex/release-packaging

Conversation

@stuartd

@stuartd stuartd commented Sep 16, 2026

Copy link
Copy Markdown
Owner

What changed

  • make create-local-release.ps1 publish through clean staging
  • emit two versioned two-file packages:
    • win-x64-self-contained, with .NET bundled
    • win-x64-net10, requiring the x64 .NET 10 Desktop Runtime
  • validate that every folder and ZIP contains exactly ClipDiff.exe and ClipDiff.ShellExtension.dll
  • make ordinary CI consume the same release script and upload both variants
  • add a tag-driven workflow that attaches both ZIPs to v1.2.3 GitHub releases
  • document the exact layout, runtime choice, and portable install/update process

Why

The raw bin/publish output was easy to mistake for the distributable application, the local output directory could retain stale files, and the README contradicted itself by eventually saying to copy only the EXE. The self-contained executable is also about 188 MB because it bundles .NET; users who already have the x64 .NET 10 Desktop Runtime now get a much smaller package.

The ZIPs are the release contract: choose one variant, extract both files together, and run the EXE.

Verification

The Windows workflow completed successfully. It exercised the native build/tests, .NET tests, both publishes, payload validation, and both artifact uploads. The resulting GitHub Actions artifacts are approximately 77.9 MB for self-contained and 6.8 MB for the .NET 10-dependent build.

@stuartd
stuartd merged commit ff1b17d into main Sep 16, 2026
2 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