Skip to content

Commit

Permalink
bpo-39586: Deprecate distutils bdist_msi command (GH-18415)
Browse files Browse the repository at this point in the history
  • Loading branch information
hugovk authored Feb 10, 2020
1 parent 5305cc9 commit 29b3fc0
Show file tree
Hide file tree
Showing 7 changed files with 31 additions and 3 deletions.
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.

0 comments on commit 29b3fc0

Please sign in to comment.