classification
Title: Deprecate bdist_msi: use bdist_wheel instead
Type: Stage: resolved
Components: Distutils, Windows Versions: Python 3.9
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: dstufft, eric.araujo, hugovk, paul.moore, steve.dower, tim.golden, vstinner, zach.ware
Priority: normal Keywords: patch

Created on 2020-02-08 15:07 by hugovk, last changed 2020-02-10 13:30 by vstinner. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 18415 merged hugovk, 2020-02-08 15:15
Messages (3)
msg361633 - (view) Author: Hugo van Kemenade (hugovk) * Date: 2020-02-08 15:07
According to the "Deprecate bdist_wininst" discussion (July 2019), bdist_msi can be deprecated:

https://discuss.python.org/t/deprecate-bdist-wininst/1929

Victor Stinner wrote:

"Now the question is if someone here wants to go further is deprecate all distutils commands except sdist and bdist_wheel? Steve Dower wants to deprecate bdist_msi as well: I’m not sure who use bdist_msi. It’s another form of GUI installer, so it’s similar to bdist_wininst. I would also strongly encourage to use bdist_wheel rather than bdist_msi."

Brett Cannon wrote:

"Probably a good idea, but I personally don’t have the time."

Steve Dower wrote:

"I think the others are fine to leave (though if people who work more closely with those tools want to say drop them then I’m fine with that too).

"bdist_msi and bdist_exe don’t integrate with any other package managers, can’t be integrated with any other installer besides our own Python installer, and in any case are worse than simply copying the files. (If we had a bdist_msm I’d be slightly more sympathetic, but we don’t and probably should not :) )

"I also don’t necessarily think that wheels are always the alternative, particularly for embedded scenarios, but I do think that the fewer options we provide by default will help people find the option they actually need, rather than assuming that because it’s “blessed” it must see correct."


And in "Remove distutils bdist_wininst command" (February 2020):

https://discuss.python.org/t/remove-distutils-bdist-wininst-command/3115

Victor Stinner wrote:

"I don’t plan to remove bdist_msi, even if wheel packages are now recommended."

Steve Dower wrote:

"We should, though. Installing a package using an MSI is worse than an EXE, as it leaves far more cruft behind if you don’t uninstall it before changing/removing the Python install.

"Standalone apps should bundle everything, like pynsist or briefcase. GPO deployment should create their own MSI with everything they want in the bundle and deploy that. Perhaps someone can make an “installer” based on the py.exe launcher (which I believe supports an attached zip file) that will use pip and a local/embedded wheel.

"But we should really discourage package installs that don’t support venv and/or leave cruft behind."

Victor Stinner wrote:

"If you want to see it disappear, you should start by deprecating it in Python 3.9. It would be a first step."

PR to follow.

See also:
* https://bugs.python.org/issue37481 "Deprecate bdist_wininst: use bdist_wheel instead"
* https://bugs.python.org/issue39541 "distutils: Remove bdist_wininst (Windows .exe installers) in favor of bdist_wheel (.whl)"
msg361693 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2020-02-10 13:27
New changeset 29b3fc0a18f105de666fdd586b537f34e349766d by Hugo van Kemenade in branch 'master':
bpo-39586: Deprecate distutils bdist_msi command (GH-18415)
https://github.com/python/cpython/commit/29b3fc0a18f105de666fdd586b537f34e349766d
msg361694 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2020-02-10 13:30
Steve Dower who knows well Windows installer discourage users to use MSI:
https://discuss.python.org/t/remove-distutils-bdist-wininst-command/3115/14

Other pip developers want to get ride of everything but sdist and bdist_wheel formats:
https://discuss.python.org/t/remove-distutils-bdist-wininst-command/3115/14

So let's deprecated bdist_msi. If someone comes with a use case which justify to keep the feature, it would be trivial to revert the deprecation.

Thanks Hugo van Kemenade ;-)
History
Date User Action Args
2020-02-10 13:30:02vstinnersetstatus: open -> closed
resolution: fixed
messages: + msg361694

stage: patch review -> resolved
2020-02-10 13:27:06vstinnersetnosy: + vstinner
messages: + msg361693
2020-02-08 15:15:11hugovksetkeywords: + patch
stage: patch review
pull_requests: + pull_request17790
2020-02-08 15:07:52hugovkcreate