mirror of
https://github.com/storytold/craft-libs.git
synced 2026-11-14 06:22:24 +00:00
Temporary (craft-libs#422, step 4): new msi_migrate module, to be removed two releases after the app packages become per-machine only. The released packages refuse a per-machine install while a per-user copy exists, so the move removes first and installs second: remove the per-user product (no permission prompt; if that fails nothing has changed), install the new version for everyone, and if that fails or permission is refused, install the new version for the account again in its old folder. Settings and documents live outside the program folder and are never touched. Which copies move: a per-user default folder goes to Program Files\ArtCraft\<App>; a chosen folder outside the profile moves in place; a chosen folder inside the profile keeps updating for the account. The launcher's own package never moves. Tested with real Windows Installer runs of a renamed dual-scope package carrying the apps' own install-policy.wxi: the move with the permission prompt accepted (twice), and with it refused (the app came back for the account at the new version, the failed log kept). Also unit tests for every plan and the order of steps, and a mutation check (9 of 9 killed). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>