Skip to content
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

Deprecate bdist_msi: use bdist_wheel instead #83767

hugovk opened this issue Feb 8, 2020 · 4 comments

Deprecate bdist_msi: use bdist_wheel instead #83767

hugovk opened this issue Feb 8, 2020 · 4 comments
3.9 only security fixes OS-windows stdlib Python modules in the Lib dir


Copy link

hugovk commented Feb 8, 2020

BPO 39586
Nosy @pfmoore, @vstinner, @tjguk, @merwok, @zware, @zooba, @dstufft, @hugovk
  • bpo-39586: Deprecate distutils bdist_msi command #18415
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = <Date 2020-02-10.13:30:02.288>
    created_at = <Date 2020-02-08.15:07:52.526>
    labels = ['library', '3.9', 'OS-windows']
    title = 'Deprecate bdist_msi: use bdist_wheel instead'
    updated_at = <Date 2021-09-07.10:31:52.529>
    user = '' fields:

    activity = <Date 2021-09-07.10:31:52.529>
    actor = 'hugovk'
    assignee = 'none'
    closed = True
    closed_date = <Date 2020-02-10.13:30:02.288>
    closer = 'vstinner'
    components = ['Distutils', 'Windows']
    creation = <Date 2020-02-08.15:07:52.526>
    creator = 'hugovk'
    dependencies = []
    files = []
    hgrepos = []
    issue_num = 39586
    keywords = ['patch']
    message_count = 4.0
    messages = ['361633', '361693', '361694', '401224']
    nosy_count = 8.0
    nosy_names = ['paul.moore', 'vstinner', 'tim.golden', 'eric.araujo', 'zach.ware', 'steve.dower', 'dstufft', 'hugovk']
    pr_nums = ['18415']
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = None
    url = ''
    versions = ['Python 3.9']

    Copy link
    Member Author

    hugovk commented Feb 8, 2020

    According to the "Deprecate bdist_wininst" discussion (July 2019), bdist_msi can be deprecated:

    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):

    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:

    @hugovk hugovk added 3.9 only security fixes stdlib Python modules in the Lib dir OS-windows labels Feb 8, 2020
    Copy link

    New changeset 29b3fc0 by Hugo van Kemenade in branch 'master':
    bpo-39586: Deprecate distutils bdist_msi command (GH-18415)

    Copy link

    Steve Dower who knows well Windows installer discourage users to use MSI:

    Other pip developers want to get ride of everything but sdist and bdist_wheel formats:

    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 ;-)

    Copy link
    Member Author

    hugovk commented Sep 7, 2021

    Following this deprecation in Python 3.9, please see / #28195 to remove the deprecation in Python 3.11.

    @ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    3.9 only security fixes OS-windows stdlib Python modules in the Lib dir
    None yet

    No branches or pull requests

    2 participants