Skip to content

#1232 fix repair button#2135

Draft
quando632 wants to merge 2 commits into
devonfw:mainfrom
quando632:feature/1232-msi-repair-broken
Draft

#1232 fix repair button#2135
quando632 wants to merge 2 commits into
devonfw:mainfrom
quando632:feature/1232-msi-repair-broken

Conversation

@quando632

Copy link
Copy Markdown
Contributor

This PR fixes #1232

Implemented changes:

  • WixUI_IDEasySetup.wxs – Added the missing RepairButton → VerifyReadyDlg navigation to the custom maintenance dialog. WiX's built-in MaintenanceTypeDlg only sets WixUI_InstallMode=Repair; advancing the wizard is the author's job. Our hand-rolled dialog set wired only RemoveButton/Back, so clicking Repair set the mode but never advanced → "nothing happened". The fix mirrors the already-working RemoveButton (and restores the stock WixUI_InstallDir behavior).
  • Package.wxs – Fixed the custom-action conditions so a repair actually works:
    • RunInstallAction: NOT InstalledNOT Installed OR REINSTALL (repair re-runs ideasy install).
    • RunUninstallAction: added AND NOT REINSTALL (a repair must not trigger the uninstall action).

Testing instructions

Build the MSI (needs .NET SDK + WiX v5). Stage the release binaries into windows-installer/msi-files (as CI does), then:

cd windows-installer
wix build Package.wxs WixUI_IDEasySetup.wxs -loc Package.en-us.wxl -ext WixToolset.UI.wixext -ext WixToolset.Util.wixext -o ideasy.msi
  1. Functional (UI) test: Install ideasy.msi, then run it again → the Maintenance dialog (Change / Repair / Uninstall) → click Repair.

    • Before this fix: the Repair button does nothing.
    • With this fix: the wizard advances to "Ready to repair" and completes. Verify a fresh %USERPROFILE%\.ide\logs\install-*.log appears and no uninstall-*.log is created.
  2. Quick check without installing (reads the MSI tables read-only):

  $i = New-Object -ComObject WindowsInstaller.Installer; $db = $i.OpenDatabase("ideasy.msi", 0)
  $db.Export('ControlEvent', $env:TEMP, 'ce.idt'); $db.Export('InstallExecuteSequence', $env:TEMP, 'seq.idt')
  Select-String "$env:TEMP\ce.idt"  'MaintenanceTypeDlg.*RepairButton'   # expect a "NewDialog | VerifyReadyDlg" row
  Select-String "$env:TEMP\seq.idt" 'Run(Install|Uninstall)Action'       # expect REINSTALL / NOT REINSTALL in the conditions

Checklist for this PR

Make sure everything is checked before merging this PR. For further info please also see
our DoD.

  • When running mvn clean test locally all tests pass and build is successful
  • PR title is of the form #«issue-id»: «brief summary» (e.g. #921: fixed setup.bat). If no issue ID exists, title only.
  • PR top-level comment summarizes what has been done and contains link to addressed issue(s)
  • PR and issue(s) have suitable labels
  • Issue is set to In Progress and assigned to you or there is no issue (might happen for very small PRs)
  • You followed all coding conventions
  • You have added the issue implemented by your PR in CHANGELOG.adoc unless issue is labeled
    with internal
  • You have formulated clear instructions on how to test your contribution under "Testing instructions"

@quando632 quando632 moved this from 🆕 New to 🏗 In progress in IDEasy board Jul 8, 2026
@coveralls

coveralls commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 28947518471

Coverage decreased (-0.03%) to 72.098%

Details

  • Coverage decreased (-0.03%) from the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • 2 coverage regressions across 2 files.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

2 previously-covered lines in 2 files lost coverage.

File Lines Losing Coverage Coverage
com/devonfw/tools/ide/tool/ide/IdeToolCommandlet.java 1 78.33%
com/devonfw/tools/ide/version/VersionSegment.java 1 91.34%

Coverage Stats

Coverage Status
Relevant Lines: 16707
Covered Lines: 12553
Line Coverage: 75.14%
Relevant Branches: 7456
Covered Branches: 4868
Branch Coverage: 65.29%
Branches in Coverage %: Yes
Coverage Strength: 3.18 hits per line

💛 - Coveralls

@quando632 quando632 moved this from 🏗 In progress to Team Review in IDEasy board Jul 9, 2026
@quando632 quando632 moved this from Team Review to 🏗 In progress in IDEasy board Jul 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🏗 In progress

Development

Successfully merging this pull request may close these issues.

MSI Repair broken

2 participants