[Python-checkins] bpo-37481: Deprecate distutils bdist_wininst command (GH-14553)

Victor Stinner webhook-mailer at python.org
Fri Jul 5 04:44:18 EDT 2019


https://github.com/python/cpython/commit/1da4462765b084dfa8d869b6cb5855e8f6014a11
commit: 1da4462765b084dfa8d869b6cb5855e8f6014a11
branch: master
author: Victor Stinner <vstinner at redhat.com>
committer: GitHub <noreply at github.com>
date: 2019-07-05T10:44:12+02:00
summary:

bpo-37481: Deprecate distutils bdist_wininst command (GH-14553)

The distutils bdist_wininst command is now deprecated, use
bdist_wheel (wheel packages) instead.

files:
A Misc/NEWS.d/next/Library/2019-07-02-13-08-30.bpo-37481.hd5k09.rst
M Doc/distutils/apiref.rst
M Doc/distutils/builtdist.rst
M Doc/whatsnew/3.8.rst
M Lib/distutils/command/bdist_wininst.py
M Lib/distutils/tests/test_bdist_wininst.py

diff --git a/Doc/distutils/apiref.rst b/Doc/distutils/apiref.rst
index 2601d30f63eb..937f19f57be9 100644
--- a/Doc/distutils/apiref.rst
+++ b/Doc/distutils/apiref.rst
@@ -1863,6 +1863,9 @@ Subclasses of :class:`Command` must define the following methods.
 .. module:: distutils.command.bdist_wininst
    :synopsis: Build a Windows installer
 
+.. deprecated:: 3.8
+   Use bdist_wheel (wheel packages) instead.
+
 
 .. % todo
 
diff --git a/Doc/distutils/builtdist.rst b/Doc/distutils/builtdist.rst
index 8c65d9d59118..b814f2e9508c 100644
--- a/Doc/distutils/builtdist.rst
+++ b/Doc/distutils/builtdist.rst
@@ -146,6 +146,9 @@ generated by each, are:
 | :command:`bdist_msi`     | msi                                 |
 +--------------------------+-------------------------------------+
 
+.. note::
+   bdist_wininst is deprecated since Python 3.8.
+
 The following sections give details on the individual :command:`bdist_\*`
 commands.
 
@@ -298,6 +301,9 @@ file winds up deep in the "build tree," in a temporary directory created by
 Creating Windows Installers
 ===========================
 
+.. warning::
+   bdist_wininst is deprecated since Python 3.8.
+
 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
@@ -459,3 +465,6 @@ Starting with Python 2.6, bdist_wininst supports a :option:`!--user-access-contr
 option.  The default is 'none' (meaning no UAC handling is done), and other
 valid values are 'auto' (meaning prompt for UAC elevation if Python was
 installed for all users) and 'force' (meaning always prompt for elevation).
+
+.. note::
+   bdist_wininst is deprecated since Python 3.8.
diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst
index 61e1d3da989d..95f25cd1cc52 100644
--- a/Doc/whatsnew/3.8.rst
+++ b/Doc/whatsnew/3.8.rst
@@ -1068,6 +1068,10 @@ Build and C API Changes
 Deprecated
 ==========
 
+* The distutils ``bdist_wininst`` command is now deprecated, use
+  ``bdist_wheel`` (wheel packages) instead.
+  (Contributed by Victor Stinner in :issue:`37481`.)
+
 * Deprecated methods ``getchildren()`` and ``getiterator()`` in
   the :mod:`~xml.etree.ElementTree` module emit now a
   :exc:`DeprecationWarning` instead of :exc:`PendingDeprecationWarning`.
diff --git a/Lib/distutils/command/bdist_wininst.py b/Lib/distutils/command/bdist_wininst.py
index acaa184b5f71..b5ed6f041e19 100644
--- a/Lib/distutils/command/bdist_wininst.py
+++ b/Lib/distutils/command/bdist_wininst.py
@@ -3,7 +3,9 @@
 Implements the Distutils 'bdist_wininst' command: create a windows installer
 exe-program."""
 
-import sys, os
+import os
+import sys
+import warnings
 from distutils.core import Command
 from distutils.util import get_platform
 from distutils.dir_util import create_tree, remove_tree
@@ -58,6 +60,12 @@ class bdist_wininst(Command):
     # bpo-10945: bdist_wininst requires mbcs encoding only available on Windows
     _unsupported = (sys.platform != "win32")
 
+    def __init__(self, *args, **kw):
+        super().__init__(*args, **kw)
+        warnings.warn("bdist_wininst command is deprecated since Python 3.8, "
+                      "use bdist_wheel (wheel packages) instead",
+                      DeprecationWarning, 2)
+
     def initialize_options(self):
         self.bdist_dir = None
         self.plat_name = None
diff --git a/Lib/distutils/tests/test_bdist_wininst.py b/Lib/distutils/tests/test_bdist_wininst.py
index 163f1cc97bf9..5c3d025d3321 100644
--- a/Lib/distutils/tests/test_bdist_wininst.py
+++ b/Lib/distutils/tests/test_bdist_wininst.py
@@ -2,7 +2,7 @@
 import sys
 import platform
 import unittest
-from test.support import run_unittest
+from test.support import run_unittest, check_warnings
 
 from distutils.command.bdist_wininst import bdist_wininst
 from distutils.tests import support
@@ -21,7 +21,8 @@ def test_get_exe_bytes(self):
         # this test makes sure it works now for every platform
         # let's create a command
         pkg_pth, dist = self.create_dist()
-        cmd = bdist_wininst(dist)
+        with check_warnings(("", DeprecationWarning)):
+            cmd = bdist_wininst(dist)
         cmd.ensure_finalized()
 
         # let's run the code that finds the right wininst*.exe file
diff --git a/Misc/NEWS.d/next/Library/2019-07-02-13-08-30.bpo-37481.hd5k09.rst b/Misc/NEWS.d/next/Library/2019-07-02-13-08-30.bpo-37481.hd5k09.rst
new file mode 100644
index 000000000000..a3faecdd9151
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-07-02-13-08-30.bpo-37481.hd5k09.rst
@@ -0,0 +1,2 @@
+The distutils ``bdist_wininst`` command is deprecated in Python 3.8, use
+``bdist_wheel`` (wheel packages) instead.



More information about the Python-checkins mailing list