Skip to content

gh-101849: Add upgrade codes for old versions of launcher that ended up with later version numbers #101877

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Feb 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Ensures installer will correctly upgrade existing ``py.exe`` launcher installs.
2 changes: 1 addition & 1 deletion Tools/msi/common.wxs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
<UpgradeVersion Property="DOWNGRADE" Minimum="$(var.Version)" IncludeMinimum="no" OnlyDetect="yes" />
<UpgradeVersion Property="UPGRADE" Minimum="$(var.UpgradeMinimumVersion)" IncludeMinimum="yes" Maximum="$(var.Version)" IncludeMaximum="no" />
</Upgrade>
<?endif ?>

<?ifdef CoreUpgradeCode ?>
<?if $(var.UpgradeCode)!=$(var.CoreUpgradeCode) ?>
Expand All @@ -42,6 +41,7 @@
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallInitialize" Overridable="yes">UPGRADE</RemoveExistingProducts>
</InstallExecuteSequence>
<?endif ?>
</Fragment>

<Fragment>
Expand Down
21 changes: 21 additions & 0 deletions Tools/msi/launcher/launcher.wxs
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,34 @@
<Custom Before="SetLauncherInstallDirectoryLM" Action="SetLauncherInstallDirectoryCU">NOT Installed AND NOT ALLUSERS=1</Custom>
<Custom Before="CostFinalize" Action="SetLauncherInstallDirectoryLM">NOT Installed AND ALLUSERS=1</Custom>

<?if $(var.UpgradeMinimumVersion)="3.11.0.0" ?>
<RemoveExistingProducts After="InstallValidate">UPGRADE or REMOVE_350_LAUNCHER or REMOVE_360A1_LAUNCHER or UPGRADE_3_11_0 or UPGRADE_3_11_1</RemoveExistingProducts>
<?else ?>
<RemoveExistingProducts After="InstallValidate">UPGRADE or REMOVE_350_LAUNCHER or REMOVE_360A1_LAUNCHER</RemoveExistingProducts>
<?endif ?>
</InstallExecuteSequence>

<?if $(var.UpgradeMinimumVersion)="3.11.0.0" ?>
<Condition Message="!(loc.NoDowngrade)">Installed OR NOT DOWNGRADE OR UPGRADE_3_11_0 OR UPGRADE_3_11_1</Condition>
<?else ?>
<Condition Message="!(loc.NoDowngrade)">Installed OR NOT DOWNGRADE</Condition>
<?endif ?>

<!-- Upgrade all versions of the launcher -->
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion Property="DOWNGRADE" Minimum="$(var.Version)" IncludeMinimum="no" OnlyDetect="yes" />
<UpgradeVersion Property="UPGRADE" Minimum="0.0.0.0" IncludeMinimum="yes" Maximum="$(var.Version)" IncludeMaximum="no" />
<!--
Prior to 3.11.2150, version numbers incorrectly used date-based
revision numbers in the third field. Because these are higher than
the real version, it prevents upgrades.
Releases of 3.10 have a similar issue, however, no significant
changes have shipped in the launcher, so we don't worry about it.
-->
<?if $(var.UpgradeMinimumVersion)="3.11.0.0" ?>
<UpgradeVersion Property="UPGRADE_3_11_0" Minimum="3.11.7966.0" IncludeMinimum="yes" Maximum="3.11.7966.0" IncludeMaximum="yes" />
<UpgradeVersion Property="UPGRADE_3_11_1" Minimum="3.11.8009.0" IncludeMinimum="yes" Maximum="3.11.8009.0" IncludeMaximum="yes" />
<?endif ?>
</Upgrade>
<!-- Python 3.5.0 shipped with a different UpgradeCode -->
<Upgrade Id="A71530B9-E89D-53DB-9C2D-C6D7551876D8">
Expand Down