[windows] Add Windows Store MSIX packaging groundwork#3178
Merged
Conversation
Co-authored-by: Codex <noreply@openai.com>
Two-line fix to keep MSIX failures from blocking established artifact delivery: * Moved the "Create MSIX package" step to run AFTER the portable ZIP + Inno installer steps. If MSIX generation fails (missing SDK tool on a runner image bump, signtool flake, transient asset issue), the established portable-zip + Inno installer paths still complete and reach the artifact upload step. * Added continue-on-error: true so the failure is logged but the run continues to upload whatever artifacts did succeed (portable zip, Inno installer). When MSIX matures across a few releases we can promote it back into the hard-required set. Until then, "purely additive" is the right shape — the existing installer flow has zero new failure modes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The release-tag path (push.tags: v*) gives a slash-free ref name like "v26.5.3", so the existing pipeline never hit the slash trap. But the workflow_dispatch path on a branch ref (e.g. "codex/windows-store-msix") injects slashes that Compress-Archive interprets as a directory separator, exiting 1 before Inno or MSIX get a chance to run. Inno similarly chokes on slashes in /DAPP_VERSION. Strip every filesystem-unsafe character with a -replace pass so ad-hoc dispatch runs (the validation flow this PR's new MSIX step depends on for runner-image-image testing before the next tagged release) reach the later steps instead of dying at step 1. Without this, the workflow_dispatch trigger I added to validate the new MSIX step against the GH runner image fails before MSIX even loads, leaving us unable to confirm Find-WindowsSdkTool resolves the SDK paths correctly until the next v* tag. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Collaborator
|
Claude here — merged at `3f7d0784`, thanks @jensenpat! Solid Windows Store groundwork: well-architected PowerShell, comprehensive docs, MSIX visual-asset generation that actually covers the full set (including the often-skipped `altform-unplated` variants), and a thoughtful set of deferred WACK follow-ups so reviewers can see the full Store-submission roadmap without it bloating this PR. Folded two small fixups on top before merge:
Next `v*` tag push will be the first real CI exercise of the MSIX path. With continue-on-error and the reorder, worst case is "release ships zip + setup.exe as before; MSIX failed-loudly in the workflow log" — non-fatal for users. 73, Jeremy KK7GWY & Claude (AI dev partner) |
This was referenced May 27, 2026
ten9876
pushed a commit
that referenced
this pull request
Jun 8, 2026
Release-prep for **v26.6.2**, a consolidated release rolling up the 26.6.1 feature wave, the v26.6.1.1 hotfixes, and new work through #3443. Bumps version 26.6.1.1 → 26.6.2 in `CMakeLists.txt` and the `README.md` banner, and prepends the v26.6.2 `CHANGELOG.md` entry. No code changes. Headline content: runtime theming system, three HID controller classes (StreamDeck+, Ulanzi Dial, Icom RC-28), the packet-radio suite (KISS-over-TCP TNC #3279, connected-mode BBS terminal #3381, PMS mailbox), and the Microsoft Store MSIX packaging path (#3178/#3205/#3225/#3281). 💻 Generated with Claude Code (Opus 4.8) with architecture by @jensenpat Co-authored-by: Codex <noreply@openai.com>
G6PWY-Chris
pushed a commit
to G6PWY-Chris/AetherSDR
that referenced
this pull request
Jun 22, 2026
## Summary This PR adds the first pass of Windows Store/MSIX packaging support for AetherSDR. - Adds `packaging/windows/create-msix.ps1` to generate an MSIX package from the existing Windows `deploy` directory. - Generates MSIX visual assets from the existing logo, writes `AppxManifest.xml`, adds App Installer UX metadata, runs `makeappx.exe`, optionally signs with `signtool.exe`, and can create a `.msixupload` for Partner Center. - Wires the Windows installer workflow to build unsigned MSIX/MSIXUPLOAD artifacts alongside the portable zip and Inno installer. - Adds repository variable hooks for Partner Center identity/display values and package color options. - Adds docs for local packaging, sideload signing, manifest values, GitHub variables, and current WACK follow-ups. - Ignores generated MSIX/package roots, deploy folders, local certs, and related package artifacts. ## Current Manifest Defaults - Display name: `AetherSDR` - Publisher display name: `AetherSDR` - Description: `Multi-platform SDR client for FlexRadio transceivers (6000/8600/Aurora).` - Minimum OS: Windows 10 2004 / build 19041 - Capabilities: `runFullTrust`, `internetClient`, `privateNetworkClientServer`, `microphone` Partner Center will still need to provide the final `Identity.Name` and `Identity.Publisher` values. ## Validation - PowerShell parser check passed for `packaging/windows/create-msix.ps1`. - `git diff --check` passed. - Local MSVC/Qt build and unsigned MSIX generation were exercised manually while developing this branch. - Windows App Certification Kit was run locally; the docs now capture the remaining follow-ups. ## Known Follow-Ups - Replace the Windows support-bundle PowerShell `Compress-Archive` call with in-process ZIP creation. - Decide how to handle DFNR for Store packaging. The current `DeepFilterNet3_onnx.tar.gz` archive triggers WACK archive checks; `df_create(nullptr, ...)` may allow using the embedded default model instead. - Add PerMonitorV2 DPI awareness before final WACK/Store submission. - Review Qt/vendor DLL blocked-executable warnings separately from app-owned process-launch behavior. --------- Co-authored-by: Codex <noreply@openai.com> Co-authored-by: Jeremy Fielder <kk7gwy@aethersdr.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
G6PWY-Chris
pushed a commit
to G6PWY-Chris/AetherSDR
that referenced
this pull request
Jun 22, 2026
Release-prep for **v26.6.2**, a consolidated release rolling up the 26.6.1 feature wave, the v26.6.1.1 hotfixes, and new work through aethersdr#3443. Bumps version 26.6.1.1 → 26.6.2 in `CMakeLists.txt` and the `README.md` banner, and prepends the v26.6.2 `CHANGELOG.md` entry. No code changes. Headline content: runtime theming system, three HID controller classes (StreamDeck+, Ulanzi Dial, Icom RC-28), the packet-radio suite (KISS-over-TCP TNC aethersdr#3279, connected-mode BBS terminal aethersdr#3381, PMS mailbox), and the Microsoft Store MSIX packaging path (aethersdr#3178/aethersdr#3205/aethersdr#3225/aethersdr#3281). 💻 Generated with Claude Code (Opus 4.8) with architecture by @jensenpat Co-authored-by: Codex <noreply@openai.com>
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.
Summary
This PR adds the first pass of Windows Store/MSIX packaging support for AetherSDR.
packaging/windows/create-msix.ps1to generate an MSIX package from the existing Windowsdeploydirectory.AppxManifest.xml, adds App Installer UX metadata, runsmakeappx.exe, optionally signs withsigntool.exe, and can create a.msixuploadfor Partner Center.Current Manifest Defaults
AetherSDRAetherSDRMulti-platform SDR client for FlexRadio transceivers (6000/8600/Aurora).runFullTrust,internetClient,privateNetworkClientServer,microphonePartner Center will still need to provide the final
Identity.NameandIdentity.Publishervalues.Validation
packaging/windows/create-msix.ps1.git diff --checkpassed.Known Follow-Ups
Compress-Archivecall with in-process ZIP creation.DeepFilterNet3_onnx.tar.gzarchive triggers WACK archive checks;df_create(nullptr, ...)may allow using the embedded default model instead.