For some of my projects, I build my own Windows installers from source using the Tools\msi\buildrelease.bat
script. I was recently informed (Can't update python 3.9.13 to 3.9.14 · Issue #10 · adang1345/PythonWindows · GitHub) that some of the installers I built locally are no longer interoperable with those that are released officially. For example, if I have an official Python 3.9.13 installation, I can’t upgrade it using a locally-built Python 3.9.14 installer. My locally-built installer does not recognize that there already exists a 3.9.x installation that can be upgraded, and it asks me to do a completely new installation.
I traced the cause of this to Update URLs in comments and metadata to use HTTPS by coderanger · Pull Request #27458 · python/cpython · GitHub. In particular, in the file Tools\msi\buildrelease.bat
, the line
set RELEASE_URI=http://www.python.org/{arch}
was changed to
set RELEASE_URI=https://www.python.org/{arch}
However, based on my understanding, official releases still use the value http://www.python.org/{arch}
, as evidenced by the line
ReleaseUri: http://www.python.org/{arch}
in release-tools/stage-msi.yml at master · python/release-tools · GitHub
The RELEASE_URI
affects the GUIDs of the installers, which explains why my locally-built installers are not interoperable with the official installers.
For the sake of consistency, I propose that we change RELEASE_URI
in Tools\msi\buildrelease.bat
back to its original value of http://www.python.org/{arch}
. I tried making this change locally, and that fixed my interoperability issue. Does anyone have any thoughts about this?