NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #9 most downloaded on PyPI
Most extensible Python build backend with support for C/C++ extension modules
Last release 1 months ago
08 Aug 2026
Ships unpredictably
gaps range from 9 days to 8 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
10 versions withdrawn
withdrawn after publishing
20 years old
625 releases · first in 2006
Changes ------- * #2902: Merge with pypa/distutils@85db7a41242. Misc ---- * #2906: In ensure_local_distutils, re-use DistutilsMetaFinder to load the m
#2902: Merge with pypa/distutils@85db7a41242.
#2906: In ensure_local_distutils, re-use DistutilsMetaFinder to load the module. Avoids race conditions when _distutils_system_mod is employed.
26 Nov 2021
#2902 : Merge with pypa/distutils@85db7a41242 .
#2906 : In ensure_local_distutils, re-use DistutilsMetaFinder to load the module. Avoids race conditions when _distutils_system_mod is employed.
Changes ------- * #2875: Introduce changes from pypa/distutils@514e9d0, including support for overrides from Debian and pkgsrc, unlocking the possibil
One column per quarter.
#2875: Introduce changes from pypa/distutils@514e9d0, including support for overrides from Debian and pkgsrc, unlocking the possibility of making SETUPTOOLS_USE_DISTUTILS=local the default again.
18 Nov 2021
#2875 : Introduce changes from pypa/distutils@514e9d0 , including support for overrides from Debian and pkgsrc, unlocking the possibility of making SETUPTOOLS_USE_DISTUTILS=local the default again.
Misc ---- * #2885: Fixed errors when encountering LegacyVersions.
#2885: Fixed errors when encountering LegacyVersions.
15 Nov 2021
#2885 : Fixed errors when encountering LegacyVersions.
Changes ------- * #2497: Update packaging to 21.2. * #2877: Back out deprecation of setup_requires and replace instead by a deprecation of setuptools.
#2497: Update packaging to 21.2.
#2877: Back out deprecation of setup_requires and replace instead by a deprecation of setuptools.installer and fetch_build_egg. Now setup_requires is still supported when installed as part of a PEP 517 build, but is deprecated when an unsatisfied requirement is encountered.
#2879: Bump packaging to 21.2.
#2867: PNG/ICO images replaced with SVG in the docs.
#2867: Added support to SVG "favicons" via "in-tree" Sphinx extension.
Misc ---- * #2880: Removed URL requirement for pytest-virtualenv in setup.cfg. PyPI rejects packages with dependencies external to itself. Instead the
#2880: Removed URL requirement for pytest-virtualenv in setup.cfg. PyPI rejects packages with dependencies external to itself. Instead the test dependency was overwritten via tox.ini
14 Nov 2021
#2880 : Removed URL requirement for pytest-virtualenv in setup.cfg . PyPI rejects packages with dependencies external to itself. Instead the test dependency was overwritten via tox.ini
Misc ---- * #2849: Add fallback for custom build_py commands inheriting directly from distutils, while still handling include_package_data=True for sd
#2849: Add fallback for custom build_py commands inheriting directly from distutils, while still handling include_package_data=True for sdist.
04 Nov 2021
#2849 : Add fallback for custom build_py commands inheriting directly from distutils , while still handling include_package_data=True for sdist .
Misc ---- * #2847: Suppress 'setup.py install' warning under bdist_wheel.
#2847: Suppress 'setup.py install' warning under bdist_wheel.
03 Nov 2021
#2847 : Suppress ‘setup.py install’ warning under bdist_wheel.
Misc ---- * #2846: Move PkgResourcesDeprecationWarning above implicitly-called function so that it's in the namespace when version warnings are genera
#2846: Move PkgResourcesDeprecationWarning above implicitly-called function so that it's in the namespace when version warnings are generated in an environment that contains them.
03 Nov 2021
#2846 : Move PkgResourcesDeprecationWarning above implicitly-called function so that it’s in the namespace when version warnings are generated in an environment that contains them.
Changes ------- * #1461: Fix inconsistency with include_package_data and packages_data in sdist by replacing the loop breaking mechanism between the s
#1461: Fix inconsistency with include_package_data and packages_data in sdist by replacing the loop breaking mechanism between the sdist and egg_info commands -- by abravalheri
03 Nov 2021
#1461 : Fix inconsistency with include_package_data and packages_data in sdist by replacing the loop breaking mechanism between the sdist and egg_info commands – by @abravalheri
.. _setup_install_deprecation_note:
#2497: Officially deprecated PEP 440 non-compliant versions.
#2832: Removed the deprecated data_files option from the example in the declarative configuration docs -- by abravalheri
#2832: Change type of data_files option from dict to section in declarative configuration docs (to match previous example) -- by abravalheri
31 Oct 2021
#2497 : Officially deprecated PEP 440 non-compliant versions.
#2832 : Removed the deprecated data_files option from the example in the declarative configuration docs – by @abravalheri
#2832 : Change type of data_files option from dict to section in declarative configuration docs (to match previous example) – by @abravalheri
Changes ------- * #917: setup.py install and easy_install commands are now officially deprecated. Use other standards-based installers (like pip) and
#917: setup.py install and easy_install commands are now officially deprecated. Use other standards-based installers (like pip) and builders (like build). Workloads reliant on this behavior should pin to this major version of Setuptools. See Why you shouldn't invoke setup.py directly for more background.
#1988: Deprecated the bdist_rpm command. Binary packages should be built as wheels instead. -- by hugovk
#2785: Replace configparser's readfp with read_file, deprecated since Python 3.2. -- by hugovk
#2823: Officially deprecated support for setup_requires. Users are encouraged instead to migrate to PEP 518 build-system.requires in pyproject.toml. Users reliant on setup_requires should consider pinning to this major version to avoid disruption.
#2762: Changed codecov.yml to configure the threshold to be lower -- by tanvimoharir
Changes ------- * #2757: Add windows arm64 launchers for scripts generated by easy_install. * #2800: Added --owner and --group options to the sdist co
#2757: Add windows arm64 launchers for scripts generated by easy_install.
#2800: Added --owner and --group options to the sdist command, for specifying file ownership within the produced tarball (similarly to the corresponding distutils sdist options).
#2792: Document how the legacy and non-legacy versions are compared, and reference to the PEP 440 scheme.
Changes ------- * #2796: Merge with pypa/distutils@02e9f65ab0
#2796: Merge with pypa/distutils@02e9f65ab0
Misc ---- * #2773: Retain case in setup.cfg during sdist.
#2773: Retain case in setup.cfg during sdist.
Misc ---- * #2777: Build does not fail fast when use_2to3 is supplied but set to a false value.
#2777: Build does not fail fast when use_2to3 is supplied but set to a false value.
07 Sep 2021
#2777 : Build does not fail fast when use_2to3 is supplied but set to a false value.
Misc ---- * #2769: Build now fails fast when use_2to3 is supplied.
#2769: Build now fails fast when use_2to3 is supplied.
06 Sep 2021
#2769 : Build now fails fast when use_2to3 is supplied.
Misc ---- * #2765: In Distribution.finalize_options, suppress known removed entry points to avoid issues with older Setuptools.
#2765: In Distribution.finalize_options, suppress known removed entry points to avoid issues with older Setuptools.
06 Sep 2021
#2765 : In Distribution.finalize_options, suppress known removed entry points to avoid issues with older Setuptools.
Breaking Changes ---------------- * #2086: Removed support for 2to3 during builds. Projects should port to a unified codebase or pin to an older versi
#2086: Removed support for 2to3 during builds. Projects should port to a unified codebase or pin to an older version of Setuptools using PEP 518 build-requires.
#2746: add python_requires example
Changes ------- * #2712: Added implicit globbing support for [options.data_files] values. Documentation changes --------------------- * #2737: fix var
#2712: Added implicit globbing support for [options.data_files] values.
#2737: fix various syntax and style errors in code snippets in docs
04 Sep 2021
#2712 : Added implicit globbing support for [options.data_files] values.
#2737 : fix various syntax and style errors in code snippets in docs
Changes ------- * #2722: Added support for SETUPTOOLS_EXT_SUFFIX environment variable to override the suffix normally detected from the sysconfig modu
#2722: Added support for SETUPTOOLS_EXT_SUFFIX environment variable to override the suffix normally detected from the sysconfig module.
18 Jul 2021
#2722 : Added support for SETUPTOOLS_EXT_SUFFIX environment variable to override the suffix normally detected from the sysconfig module.
Changes ------- * #2465: Documentation is now published using the Furo theme.
#2465: Documentation is now published using the Furo theme.
18 Jul 2021
#2465 : Documentation is now published using the Furo theme.
Changes ------- * #2724: Added detection of Windows ARM64 build environments using the VSCMD_ARG_TGT_ARCH environment variable.
#2724: Added detection of Windows ARM64 build environments using the VSCMD_ARG_TGT_ARCH environment variable.
14 Jul 2021
#2724 : Added detection of Windows ARM64 build environments using the VSCMD_ARG_TGT_ARCH environment variable.
Changes ------- * #2692: Globs are now sorted in 'license_files' restoring reproducibility by eliminating variance from disk order. * #2714: Update to
#2692: Globs are now sorted in 'license_files' restoring reproducibility by eliminating variance from disk order.
#2714: Update to distutils at pypa/distutils@e2627b7.
#2715: Removed reliance on deprecated ssl.match_hostname by removing the ssl support. Now any index operations rely on the native SSL implementation.
#2604: Revamped the backward/cross tool compatibility section to remove some confusion. Add some examples and the version since when entry_points are supported in declarative configuration. Tried to make the reading flow a bit leaner, gather some information that were a bit dispersed.
Breaking Changes ---------------- * #2645: License files excluded via the MANIFEST.in but matched by either the license_file (deprecated) or license_f
#2645: License files excluded via the MANIFEST.in but matched by either the license_file (deprecated) or license_files options, will be nevertheless included in the source distribution. - by cdce8p
#2628: Write long description in message payload of PKG-INFO file. - by cdce8p
#2645: Added License-File (multiple) to the output package metadata. The field will contain the path of a license file, matched by the license_file (deprecated) and license_files options, relative to .dist-info. - by cdce8p
#2678: Moved Setuptools' own entry points into declarative config.
#2680: Vendored more_itertools for Setuptools.
#2681: Setuptools own setup.py no longer declares setup_requires, but instead expects wheel to be installed as declared by pyproject.toml.
#2650: Updated the docs build tooling to support the latest version of Towncrier and show the previews of not-yet-released setuptools versions in the changelog -- webknjaz
Changes ------- * #2640: Fixed handling of multiline license strings. - by cdce8p * #2641: Setuptools will now always try to use the latest supported
#2640: Fixed handling of multiline license strings. - by cdce8p
#2641: Setuptools will now always try to use the latest supported metadata version for PKG-INFO. - by cdce8p
09 May 2021
#2640 : Fixed handling of multiline license strings. - by @cdce8p
#2641 : Setuptools will now always try to use the latest supported metadata version for PKG-INFO . - by @cdce8p
Changes ------- * #2653: Incorporated assorted changes from pypa/distutils. * #2657: Adopted docs from distutils. * #2663: Added Visual Studio Express
#2653: Incorporated assorted changes from pypa/distutils.
#2657: Adopted docs from distutils.
#2663: Added Visual Studio Express 2017 support -- by dofuuz
#2644: Fixed DeprecationWarning due to threading.Thread.setDaemon in tests -- by tirkarthi
#2654: Made the changelog generator compatible with Towncrier >= 19.9 -- webknjaz
#2664: Relax the deprecation message in the distutils hack.
04 May 2021
#2653 : Incorporated assorted changes from pypa/distutils.
#2657 : Adopted docs from distutils.
#2663 : Added Visual Studio Express 2017 support – by @dofuuz
#2644 : Fixed DeprecationWarning due to threading.Thread.setDaemon in tests – by @tirkarthi
#2654 : Made the changelog generator compatible with Towncrier >= 19.9 – @webknjaz
#2664 : Relax the deprecation message in the distutils hack.
Deprecations ------------ * #2620: The license_file option is now marked as deprecated. Use license_files instead. -- by cdce8p Breaking Changes -----
#2620: The license_file option is now marked as deprecated. Use license_files instead. -- by cdce8p
#2620: If neither license_file nor license_files is specified, the sdist option will now auto-include files that match the following patterns: LICEN[CS]E*, COPYING*, NOTICE*, AUTHORS*. This matches the behavior of bdist_wheel. -- by cdce8p
#2620: The license_file and license_files options now support glob patterns. -- by cdce8p
#2632: Implemented VendorImporter.find_spec() method to get rid of ImportWarning that Python 3.10 emits when only the old-style importer hooks are present -- by webknjaz
#2620: Added documentation for the license_files option. -- by cdce8p
08 Apr 2021
#2620 : The license_file option is now marked as deprecated. Use license_files instead. – by @cdce8p
#2620 : If neither license_file nor license_files is specified, the sdist option will now auto-include files that match the following patterns: LICEN[CS]E* , COPYING* , NOTICE* , AUTHORS* . This matches the behavior of bdist_wheel . – by @cdce8p
#2620 : The license_file and license_files options now support glob patterns. – by @cdce8p
#2632 : Implemented VendorImporter.find_spec() method to get rid of ImportWarning that Python 3.10 emits when only the old-style importer hooks are present – by @webknjaz
#2620 : Added documentation for the license_files option. – by @cdce8p
Changes ------- * #2608: Added informative error message to PEP 517 build failures owing to an empty setup.py -- by layday
#2608: Added informative error message to PEP 517 build failures owing to an empty setup.py -- by layday
22 Mar 2021
#2608 : Added informative error message to PEP 517 build failures owing to an empty setup.py – by @layday
No significant changes.
No significant changes.
Misc ---- * #2595: Reduced scope of dash deprecation warning to Setuptools/distutils only -- by melissa-kun-li
#2595: Reduced scope of dash deprecation warning to Setuptools/distutils only -- by melissa-kun-li
14 Mar 2021
#2595 : Reduced scope of dash deprecation warning to Setuptools/distutils only – by @melissa-kun-li
Documentation changes --------------------- * #2584: Added sphinx-inline-tabs extension to allow for comparison of setup.py and its equivalent setup.c
#2584: Added sphinx-inline-tabs extension to allow for comparison of setup.py and its equivalent setup.cfg -- by amy-lei
#2592: Made option keys in the [metadata] section of setup.cfg case-sensitive. Users having uppercase option spellings will get a warning suggesting to make them to lowercase -- by melissa-kun-li
Changes ------- * #1608: Removed the conversion of dashes to underscores in the extras_require and data_files of setup.cfg to support the usage of das
#1608: Removed the conversion of dashes to underscores in the extras_require and data_files of setup.cfg to support the usage of dashes. Method will warn users when they use a dash-separated key which in the future will only allow an underscore. Note: the method performs the dash to underscore conversion to preserve compatibility, but future versions will no longer support it -- by melissa-kun-li
Breaking Changes ---------------- * #2582: Simplified build-from-source story by providing bootstrapping metadata in a separate egg-info directory. Bu
#2582: Simplified build-from-source story by providing bootstrapping metadata in a separate egg-info directory. Build requirements no longer include setuptools itself. Sdist once again includes the pyproject.toml. Project can no longer be installed from source on pip 19.x, but install from source is still supported on pip < 19 and pip >= 20 and install from wheel is still supported with pip >= 9.
#1932: Handled AttributeError by raising DistutilsSetupError in dist.check_specifier() when specifier is not a string -- by melissa-kun-li
#2570: Correctly parse cmdclass in setup.cfg.
#2553: Added userguide example for markers in extras_require -- by pwoolvett
Changes ------- * #1937: Preserved case-sensitivity of keys in setup.cfg so that entry point names are case-sensitive. Changed sensitivity of configpa
#1937: Preserved case-sensitivity of keys in setup.cfg so that entry point names are case-sensitive. Changed sensitivity of configparser. NOTE: Any projects relying on case-insensitivity will need to adapt to accept the original case as published. -- by melissa-kun-li
#2573: Fixed error in uploading a Sphinx doc with the upload_docs command. An html builder will be used. Note: upload_docs is deprecated for PyPi, but is supported for other sites -- by melissa-kun-li
Breaking Changes ---------------- * #1527: Removed bootstrap script. Now Setuptools requires pip or another pep517-compliant builder such as 'build' t
#1527: Removed bootstrap script. Now Setuptools requires pip or another pep517-compliant builder such as 'build' to build. Now Setuptools can be installed from Github main branch.
Breaking Changes ---------------- * #2537: Remove fallback support for fetch_build_eggs using easy_install. Now pip is required for setup_requires to
#2537: Remove fallback support for fetch_build_eggs using easy_install. Now pip is required for setup_requires to succeed.
#2544: Removed 'easy_install' top-level model (runpy entry point) and 'easy_install' console script.
#2545: Removed support for eggsecutables.
#2459: Tests now run in parallel via pytest-xdist, completing in about half the time. Special thanks to webknjaz for hard work implementing test isolation. To run without parallelization, disable the plugin with tox -- -p no:xdist.
Misc ---- * #2539: Fix AttributeError in Description validation.
#2539: Fix AttributeError in Description validation.
17 Jan 2021
#2539 : Fix AttributeError in Description validation.
Misc ---- * #1390: Validation of Description field now is more lenient, emitting a warning and mangling the value to be valid (replacing newlines with
#1390: Validation of Description field now is more lenient, emitting a warning and mangling the value to be valid (replacing newlines with spaces).
17 Jan 2021
#1390 : Validation of Description field now is more lenient, emitting a warning and mangling the value to be valid (replacing newlines with spaces).
Misc ---- * #2536: Reverted tag deduplication handling.
#2536: Reverted tag deduplication handling.
Changes ------- * #1390: Newlines in metadata description/Summary now trigger a ValueError. * #2481: Define create_module() and exec_module() methods
#1390: Newlines in metadata description/Summary now trigger a ValueError.
#2481: Define create_module() and exec_module() methods in VendorImporter to get rid of ImportWarning -- by hroncok
#2489: pkg_resources behavior for zipimport now matches the regular behavior, and finds .egg-info (previously would only find .dist-info) -- by thatch
#2529: Fixed an issue where version tags may be added multiple times
16 Jan 2021
#1390 : Newlines in metadata description/Summary now trigger a ValueError.
#2481 : Define create_module() and exec_module() methods in VendorImporter to get rid of ImportWarning – by @hroncok
#2489 : pkg_resources behavior for zipimport now matches the regular behavior, and finds .egg-info (previously would only find .dist-info ) – by @thatch
#2529 : Fixed an issue where version tags may be added multiple times
Changes ------- * #2493: Use importlib.import_module() rather than the deprecated loader.load_module() in pkg_resources namespace declaration -- by en
#2493: Use importlib.import_module() rather than the deprecated loader.load_module() in pkg_resources namespace declaration -- by encukou
#2525: Fix typo in the document page about entry point. -- by jtr109
#2534: Avoid hitting network during test_easy_install.
16 Jan 2021
#2493 : Use importlib.import_module() rather than the deprecated loader.load_module() in pkg_resources namespace declaration – by @encukou
#2525 : Fix typo in the document page about entry point. – by @jtr109
#2534 : Avoid hitting network during test_easy_install.
Misc ---- * #2505: Disable inclusion of package data as it causes 'tests' to be included as data.
#2505: Disable inclusion of package data as it causes 'tests' to be included as data.
08 Jan 2021
#2505 : Disable inclusion of package data as it causes ‘tests’ to be included as data.
Misc ---- * #2534: Avoid hitting network during test_virtualenv.test_test_command.
#2534: Avoid hitting network during test_virtualenv.test_test_command.
28 Dec 2020
#2534 : Avoid hitting network during test_virtualenv.test_test_command.
Nothing published for this version
Changes ------- * #2486: Project adopts jaraco/skeleton for shared package maintenance. Misc ---- * #2477: Restore inclusion of rst files in sdist. *
#2486: Project adopts jaraco/skeleton for shared package maintenance.
#2477: Restore inclusion of rst files in sdist.
#2484: Setuptools has replaced the master branch with the main branch.
#2485: Fixed failing test when pip 20.3+ is present. -- by yan12125
#2487: Fix tests with pytest 6.2 -- by yan12125
Breaking Changes ---------------- * #2435: Require Python 3.6 or later. Documentation changes --------------------- * #2430: Fixed inconsistent RST ti
#2435: Require Python 3.6 or later.
#2430: Fixed inconsistent RST title nesting levels caused by #2399 -- by webknjaz
#2430: Fixed a typo in Sphinx docs that made docs dev section disappear as a result of PR #2426 -- by webknjaz
#2471: Removed the tests that guarantee that the vendored dependencies can be built by distutils.
06 Dec 2020
#2435 : Require Python 3.6 or later.
#2430 : Fixed inconsistent RST title nesting levels caused by #2399 – by @webknjaz
#2430 : Fixed a typo in Sphinx docs that made docs dev section disappear as a result of PR #2426 – by @webknjaz
#2471 : Removed the tests that guarantee that the vendored dependencies can be built by distutils.
Documentation changes --------------------- * #2394: Extended towncrier news template to include change note categories. This allows to see what types
#2394: Extended towncrier news template to include change note categories. This allows to see what types of changes a given version introduces -- by webknjaz
#2427: Started enforcing strict syntax and reference validation in the Sphinx docs -- by webknjaz
#2428: Removed redundant Sphinx Makefile support -- by webknjaz
#2401: Enabled test results reporting in AppVeyor CI -- by webknjaz
#2420: Replace Python 3.9.0 beta with 3.9.0 final on GitHub Actions.
#2421: Python 3.9 Trove classifier got added to the dist metadata -- by webknjaz
17 Oct 2020
#2394 : Extended towncrier news template to include change note categories. This allows to see what types of changes a given version introduces – by @webknjaz
#2427 : Started enforcing strict syntax and reference validation in the Sphinx docs – by @webknjaz
#2428 : Removed redundant Sphinx Makefile support – by @webknjaz
#2401 : Enabled test results reporting in AppVeyor CI – by @webknjaz
#2420 : Replace Python 3.9.0 beta with 3.9.0 final on GitHub Actions.
#2421 : Python 3.9 Trove classifier got added to the dist metadata – by @webknjaz
Documentation changes --------------------- * #2093: Finalized doc revamp. * #2097: doc: simplify index and group deprecated files * #2102: doc overha
#2093: Finalized doc revamp.
#2097: doc: simplify index and group deprecated files
#2102: doc overhaul step 2: break main doc into multiple sections
#2111: doc overhaul step 3: update userguide
#2395: Added a :user: role to Sphinx config -- by webknjaz
#2395: Added an illustrative explanation about the change notes to fragments dir -- by webknjaz
#2379: Travis CI test suite now tests against PPC64.
#2413: Suppress EOF errors (and other exceptions) when importing lib2to3.
Changes ------- * #2368: In distutils, restore support for monkeypatched CCompiler.spawn per pypa/distutils#15.
#2368: In distutils, restore support for monkeypatched CCompiler.spawn per pypa/distutils#15.
05 Sep 2020
#2368 : In distutils, restore support for monkeypatched CCompiler.spawn per pypa/distutils#15 .
Changes ------- * #2355: When pip is imported as part of a build, leave distutils patched. * #2380: There are some setuptools specific changes in the
#2355: When pip is imported as part of a build, leave distutils patched.
#2380: There are some setuptools specific changes in the setuptools.command.bdist_rpm module that are no longer needed, because they are part of the bdist_rpm module in distutils in Python 3.5.0. Therefore, code was removed from setuptools.command.bdist_rpm.
Changes ------- * #2350: Setuptools reverts using the included distutils by default. Platform maintainers and system integrators and others are *stron
#2350: Setuptools reverts using the included distutils by default. Platform maintainers and system integrators and others are strongly encouraged to set SETUPTOOLS_USE_DISTUTILS=local to help identify and work through the reported issues with distutils adoption, mainly to file issues and pull requests with pypa/distutils such that distutils performs as needed across every supported environment.
Misc ---- * #2363: Restore link_libpython support on Python 3.7 and earlier (see pypa/distutils#9).
#2363: Restore link_libpython support on Python 3.7 and earlier (see pypa/distutils#9).
01 Sep 2020
#2363 : Restore link_libpython support on Python 3.7 and earlier (see pypa/distutils#9 ).
Misc ---- * #2352: In distutils hack, use absolute import rather than relative to avoid bpo-30876.
#2352: In distutils hack, use absolute import rather than relative to avoid bpo-30876.
01 Sep 2020
#2352 : In distutils hack, use absolute import rather than relative to avoid bpo-30876 .
Misc ---- * #2357: Restored Python 3.5 support in distutils.util for missing subprocess._optim_args_from_interpreter_flags. * #2358: Restored AIX supp
#2357: Restored Python 3.5 support in distutils.util for missing subprocess._optim_args_from_interpreter_flags.
#2358: Restored AIX support on Python 3.8 and earlier.
#2361: Add Python 3.10 support to _distutils_hack. Get the 'Loader' abstract class from importlib.abc rather than importlib.util.abc (alias removed in Python 3.10).
Breaking Changes ---------------- * #2232: Once again, Setuptools overrides the stdlib distutils on import. For environments or invocations where this
#2232: Once again, Setuptools overrides the stdlib distutils on import. For environments or invocations where this behavior is undesirable, users are provided with a temporary escape hatch. If the environment variable SETUPTOOLS_USE_DISTUTILS is set to stdlib, Setuptools will fall back to the legacy behavior. Use of this escape hatch is discouraged, but it is provided to ease the transition while proper fixes for edge cases can be addressed.
#2334: In MSVC module, refine text in error message.
Changes ------- * #2129: In pkg_resources, no longer detect any pathname ending in .egg as a Python egg. Now the path must be an unpacked egg or a zip
#2129: In pkg_resources, no longer detect any pathname ending in .egg as a Python egg. Now the path must be an unpacked egg or a zip file.
Changes ------- * #2306: When running as a PEP 517 backend, setuptools does not try to install setup_requires itself. They are reported as build requi
#2306: When running as a PEP 517 backend, setuptools does not try to install setup_requires itself. They are reported as build requirements for the frontend to install.
Changes ------- * #2310: Updated vendored packaging version to 20.4.
#2310: Updated vendored packaging version to 20.4.
13 Aug 2020
#2310 : Updated vendored packaging version to 20.4.
Documentation changes --------------------- * #2300: Improve the safe_version function documentation Misc ---- * #2297: Once again, in stubs prefer ex
#2300: Improve the safe_version function documentation
#2297: Once again, in stubs prefer exec_module to the deprecated load_module.
12 Aug 2020
#2300 : Improve the safe_version function documentation
#2297 : Once again, in stubs prefer exec_module to the deprecated load_module.
Changes ------- * #2316: Removed warning when distutils is imported before setuptools when distutils replacement is not enabled.
#2316: Removed warning when distutils is imported before setuptools when distutils replacement is not enabled.
10 Aug 2020
#2316 : Removed warning when distutils is imported before setuptools when distutils replacement is not enabled.
Your coding agent can read these notes before it upgrades. Set up the MCP server →