Skip to content

feat: add verified Windows update installation#175

Merged
hieshima merged 1 commit into
TomBadash:masterfrom
hieshima:feat/windows-update-install
May 15, 2026
Merged

feat: add verified Windows update installation#175
hieshima merged 1 commit into
TomBadash:masterfrom
hieshima:feat/windows-update-install

Conversation

@hieshima
Copy link
Copy Markdown
Collaborator

@hieshima hieshima commented May 14, 2026

Summary

  • Add release metadata generation and verification for Mouser updates, including version, build number, expiry, platform assets, file sizes, and SHA256 checksums.
  • Add a Windows update preparation flow behind a maintainer validation gate. When enabled for validation, Mouser downloads the selected Windows asset, verifies it, rejects unsafe archives, stages the replacement, and hands off to a helper outside the install folder after Mouser exits.
  • Add progress, cancellation, startup result handling, cleanup of stale update files, and localized user-facing update errors.
  • Add maintainer test endpoint overrides so release discovery and update metadata can be validated before a public release exists: MOUSER_UPDATE_LATEST_RELEASE_URL, MOUSER_UPDATE_MANIFEST_URL, and MOUSER_ENABLE_UPDATE_INSTALL.
  • Keep macOS and Linux on the manual install path. Mouser does not replace .app bundles, run package managers, or self-update Linux archives in this PR.

Addresses

  • Partially addresses [Feature] Auto Update #152 by adding the Windows install infrastructure. The user-visible Windows install action remains disabled until final GUI Install-click validation passes.

Related

Validation

  • python -m pytest tests/test_updater.py tests/test_update_installer.py tests/test_backend.py tests/test_locale_manager.py
  • python -m pytest
  • python -m py_compile main_qml.py core/*.py ui/*.py
  • QML lint using PySide6 qmllint
  • git diff --check
  • Windows packaged validation on real Windows 11: the GUI Download path reached the verified/staged ready-to-install state, and the packaged helper/swap/relaunch path updated a test build from 3.7.90 to 3.7.91 while preserving settings and the recovery backup.
  • The temporary windows-update-installer CI job was used for draft validation and has been removed from this PR workflow so it does not become permanent CI.

Required Before Enabling Windows Install

  • Run one final Windows GUI smoke with the install gate enabled: Check for Updates, Download, Install, relaunch, and confirm settings/profile preservation.
  • After that validation passes, a follow-up can enable the user-visible Windows install action by changing the default gate in ui/backend.py.

Notes

  • Uses GitHub HTTPS plus SHA256 and size verification. It does not introduce private signing-key custody.
  • Does not add macOS automatic app replacement or Linux package/archive self-replacement.
  • Does not change release version.

@hieshima hieshima force-pushed the feat/windows-update-install branch 10 times, most recently from f0f8df3 to a93babd Compare May 15, 2026 10:47
@hieshima hieshima force-pushed the feat/windows-update-install branch from a93babd to 2dedead Compare May 15, 2026 10:49
@hieshima hieshima marked this pull request as ready for review May 15, 2026 10:53
@hieshima hieshima merged commit 2fb2e9d into TomBadash:master May 15, 2026
1 check 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