Skip to content

Add Windows MSI release packaging#3

Merged
MTG-Thomas merged 1 commit into
mainfrom
codex/winget-msi-rollout
May 9, 2026
Merged

Add Windows MSI release packaging#3
MTG-Thomas merged 1 commit into
mainfrom
codex/winget-msi-rollout

Conversation

@MTG-Thomas
Copy link
Copy Markdown
Member

@MTG-Thomas MTG-Thomas commented May 9, 2026

Summary

  • add Windows MSI release workflow using PyInstaller and WiX
  • upload MSI assets on published v-prefixed releases
  • dispatch package metadata to mtg-winget when releases publish
  • document per-machine MSI install behavior

Verification

  • git diff --cached --check before commit

View in Codesmith
Need help on this PR? Tag @codesmith with what you need.

  • Let Codesmith autofix CI failures and bot reviews

Summary by CodeRabbit

Release Notes

  • New Features

    • Windows MSI installer now available for tagged releases, enabling per-machine installation with automatic system PATH integration.
  • Documentation

    • Added Windows MSI documentation describing installation behavior, PATH updates, and elevation requirements.
  • Chores

    • Implemented automated GitHub Actions workflow and build tooling for MSI generation on release.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 9, 2026

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

This PR introduces complete Windows MSI packaging for quick-capture. It adds a WiX installer definition, PyInstaller executable spec, PowerShell build orchestration, a GitHub Actions release workflow, and supporting metadata extraction utilities. The workflow automates MSI generation on tagged releases and dispatches WinGet repository updates with installer details.

Changes

Windows MSI Packaging Pipeline

Layer / File(s) Summary
Installer Definition (WiX)
packaging/windows/quick-capture.wxs
Per-machine MSI structure with installation directory (Midtown Technology Group\Quick Capture), executable component, and PATH environment variable configuration.
Executable Packaging (PyInstaller)
packaging/windows/quick-capture.spec
PyInstaller spec bundling quick-capture module with dependencies into quick-capture.exe, with optional UPX compression via BUILD_USE_UPX env var.
Executable Entry Point
packaging/windows/quick-capture_launcher.py
Launcher script resolving and invoking the quick-capture console-script entry point at runtime via importlib.metadata.
Build Orchestration
packaging/windows/build-msi.ps1, scripts/get_msi_product_code.ps1
PowerShell scripts orchestrating PyInstaller compilation, WiX validation, MSI generation, and ProductCode extraction via WindowsInstaller COM API.
Release Automation
.github/workflows/release-msi.yml
GitHub Actions workflow triggered on release publication or manual dispatch, running build with computed version, publishing MSI to GitHub release or artifacts, and dispatching WinGet repository update on release.
Documentation
README.md
Windows MSI distribution section documenting installation location, PATH modification, and elevated permission requirements.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Poem

🐇 A rabbit hops through Windows bright,
MSI builders shine in sight,
PyInstaller spins up fast,
WiX weaves installers that will last—
From source to .msi, quick and light! 🎉

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add Windows MSI release packaging' directly describes the main change: introducing Windows MSI packaging for releases using PyInstaller and WiX.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/winget-msi-rollout

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@MTG-Thomas MTG-Thomas force-pushed the codex/winget-msi-rollout branch from 89c1f8a to fcbf636 Compare May 9, 2026 15:51
@MTG-Thomas MTG-Thomas merged commit 69e9883 into main May 9, 2026
4 of 5 checks passed
@MTG-Thomas MTG-Thomas deleted the codex/winget-msi-rollout branch May 9, 2026 16:08
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