Repository navigation
Conversation
Signed-off-by: I013442 <max.leonardo.reupke@iav.de>
Signed-off-by: I013442 <max.leonardo.reupke@iav.de>
Signed-off-by: I013442 <max.leonardo.reupke@iav.de>
Previous review (2026-10-30)Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting. Reviewed at head This PR fixes template lookup for per-user Windows installs, but it breaks upgrades of existing all-users installs and can hide templates after a scope switch. Blocking
Should fix
Minor (2)
The installer was not compiled or run on Windows; installer behaviour above is from the Inno Setup 6.7.1 source and docs. |
Keep existing all-users installations in their original scope during upgrades by removing UsePreviousPrivileges=no. Fresh installations continue to default to per-user mode and offer an all-users option. Require system_vehicle_components_template.json to be a regular file before selecting the per-user templates directory. Fall back to shared templates when uninstall leaves an empty directory or personal presets behind. Restore stale application-file cleanup in the default installation directory for the selected scope. When uninstalling an all-users installation with the PATH task selected, also remove matching entries from the current user's PATH left by older installers. Replace the machine-dependent Windows lookup test with isolated cases covering absent, empty, leftover-only, invalid-marker, and installed template directories. Add a scope-switch regression that verifies shared templates are selected after per-user uninstall while personal presets remain intact. Update the Windows build workflow's Inno Setup download and cache key from 6.7.1 to 6.7.4. Validation: - 291 settings, component-template, and vehicle-project tests passed. - ty, Ruff, Pylint, and pre-commit checks passed for the application, test, and installer changes. - Windows compilation and upgrade/uninstall testing remain unverified. Signed-off-by: Dr.-Ing. Amilcar do Carmo Lucas <amilcar.lucas@iav.de>
|
Automated review note — AI-generated (Claude+Codex), validated against the live diff. Please sanity-check before acting. Reviewed at head The installer and template-lookup changes now look right; one personal-preset visibility issue on scope changes is left. Since the last review, both blockers are fixed: dropping Should fix
Minor (1)
The note about keeping templates in the roaming profile was dropped as a design preference. The installer was still not compiled or run on Windows; installer behaviour here comes from the Inno Setup 6.7.4 source. |
Coverage Report for CI Build 41118277630Warning Build has drifted: This PR's base is out of sync with its target branch, so coverage data may include unrelated changes. Coverage increased (+0.02%) to 93.602%Details
Uncovered ChangesNo uncovered changes found. Coverage Regressions11 previously-covered lines in 2 files lost coverage.
Coverage Stats
💛 - Coveralls |
Summary
Default to a non-elevated Windows user installation, while offering an
all-users installation through Inno Setup's built-in selection dialog.
Only three source files change:
windows/ardupilot_methodic_configurator.iss: offer the installation-modedialog with the current-user mode as default, even when an older installation
exists. Use automatic application, template and desktop constants so the
destinations follow the selected mode. Retain upstream obsolete-template
cleanup, but do not recursively delete the application directory. Apply the
optional PATH task to the selected mode.
ardupilot_methodic_configurator/backend_filesystem_program_settings.py:prefer user-installed Windows templates, falling back to shared templates
when no user template directory exists.
windows/modpath.iss: match the registered application directory whenchoosing the uninstall registry and PATH scope, rather than inferring the
scope from the uninstaller's elevation.
No signing, separate install-scope metadata, migration machinery, build helper,
installer binary, dependency, test or CI change is included. This is a small
alternative to #2240; that PR is not modified.
Evidence
locations and offers an all-users PATH task.
After: the installer uses
PrivilegesRequired=lowestand the built-inmode dialog, with destinations and PATH handling following the chosen mode.
and the requester confirmed that it installed. That executable does not
contain the newly added installation-mode selection.
master; upstreamcleanup additions were preserved and their template paths made user-scoped.
The current revision with optional all-users installation has not been
built or runtime-tested.
as explicitly requested by the requester.
Merge Danger
Door: Two-way for the code change. Existing installations may require
manual uninstall/reinstall when changing installation scope.
Blast Radius: Windows.
User installation is the default; choosing all-users requires administrative
rights. Existing installations and templates are not migrated between scopes.
When both user and shared template directories exist, Windows uses the user's
templates. Other platforms retain their existing template lookup behavior.
Company policies restricting unsigned software are not changed.
Checklist