[Python-checkins] bpo-41282: Add deprecation warning and docs for distutils (PEP 632) (GH-24355)

zooba webhook-mailer at python.org
Fri Jan 29 16:49:02 EST 2021


https://github.com/python/cpython/commit/62949f697fdefbf0c8bbba7a8354b9376afa35ba
commit: 62949f697fdefbf0c8bbba7a8354b9376afa35ba
branch: master
author: Steve Dower <steve.dower at python.org>
committer: zooba <steve.dower at microsoft.com>
date: 2021-01-29T21:48:55Z
summary:

bpo-41282: Add deprecation warning and docs for distutils (PEP 632) (GH-24355)

files:
A Misc/NEWS.d/next/Library/2021-01-27-20-49-32.bpo-41282.SEPdV0.rst
M Doc/distutils/index.rst
M Doc/install/index.rst
M Doc/library/distutils.rst
M Doc/whatsnew/3.10.rst
M Lib/distutils/__init__.py

diff --git a/Doc/distutils/index.rst b/Doc/distutils/index.rst
index 1f72a25542494..2ccddc38b5f26 100644
--- a/Doc/distutils/index.rst
+++ b/Doc/distutils/index.rst
@@ -12,6 +12,13 @@
    :ref:`distributing-index`
       The up to date module distribution documentations
 
+.. note::
+
+   The entire ``distutils`` package has been deprecated and will be
+   removed in Python 3.12. This documentation is retained as a
+   reference only, and will be removed with the package. See the
+   :ref:`What's New <distutils-deprecated>` entry for more information.
+
 .. include:: ./_setuptools_disclaimer.rst
 
 .. note::
diff --git a/Doc/install/index.rst b/Doc/install/index.rst
index e6d5a3e6ebde6..b6b7085fb35aa 100644
--- a/Doc/install/index.rst
+++ b/Doc/install/index.rst
@@ -10,6 +10,13 @@
 
 .. TODO: Fill in XXX comments
 
+.. note::
+
+   The entire ``distutils`` package has been deprecated and will be
+   removed in Python 3.12. This documentation is retained as a
+   reference only, and will be removed with the package. See the
+   :ref:`What's New <distutils-deprecated>` entry for more information.
+
 .. seealso::
 
    :ref:`installing-index`
diff --git a/Doc/library/distutils.rst b/Doc/library/distutils.rst
index 62abc85ac397a..31c4ae5b23906 100644
--- a/Doc/library/distutils.rst
+++ b/Doc/library/distutils.rst
@@ -9,6 +9,11 @@
 
 --------------
 
+:mod:`distutils` is deprecated with removal planned for Python 3.12.
+See the :ref:`What's New <distutils-deprecated>` entry for more information.
+
+--------------
+
 The :mod:`distutils` package provides support for building and installing
 additional modules into a Python installation.  The new modules may be either
 100%-pure Python, or may be extension modules written in C, or may be
diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst
index 16bb8fb28178a..cf7d1e80758a0 100644
--- a/Doc/whatsnew/3.10.rst
+++ b/Doc/whatsnew/3.10.rst
@@ -341,9 +341,21 @@ The ``BUTTON5_*`` constants are now exposed in the :mod:`curses` module if
 they are provided by the underlying curses library.
 (Contributed by Zackery Spytz in :issue:`39273`.)
 
+.. _distutils-deprecated:
+
 distutils
 ---------
 
+The entire ``distutils`` package is deprecated, to be removed in Python
+3.12. Its functionality for specifying package builds has already been
+completely replaced by third-party packages ``setuptools`` and
+``packaging``, and most other commonly used APIs are available elsewhere
+in the standard library (such as :mod:`platform`, :mod:`shutil`,
+:mod:`subprocess` or :mod:`sysconfig`). There are no plans to migrate
+any other functionality from ``distutils``, and applications that are
+using other functions should plan to make private copies of the code.
+Refer to :pep:`632` for discussion.
+
 The ``bdist_wininst`` command deprecated in Python 3.8 has been removed.
 The ``bdist_wheel`` command is now recommended to distribute binary packages
 on Windows.
@@ -583,6 +595,10 @@ Deprecated
   as appropriate to help identify code which needs updating during
   this transition.
 
+* The entire ``distutils`` namespace is deprecated, to be removed in
+  Python 3.12. Refer to the :ref:`module changes <distutils-deprecated>`
+  section for more information.
+
 * Non-integer arguments to :func:`random.randrange` are deprecated.
   The :exc:`ValueError` is deprecated in favor of a :exc:`TypeError`.
   (Contributed by Serhiy Storchaka and Raymond Hettinger in :issue:`37319`.)
diff --git a/Lib/distutils/__init__.py b/Lib/distutils/__init__.py
index d823d040a1c1e..5ddb95923809c 100644
--- a/Lib/distutils/__init__.py
+++ b/Lib/distutils/__init__.py
@@ -9,5 +9,11 @@
 """
 
 import sys
+import warnings
 
 __version__ = sys.version[:sys.version.index(' ')]
+
+warnings.warn("The distutils package deprecated and slated for "
+              "removal in Python 3.12. Use setuptools or check "
+              "PEP 632 for potential alternatives",
+              DeprecationWarning)
diff --git a/Misc/NEWS.d/next/Library/2021-01-27-20-49-32.bpo-41282.SEPdV0.rst b/Misc/NEWS.d/next/Library/2021-01-27-20-49-32.bpo-41282.SEPdV0.rst
new file mode 100644
index 0000000000000..c7b6b5233e8f2
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-01-27-20-49-32.bpo-41282.SEPdV0.rst
@@ -0,0 +1 @@
+Deprecate ``distutils`` in documentation and add warning on import.



More information about the Python-checkins mailing list