[New-bugs-announce] [issue28846] Add a ProviderKey to the installer bundle

Steve Dower report at bugs.python.org
Wed Nov 30 18:57:38 EST 2016


New submission from Steve Dower:

Currently the installer bundles for 3.5 and later have an automatically generated dependency provider key. This makes it difficult for other installers to correctly depend on the bundle.

For example, Visual Studio 2017 has an option to install CPython 3.5, but it cannot accurately determine when it is already installed, which may lead to Python being uninstalled unexpectedly. This is the purpose of the provider key - to provide a reliable key by which to reference the bundle.

For 3.5.2 and earlier, the key is a GUID that changes each release, but really the key should be stable for each version that cannot be installed side-by-side.

The change is to Tools/msi/bundle/bundle.wxs and adds the last attribute to this element:

  <Bundle Name="!(loc.FullProductName)"
          UpgradeCode="$(var.CoreUpgradeCode)"
          Version="$(var.Version)"
          IconSourceFile="bundle.ico"
          Manufacturer="!(loc.Manufacturer)"
          AboutUrl="http://www.python.org/"
          DisableModify="button"
          Compressed="no"
          dep:ProviderKey="CPython-$(var.MajorVersionNumber).$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)">

This will produce keys like "CPython-3.5", "CPython-3.5-32", "CPython-3.5-test" and "CPython-3.5-32-test" (the "-test" suffixed installers are never released, but may be produced by Tools/msi/build.bat).

I haven't tested it yet, but I believe this change will also fix a minor issue where the web and non-web installers conflict, even when the versions match.

Since it is important this metadata be consistent throughout the lifetime of a release, I'd like to get the change into Python 3.6.0rc1 after I've spent the time testing it. Ned - your thoughts?

----------
assignee: steve.dower
components: Windows
messages: 282118
nosy: ned.deily, paul.moore, steve.dower, tim.golden, zach.ware
priority: normal
severity: normal
stage: needs patch
status: open
title: Add a ProviderKey to the installer bundle
type: behavior
versions: Python 3.5, Python 3.6, Python 3.7

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue28846>
_______________________________________


More information about the New-bugs-announce mailing list