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
Restored package data that went missing in 71.0. This change also incidentally causes tests to be installed once again.
Restored package data that went missing in 71.0. This change also incidentally causes tests to be installed once again. (#4475)
17 Jul 2024
Restored package data that went missing in 71.0. This change also incidentally causes tests to be installed once again. ( #4475 )
Now setuptools declares its own dependencies in the core extra. Dependencies are still vendored for bootstrapping purposes, but setuptools will prefer
Now setuptools declares its own dependencies in the core extra. Dependencies are still vendored for bootstrapping purposes, but setuptools will prefer installed dependencies if present. The core extra is used for informational purposes and should not be declared in package metadata (e.g. build-requires). Downstream packagers can de-vendor by simply removing the setuptools/_vendor directory. Since Setuptools now prefers installed dependencies, those installing to an environment with old, incompatible dependencies will not work. In that case, either uninstall the incompatible dependencies or upgrade them to satisfy those declared in core. (#2825)
One column per quarter.
Support for loading distutils from the standard library is now deprecated, including use of SETUPTOOLS_USE_DISTUTILS=stdlib and importing distutils be…
Support for loading distutils from the standard library is now deprecated, including use of SETUPTOOLS_USE_DISTUTILS=stdlib and importing distutils before importing setuptools. (#4137)
Bugfix for building Cython extension on Windows (pypa/distutils#268).
Updated distutils including significant changes to support Cygwin and mingw compilers.
Updated distutils including significant changes to support Cygwin and mingw compilers. (#4444)
Fix distribution name normalisation (625) for valid versions that are not canonical (e.g. 1.0-2). (#4434)
01 Jul 2024
Updated distutils including significant changes to support Cygwin and mingw compilers. ( #4444 )
Fix distribution name normalisation ( PEP 625 ) for valid versions that are not canonical (e.g. 1.0-2 ). ( #4434 )
Misc ---- - #4429
Adopted the bdist_wheel command from the wheel project -- by agronholm
Adopted the bdist_wheel command from the wheel project -- by agronholm (#1386)
Improve error message when pkg_resources.ZipProvider tries to extract resources with a missing Egg -- by Avasam
Added variables and parameter type annotations to pkg_resources to be nearly on par with typeshed.* -- by Avasam * Excluding TypeVar and overload. Return types are currently inferred. (#4246)
Migrated Setuptools' own config to pyproject.toml (#4310)
Prevent a TypeError: 'NoneType' object is not callable when shutil_rmtree is called without an onexc parameter on Python<=3.11 -- by Avasam (#4382)
Replace use of mktemp with can_symlink from the stdlib test suite. (#4403)
Improvement for attr: directives in configuration to handle more edge cases related to complex package_dir. (#4405)
Fix accidental implicit string concatenation. (#4411)
#4365, #4422
…disruptions, some edge cases might be subject to backwards incompatibility.
Emit a warning when [tools.setuptools] is present in pyproject.toml and will be ignored. -- by SnoopJ (#4150)
Improved AttributeError error message if pkg_resources.EntryPoint.require is called without extras or distribution Gracefully "do nothing" when trying to activate a pkg_resources.Distribution with a None location, rather than raising a TypeError -- by Avasam (#4262)
Typed the dynamically defined variables from pkg_resources -- by Avasam (#4267)
Modernized and refactored VCS handling in package_index. (#4332)
In install command, use super to call the superclass methods. Avoids race conditions when monkeypatching from _distutils_system_mod occurs late. (#4136)
Fix finder template for lenient editable installs of implicit nested namespaces constructed by using package_dir to reorganise directory structure. (#4278)
Fix an error with UnicodeDecodeError handling in pkg_resources when trying to read files in UTF-8 with a fallback -- by Avasam (#4348)
Uses RST substitution to put badges in 1 line. (#4312)
Further adoption of UTF-8 in setuptools. This change regards mostly files produced and consumed during the build process (e.g. metadata files, script wrappers, automatically updated config files, etc..) Although precautions were taken to minimize disruptions, some edge cases might be subject to backwards incompatibility.
Support for "locale" encoding is now deprecated. (#4309)
Remove setuptools.convert_path after long deprecation period. This function was never defined by setuptools itself, but rather a side-effect of an import for internal usage. (#4322)
Remove fallback for customisations of distutils' build.sub_command after long deprecated period. Users are advised to import build directly from setuptools.command.build. (#4322)
Removed typing_extensions from vendored dependencies -- by Avasam (#4324)
Remove deprecated setuptools.dep_util. The provided alternative is setuptools.modified. (#4360)
#4255, #4280, #4282, #4308, #4348
No significant changes.
No significant changes.
Refresh unpinned vendored dependencies.
Refresh unpinned vendored dependencies. (#4253)
Updated vendored packaging to version 24.0. (#4301)
13 Apr 2024
Refresh unpinned vendored dependencies. ( #4253 )
Updated vendored packaging to version 24.0. ( #4301 )
Merged bugfix for pypa/distutils#246.
Merged bugfix for pypa/distutils#246.
No significant changes.
No significant changes.
Merged with pypa/distutils@55982565e, including interoperability improvements for rfc822_escape (pypa/distutils#213), dynamic resolution of config_h_f
Merged with pypa/distutils@55982565e, including interoperability improvements for rfc822_escape (pypa/distutils#213), dynamic resolution of config_h_filename for Python 3.13 compatibility (pypa/distutils#219), added support for the z/OS compiler (pypa/distutils#216), modernized compiler options in unixcompiler (pypa/distutils#214), fixed accumulating flags bug after compile/link (pypa/distutils#207), fixed enconding warnings (pypa/distutils#236), and general quality improvements (pypa/distutils#234). (#4298)
Remove attempt to canonicalize the version. It's already canonical enough.
Remove attempt to canonicalize the version. It's already canonical enough. (#4302)
13 Apr 2024
Remove attempt to canonicalize the version. It’s already canonical enough. ( #4302 )
Support PEP 625 by canonicalizing package name and version in filenames per the spec _. Projects whose names contain uppercase characters, dashes, or
Support PEP 625 by canonicalizing package name and version in filenames per the spec. Projects whose names contain uppercase characters, dashes, or periods will now see their sdist names normalized to match the standard and the format previously seen in wheels. For example:
zope.interface -> zope_interface
CherryPy -> cherrypy
foo-bar_baz -> foo_bar_baz
Projects are encouraged to adopt this change to align with standards and other backend build systems. (#3593)
Explicitly use encoding="locale" for .pth files whenever possible, to reduce EncodingWarnings. This avoid errors with UTF-8 (see discussion in python/
Explicitly use encoding="locale" for .pth files whenever possible, to reduce EncodingWarnings. This avoid errors with UTF-8 (see discussion in python/cpython#77102). (#4265)
Clarify some pkg_resources methods return bytes, not str. Also return an empty bytes in EmptyProvider._get -- by Avasam (#4243)
Return an empty list by default in pkg_resources.ResourceManager.cleanup_resources -- by Avasam (#4244)
Made pkg_resoursces.NullProvider's has_metadata and metadata_isdir methods return actual booleans like all other Providers. -- by Avasam (#4254)
#4237, #4238, #4241, #4260, #4261, #4263
13 Mar 2024
Explicitly use encoding="locale" for .pth files whenever possible, to reduce EncodingWarnings . This avoid errors with UTF-8 (see discussion in python/cpython#77102 ). ( #4265 )
Clarify some pkg_resources methods return bytes , not str . Also return an empty bytes in EmptyProvider._get – by @Avasam ( #4243 )
Return an empty list by default in pkg_resources.ResourceManager.cleanup_resources – by @Avasam ( #4244 )
Made pkg_resoursces.NullProvider ’s has_metadata and metadata_isdir methods return actual booleans like all other Providers. – by @Avasam ( #4254 )
#4237 , #4238 , #4241 , #4260 , #4261 , #4263
Fix argument order of --config-settings["--build-option"] arguments. This was broken by `.
Fix argument order of --config-settings["--build-option"] arguments. This was broken by <https://github.com/pypa/setuptools/pull/4079>`. (#4217)
#4231
23 Feb 2024
Fix argument order of --config-settings["--build-option"] arguments. This was broken by < https://github.com/pypa/setuptools/pull/4079 >`. ( #4217 )
#4231
Updated and removed obsolete Python < 3.8 code and comments. -- by Avasam
Updated and removed obsolete Python < 3.8 code and comments. -- by Avasam (#4096)
Updated pkg_resources to use stdlib importlib.machinery instead of importlib_machinery -- by Avasam (#4097)
In tests, rely on pytest-home for reusable fixture. (#4072)
Explicitly marked as Protocol and fixed missing self argument in interfaces pkg_resources.IMetadataProvider and pkg_resources.IResourceProvider -- by Avasam (#4144)
Restored expectation that egg-link files would be named with dash separators for compatibility with pip prior to version 24. (#4167)
Updated documentation referencing obsolete Python 3.7 code. -- by Avasam (#4096)
Changed versionadded for "Type information included by default" feature from v68.3.0 to v69.0.0 -- by Avasam (#4182)
Described the auto-generated files -- by VladimirFokow (#4198)
Updated "Quickstart" to describe the current status of setup.cfg and pyproject.toml -- by VladimirFokow (#4200)
11 Feb 2024
Updated and removed obsolete Python < 3.8 code and comments. – by @Avasam ( #4096 )
Updated pkg_resources to use stdlib importlib.machinery instead of importlib_machinery – by @Avasam ( #4097 )
In tests, rely on pytest-home for reusable fixture. ( #4072 )
Explicitly marked as Protocol and fixed missing self argument in interfaces pkg_resources.IMetadataProvider and pkg_resources.IResourceProvider – by @Avasam ( #4144 )
Restored expectation that egg-link files would be named with dash separators for compatibility with pip prior to version 24. ( #4167 )
Updated documentation referencing obsolete Python 3.7 code. – by @Avasam ( #4096 )
Changed versionadded for “Type information included by default” feature from v68.3.0 to v69.0.0 – by @Avasam ( #4182 )
Described the auto-generated files – by @VladimirFokow ( #4198 )
Updated “Quickstart” to describe the current status of setup.cfg and pyproject.toml – by @VladimirFokow ( #4200 )
Retain valid names with underscores in egg_info.
Retain valid names with underscores in egg_info.
Added missing estimated date for removing setuptools.dep_util (deprecated in v69.0.0).
Added missing estimated date for removing setuptools.dep_util (deprecated in v69.0.0). (#4131)
21 Nov 2023
Added missing estimated date for removing setuptools.dep_util (deprecated in v69.0.0). ( #4131 )
Fixed imports of setuptools.dep_util.newer_group. A deprecation warning is issued instead of a hard failure.
Fixed imports of setuptools.dep_util.newer_group. A deprecation warning is issued instead of a hard failure. (#4126)
21 Nov 2023
Fixed imports of setuptools.dep_util.newer_group . A deprecation warning is issued instead of a hard failure. ( #4126 )
Removed deprecated egg_base option from dist_info. Note that the dist_info command is considered internal to the way setuptools build backend works an…
Include type information (py.typed, *.pyi) by default (#3136) -- by Danie-1, EXPERIMENTAL. (#3136)
Exported distutils.dep_util and setuptools.dep_util through setuptools.modified -- by Avasam (#4069)
Merged with pypa/distutils@7a04cbda0fc714.
Replaced hardcoded numeric values with dis.opmap, fixing problem with 3.13.0a1. (#4094)
Configuring project version and egg_info.tag_* in such a way that results in invalid version strings (according to 440) is no longer permitted. (#4066)
Removed deprecated egg_base option from dist_info. Note that the dist_info command is considered internal to the way setuptools build backend works and not intended for public usage. (#4066)
The parsing of the deprecated metadata.license_file and metadata.requires fields in setup.cfg is no longer supported. Users are expected to move to metadata.license_files and options.install_requires (respectively). (#4066)
Passing config_settings to setuptools.build_meta with deprecated values for --global-option is no longer allowed. (#4066)
Removed deprecated namespace-packages from pyproject.toml. Users are asked to use implicit namespace packages (as defined in 420). (#4066)
Added strict enforcement for project.dynamic in pyproject.toml. This removes the transitional ability of users configuring certain parameters via setup.py without making the necessary changes to pyproject.toml (as mandated by 621). (#4066)
Removed handling of --config-settings["--build-option"] in setuptools.build_meta from build-backend API hooks other than build_wheel. This was motivate by errors caused when passing this option. (#4079)
Improve backwards compatibility with deprecated CLI practices.
Improve backwards compatibility with deprecated CLI practices. (#4048)
12 Sep 2023
Improve backwards compatibility with deprecated CLI practices. ( #4048 )
Avoid using caching attributes in Distribution.metadata for requirements. This is done for backwards compatibility with customizations that attempt to
Avoid using caching attributes in Distribution.metadata for requirements. This is done for backwards compatibility with customizations that attempt to modify install_requires or extras_require at a late point (still not recommended). (#4043)
#4045
Rework how setuptools internally handles dependencies/install_requires and optional-dependencies/extras_require.
Rework how setuptools internally handles dependencies/install_requires and optional-dependencies/extras_require. (#3903)
Improve the generated PKG-INFO files, by adding Requires-Dist fields. Previously, these fields would be omitted in favour of a non-standard *.egg-info/requires.txt file (which is still generated for the time being). (#3904)
Improve atomicity when writing PKG-INFO files to avoid race conditions with importlib.metadata. (#3904)
Fix the name given to the *-nspkg.pth files in editable installs, ensuring they are unique per distribution. (#4041)
Workaround some limitations on pkg_resources-style legacy namespaces in the meta path finder for editable installations. (#4041)
#4023, #4027, #4027
Misc ---- - #4022, #4022
Promote pyproject.toml's [tool.setuptools] out of beta. Note that some fields are still considered deprecated and/or obsolete, and these might be remo…
Removed code referencing bdist_wininst in install_scripts. (#3525)
Promote pyproject.toml's [tool.setuptools] out of beta. Note that some fields are still considered deprecated and/or obsolete, and these might be removed in future versions (i.e., there is no guarantee for long term support and backward compatibility on those fields). (#3962)
Automatically add files listed in Extension.depends to sdists, as long as they are contained in the project directory -- by RuRo (#4000)
Require Python 3.8 or later.
Made imports in editable installs case-sensitive on case-insensitive filesystems -- by aganders3 (#3995)
Use default encoding to create .pth files with editable_wheel. (#4009)
Detects (and complain about) scripts and gui-scripts set via setup.py when pyproject.toml does not include them in dynamic. (#4012)
#3833, #3960, #4001, #4007
Breaking Changes ---------------- * #3948: Removed verification for existing depends.txt file (deprecated since v0.5a4). * #3948: Remove autofixing of
#3948: Removed verification for existing depends.txt file (deprecated since v0.5a4).
#3948: Remove autofixing of broken .egg-info directories containing the - character in their base name (without suffix). They should no longer be produced by sufficiently new versions of setuptools (warning introduced in 2005).
#3948: Remove deprecated APIs in easy_install: get_script_args, get_script_header and get_writer. The direct usage of easy_install has been deprecated since v58.3.0, and the warnings regarding these APIs predate that version.
#3948: Removed egg_info.get_pkg_info_revision (deprecated since 2015).
#3948: Removed setuptools.dist._get_unpatched (deprecated since 2016)
#3948: Removed support for SVN in setuptools.package_index (deprecated since 2018).
#3948: Removed support for invalid pyproject.toml files. During the implementation of PEP 621, it was identified that some users were producing invalid files. As a transitional measure, the validation was relaxed for a few use cases. The grace period, however, came to an end.
#3760: Added symlink support to launcher for installed executables -- by eugene-sevostianov-sc
#3926: Updated vendored packaging version from 23.0 to 23.1 -- by MetRonnie
#3950: Implemented workaround for old versions of vswhere, which miss the -requiresAny parameter, such as the ones distributed together with Visual Studio 2017 < 15.6.
#3952: Changed DistutilsMetaFinder to skip spec_for_pip on Python >= 3.12.
#3952: Removed _distutils_hack.remove_shim on Python >= 3.12 (since distutils was removed from the standard library, DistutilsMetaFinder cannot be disabled on Python >= 3.12).
#3920: Add a link to deprecation warning in pkg_resources and improve stacklevel for better visibility.
Changes ------- * #3128: In deprecated easy_install, reload and merge the pth file before saving. Misc ---- * #3915: Adequate tests to the latest chan
#3128: In deprecated easy_install, reload and merge the pth file before saving.
#3915: Adequate tests to the latest changes in virtualenv for Python 3.12.
19 May 2023
#3128 : In deprecated easy_install, reload and merge the pth file before saving.
#3915 : Adequate tests to the latest changes in virtualenv for Python 3.12.
Misc ---- * #3902: Fixed wrong URLs used in warnings and logs.
#3902: Fixed wrong URLs used in warnings and logs.
Misc ---- * #3898: Fixes setuptools.dist:invalid_unless_false when value is false don't raise error -- by jammarher
#3898: Fixes setuptools.dist:invalid_unless_false when value is false don't raise error -- by jammarher
21 Apr 2023
#3898 : Fixes setuptools.dist:invalid_unless_false when value is false don’t raise error – by @jammarher
Changes ------- * #3849: Overhaul warning system for better visibility. Documentation changes --------------------- * #3859: Added a note about histor
#3849: Overhaul warning system for better visibility.
#3859: Added a note about historical presence of wheel in build-system.requires, in pyproject.toml.
#3893: Improved the documentation example regarding making a thin 517 in-tree backend wrapper of setuptools.build_meta that is future-proof and supports 660 hook too -- by webknjaz.
#3884: Add a stacklevel parameter to warnings.warn() to provide more information to the user. -- by cclauss
20 Apr 2023
#3849 : Overhaul warning system for better visibility.
#3859 : Added a note about historical presence of wheel in build-system.requires , in pyproject.toml .
#3893 : Improved the documentation example regarding making a thin PEP 517 in-tree backend wrapper of setuptools.build_meta that is future-proof and supports PEP 660 hook too – by @webknjaz .
#3884 : Add a stacklevel parameter to warnings.warn() to provide more information to the user. – by @cclauss
Misc ---- * #3865: Fixed _WouldIgnoreField warnings for scripts and gui_scripts, when entry-points is not listed in dynamic. * #3875: Update code gene
#3865: Fixed _WouldIgnoreField warnings for scripts and gui_scripts, when entry-points is not listed in dynamic.
#3875: Update code generated by validate-pyproject to use v0.12.2. This should fix default license patterns when pyproject.toml is used.
Changes ------- * #3804: Added caching for supported wheel tags. * #3846: Added pruning heuristics to PackageFinder based on exclude.
#3804: Added caching for supported wheel tags.
#3846: Added pruning heuristics to PackageFinder based on exclude.
08 Mar 2023
#3804 : Added caching for supported wheel tags.
#3846 : Added pruning heuristics to PackageFinder based on exclude .
Previously, the htmlcov name was ignored when searching for single-file modules, however the correct behaviour is to ignore it when searching for pack
#3836: Fixed interaction between setuptools' package auto-discovery and auto-generated htmlcov files.
Previously, the htmlcov name was ignored when searching for single-file modules, however the correct behaviour is to ignore it when searching for packages (since it is supposed to be a directory, see coverage config) -- by yukihiko-shinoda.
#3838: Improved error messages for pyproject.toml validations.
#3839: Fixed pkg_resources errors caused when parsing metadata of packages that are already installed but do not conform with PEP 440.
Changes ------- * #3843: Although pkg_resources has been discouraged for use, some projects still consider pkg_resources viable for usage. This change
#3843: Although pkg_resources has been discouraged for use, some projects still consider pkg_resources viable for usage. This change makes it clear that pkg_resources should not be used, emitting a DeprecationWarning when imported.
Changes ------- * #3832: Update vendored importlib-metadata (to 6.0.0) and importlib-resources (to 5.10.2)
#3832: Update vendored importlib-metadata (to 6.0.0) and importlib-resources (to 5.10.2)
21 Feb 2023
#3832 : Update vendored importlib-metadata (to 6.0.0) and importlib-resources (to 5.10.2)
Misc ---- * #3820: Restore quoted #include argument to has_function.
#3820: Restore quoted #include argument to has_function.
20 Feb 2023
#3820 : Restore quoted #include argument to has_function .
Misc ---- * #3827: Improve deprecation warning message on pkg_resources.declare_namespace to display package name.
#3827: Improve deprecation warning message on pkg_resources.declare_namespace to display package name.
15 Feb 2023
#3827 : Improve deprecation warning message on pkg_resources.declare_namespace to display package name.
Misc ---- * #3823: Fixes egg_info code path triggered during integration with pip.
#3823: Fixes egg_info code path triggered during integration with pip.
14 Feb 2023
#3823 : Fixes egg_info code path triggered during integration with pip .
Changes ------- * #3809: Merge with distutils@8c3c3d29, including fix for sysconfig.get_python_inc() (pypa/distutils#178), fix for segfault on MinGW (
#3809: Merge with distutils@8c3c3d29, including fix for sysconfig.get_python_inc() (pypa/distutils#178), fix for segfault on MinGW (pypa/distutils#196), and better has_function support (pypa/distutils#195, #3648).
06 Feb 2023
#3809 : Merge with distutils @ 8c3c3d29 , including fix for sysconfig.get_python_inc() ( pypa/distutils#178 ), fix for segfault on MinGW ( pypa/distutils#196 ), and better has_function support ( pypa/distutils#195 , #3648 ).
Changes ------- * #3795: Ensured that __file__ is an absolute path when executing setup.py as part of setuptools.build_meta. Misc ---- * #3798: Update
#3795: Ensured that __file__ is an absolute path when executing setup.py as part of setuptools.build_meta.
#3798: Updated validations for pyproject.toml using validate-pyproject==0.12.1 to allow stub packages (561) to be listed in tool.setuptools.packages and tool.setuptools.package-dir.
01 Feb 2023
#3795 : Ensured that file is an absolute path when executing setup.py as part of setuptools.build_meta .
#3798 : Updated validations for pyproject.toml using validate-pyproject==0.12.1 to allow stub packages ( PEP 561 ) to be listed in tool.setuptools.packages and tool.setuptools.package-dir .
Breaking Changes ---------------- * #3741: Removed patching of distutils._msvccompiler.gen_lib_options for compatibility with Numpy < 1.11.2 -- by mgo
#3741: Removed patching of distutils._msvccompiler.gen_lib_options for compatibility with Numpy < 1.11.2 -- by mgorny
#3790: Bump vendored version of packaging to 23.0 (pyparsing is no longer required and was removed). As a consequence, users will experience a more strict parsing of requirements. Specifications that don't comply with 440 and 508 will result in build errors.
28 Jan 2023
#3741 : Removed patching of distutils._msvccompiler.gen_lib_options for compatibility with Numpy < 1.11.2 – by @mgorny
#3790 : Bump vendored version of packaging to 23.0 ( pyparsing is no longer required and was removed). As a consequence, users will experience a more strict parsing of requirements. Specifications that don’t comply with PEP 440 and PEP 508 will result in build errors.
Misc ---- * #3782: Fixed problem with file directive in tool.setuptools.dynamic (pyproject.toml) when value is a simple string instead of list.
#3782: Fixed problem with file directive in tool.setuptools.dynamic (pyproject.toml) when value is a simple string instead of list.
20 Jan 2023
#3782 : Fixed problem with file directive in tool.setuptools.dynamic ( pyproject.toml ) when value is a simple string instead of list.
Changes ------- * #3685: Fix improper usage of deprecated/removed pkgutil APIs in Python 3.12+. * #3779: Files referenced by file: in setup.cfg and by
#3685: Fix improper usage of deprecated/removed pkgutil APIs in Python 3.12+.
#3779: Files referenced by file: in setup.cfg and by project.readme.file, project.license.file or tool.setuptools.dynamic.*.file in pyproject.toml are now automatically included in the generated sdists.
#3776: Added note about using the --pep-517 flag with pip to workaround InvalidVersion errors for packages that are already installed in the system.
Breaking Changes ---------------- * #2497: Support for PEP 440 non-conforming versions has been removed. Environments containing packages with non-con
#2497: Support for PEP 440 non-conforming versions has been removed. Environments containing packages with non-conforming versions may fail or the packages may not be recognized.
#3769: Replace 'appdirs' with 'platformdirs'.
Changes ------- * #3594: Added htmlcov to FlatLayoutModuleFinder.DEFAULT_EXCLUDE -- by demianbrecht * #3667: Added a human-readable error description
#3594: Added htmlcov to FlatLayoutModuleFinder.DEFAULT_EXCLUDE -- by demianbrecht
#3667: Added a human-readable error description when .egg-info directory is not writeable -- by droodev
#3713: Fixed incomplete getattr statement that caused problems when accessing undefined attribute.
11 Jan 2023
#3594 : Added htmlcov to FlatLayoutModuleFinder.DEFAULT_EXCLUDE – by @demianbrecht
#3667 : Added a human-readable error description when .egg-info directory is not writeable – by @droodev
#3713 : Fixed incomplete getattr statement that caused problems when accessing undefined attribute.
Misc ---- * #3709: Fix condition to patch distutils.dist.log to only apply when using distutils from the stdlib.
#3709: Fix condition to patch distutils.dist.log to only apply when using distutils from the stdlib.
23 Nov 2022
#3709 : Fix condition to patch distutils.dist.log to only apply when using distutils from the stdlib.
No significant changes.
No significant changes.
Documentation changes --------------------- * #3689: Documented that distutils.cfg might be ignored unless SETUPTOOLS_USE_DISTUTILS=stdlib. Misc ----
#3689: Documented that distutils.cfg might be ignored unless SETUPTOOLS_USE_DISTUTILS=stdlib.
#3678: Improve clib builds reproducibility by sorting sources -- by danigm
#3684: Improved exception/traceback when invalid entry-points are specified.
#3690: Fixed logging errors: 'underlying buffer has been detached' (issue #1631).
#3693: Merge pypa/distutils@3e9d47e with compatibility fix for distutils.log.Log.
#3695, #3697, #3698, #3699: Changed minor text details (spelling, spaces ...)
#3696: Removed unnecessary coding: utf-8 annotations
#3704: Fixed temporary build directories interference with auto-discovery.
Changes ------- * #3674: Sync with pypa/distutils@e0787fa, including pypa/distutils#183 updating distutils to use the Python logging framework.
#3674: Sync with pypa/distutils@e0787fa, including pypa/distutils#183 updating distutils to use the Python logging framework.
18 Nov 2022
#3674 : Sync with pypa/distutils@e0787fa , including pypa/distutils#183 updating distutils to use the Python logging framework.
Misc ---- * #3638: Drop a test dependency on the mock package, always use :external+pythonmod:unittest.mock -- by hroncok * #3659: Fixed REDoS vector
#3638: Drop a test dependency on the mock package, always use unittest.mock -- by hroncok
#3659: Fixed REDoS vector in package_index -- by SCH227
04 Nov 2022
#3638 : Drop a test dependency on the mock package, always use unittest.mock – by @hroncok
#3659 : Fixed REDoS vector in package_index – by @SCH227
Changes ------- * #3624: Fixed editable install for multi-module/no-package src-layout projects. * #3626: Minor refactorings to support distutils usin
#3624: Fixed editable install for multi-module/no-package src-layout projects.
#3626: Minor refactorings to support distutils using stdlib logging module.
#3419: Updated the example version numbers to be compliant with PEP-440 on the "Specifying Your Project’s Version" page of the user guide.
#3569: Improved information about conflicting entries in the current working directory and editable install (in documentation and as an informational warning).
#3576: Updated version of validate_pyproject.
Misc ---- * #3613: Fixed encoding errors in expand.StaticModule when system default encoding doesn't match expectations for source files. * #3617: Mer
#3613: Fixed encoding errors in expand.StaticModule when system default encoding doesn't match expectations for source files.
#3617: Merge with pypa/distutils@6852b20 including fix for pypa/distutils#181.
Changes ------- * #3609: Merge with pypa/distutils@d82d926 including support for DIST_EXTRA_CONFIG in pypa/distutils#177.
#3609: Merge with pypa/distutils@d82d926 including support for DIST_EXTRA_CONFIG in pypa/distutils#177.
24 Sep 2022
#3609 : Merge with pypa/distutils@d82d926 including support for DIST_EXTRA_CONFIG in pypa/distutils#177 .
Changes ------- * #3547: Stop ConfigDiscovery.analyse_name from splatting the Distribution.name attribute -- by jeamland Documentation changes -------
#3547: Stop ConfigDiscovery.analyse_name from splatting the Distribution.name attribute -- by jeamland
#3554: Changed requires to requests in the pyproject.toml example in the Dependency management section of the Quickstart guide -- by mfbutner
#3561: Fixed accidental name matching in editable hooks.
24 Aug 2022
#3547 : Stop ConfigDiscovery.analyse_name from splatting the Distribution.name attribute – by @jeamland
#3554 : Changed requires to requests in the pyproject.toml example in the Dependency management section of the Quickstart guide – by @mfbutner
#3561 : Fixed accidental name matching in editable hooks.
Changes ------- * #3553: Sync with pypa/distutils@22b9bcf, including fixed cross-compiling support and removing deprecation warning per pypa/distutils
#3553: Sync with pypa/distutils@22b9bcf, including fixed cross-compiling support and removing deprecation warning per pypa/distutils#169.
21 Aug 2022
#3553 : Sync with pypa/distutils@22b9bcf , including fixed cross-compiling support and removing deprecation warning per pypa/distutils#169 .
Misc ---- * #3551: Avoided circular imports in meta path finder for editable installs when a missing module has the same name as its parent.
#3551: Avoided circular imports in meta path finder for editable installs when a missing module has the same name as its parent.
21 Aug 2022
#3551 : Avoided circular imports in meta path finder for editable installs when a missing module has the same name as its parent.
Changes ------- * #3536: Remove monkeypatching of msvc9compiler. Documentation changes --------------------- * #3538: Corrected documentation on how t
#3536: Remove monkeypatching of msvc9compiler.
#3538: Corrected documentation on how to use the legacy-editable mode.
18 Aug 2022
#3536 : Remove monkeypatching of msvc9compiler.
#3538 : Corrected documentation on how to use the legacy-editable mode.
Misc ---- * #3505: Restored distutils msvccompiler and msvc9compiler modules and marked as deprecated (pypa/distutils@c802880).
#3505: Restored distutils msvccompiler and msvc9compiler modules and marked as deprecated (pypa/distutils@c802880).
16 Aug 2022
#3505 : Restored distutils msvccompiler and msvc9compiler modules and marked as deprecated ( pypa/distutils@c802880 ).
Documentation changes --------------------- * #3529: Added clarification to /userguide/quickstart about support to setup.py. Misc ---- * #3526: Fixed
#3529: Added clarification to /userguide/quickstart about support to setup.py.
#3526: Fixed backward compatibility of editable installs and custom build_ext commands inheriting directly from distutils.
#3528: Fixed buid_meta.prepare_metadata_for_build_wheel when given metadata_directory is ".".
15 Aug 2022
#3529 : Added clarification to Quickstart about support to setup.py .
#3526 : Fixed backward compatibility of editable installs and custom build_ext commands inheriting directly from distutils .
#3528 : Fixed buid_meta.prepare_metadata_for_build_wheel when given metadata_directory is "." .
Your coding agent can read these notes before it upgrades. Set up the MCP server →