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

bpo-39586: Deprecate distutils bdist_msi command #18415

Merged
merged 1 commit into from
Feb 10, 2020
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
3 changes: 3 additions & 0 deletions Doc/distutils/apiref.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1855,6 +1855,9 @@ Subclasses of :class:`Command` must define the following methods.

.. class:: bdist_msi

.. deprecated:: 3.9
Use bdist_wheel (wheel packages) instead.

Builds a `Windows Installer`_ (.msi) binary package.

.. _Windows Installer: https://msdn.microsoft.com/en-us/library/cc185688(VS.85).aspx
Expand Down
9 changes: 9 additions & 0 deletions Doc/distutils/builtdist.rst
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,9 @@ generated by each, are:
.. note::
bdist_wininst is deprecated since Python 3.8.

.. note::
bdist_msi is deprecated since Python 3.9.

The following sections give details on the individual :command:`bdist_\*`
commands.

Expand Down Expand Up @@ -304,6 +307,9 @@ Creating Windows Installers
.. warning::
bdist_wininst is deprecated since Python 3.8.

.. warning::
bdist_msi is deprecated since Python 3.9.

Executable installers are the natural format for binary distributions on
Windows. They display a nice graphical user interface, display some information
about the module distribution to be installed taken from the metadata in the
Expand Down Expand Up @@ -468,3 +474,6 @@ installed for all users) and 'force' (meaning always prompt for elevation).

.. note::
bdist_wininst is deprecated since Python 3.8.

.. note::
bdist_msi is deprecated since Python 3.9.
4 changes: 4 additions & 0 deletions Doc/whatsnew/3.9.rst
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,10 @@ Build and C API Changes
Deprecated
==========

* The distutils ``bdist_msi`` command is now deprecated, use
``bdist_wheel`` (wheel packages) instead.
(Contributed by Hugo van Kemenade in :issue:`39586`.)

* Currently :func:`math.factorial` accepts :class:`float` instances with
non-negative integer values (like ``5.0``). It raises a :exc:`ValueError`
for non-integral and negative floats. It is now deprecated. In future
Expand Down
10 changes: 9 additions & 1 deletion Lib/distutils/command/bdist_msi.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
Implements the bdist_msi command.
"""

import sys, os
import os
import sys
import warnings
from distutils.core import Command
from distutils.dir_util import remove_tree
from distutils.sysconfig import get_python_version
Expand Down Expand Up @@ -122,6 +124,12 @@ class bdist_msi(Command):
'3.5', '3.6', '3.7', '3.8', '3.9']
other_version = 'X'

def __init__(self, *args, **kw):
super().__init__(*args, **kw)
warnings.warn("bdist_msi command is deprecated since Python 3.9, "
"use bdist_wheel (wheel packages) instead",
DeprecationWarning, 2)

def initialize_options(self):
self.bdist_dir = None
self.plat_name = None
Expand Down
5 changes: 3 additions & 2 deletions Lib/distutils/tests/test_bdist_msi.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""Tests for distutils.command.bdist_msi."""
import sys
import unittest
from test.support import run_unittest
from test.support import run_unittest, check_warnings
from distutils.tests import support


Expand All @@ -14,7 +14,8 @@ def test_minimal(self):
# minimal test XXX need more tests
from distutils.command.bdist_msi import bdist_msi
project_dir, dist = self.create_dist()
cmd = bdist_msi(dist)
with check_warnings(("", DeprecationWarning)):
cmd = bdist_msi(dist)
cmd.ensure_finalized()


Expand Down
1 change: 1 addition & 0 deletions Misc/ACKS
Original file line number Diff line number Diff line change
Expand Up @@ -843,6 +843,7 @@ Dmitry Kazakov
Brian Kearns
Sebastien Keim
Ryan Kelly
Hugo van Kemenade
Dan Kenigsberg
Randall Kern
Robert Kern
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
The distutils ``bdist_msi`` command is deprecated in Python 3.9, use
``bdist_wheel`` (wheel packages) instead.