Opened 3 weeks ago
Closed 2 weeks ago
#5994 closed enhancement (fixed)
setuptools-84.0.0 (Python module)
| Reported by: | Bruce Dubbs | Owned by: | lfs-book |
|---|---|---|---|
| Priority: | normal | Milestone: | 13.1 |
| Component: | Book | Version: | git |
| Severity: | normal | Keywords: | |
| Cc: |
Description
New major version.
Change History (2)
comment:1 by , 2 weeks ago
comment:2 by , 2 weeks ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
Fixed at commit 88e6ea998d.
Update to iana-etc-20260805.
Update to libffi-3.8.0.
Update to linux-7.1.8.
Update to meson-1.12.0.
Update to procps-ng-4.0.7.
Update to setuptools-84.0.0 (Python module).
Update to shadow-4.20.2.
Update to vim-9.2.0954.
Update to wheel-0.48.0 (Python module).
Note:
See TracTickets
for help on using tickets.

v84.0.0
Features
keywordsandplatforms, which are invalid and corrupt the generated metadata, are now handled forgivingly: each line is treated as a separate item and a deprecation warning is emitted. Newlines were never a valid separator for these fields -- theold specification <https://peps.python.org/pep-0345/>_ separated items with spaces and the current one uses commas.Extensionis now a dataclass, exposing type annotations for its constructor arguments so subclasses (e.g. in Setuptools) can inherit them without redeclaring each parameter. Passing unknown keyword arguments is now deprecated.compilers.C.*loggers instead of the distutils root logger, part of decoupling the compilers package from distutils. The logger names are normalized to a stablecompilers.C.*prefix so they remain constant as the package migrates toward a standalonecompilers.Cdistribution.Compiler.callmethod -- a thin wrapper oversubprocess.check_call(with macOS deployment-target env injection) that is the modern replacement forCompiler.spawn. The compilers no longer depend ondistutils.spawn,distutils.dir_util,distutils.file_util,distutils._modified, ordistutils.util.execute/split_quoted: the genericnewer/newer_groupandsplit_quotedhelpers are vendored into thecompilerspackage, andCompiler.mkpath/move_file/executeare implemented directly on the standard library (os.makedirs/shutil.move). The methods are retained for backward compatibility.distutils.util,distutils.version,distutils.compat, ordistutils._macos_compat. The platform-identification helpers (get_platform/get_host_platform/is_mingw) now live indistutils.compilers.platform.detectand the macOS deployment-target logic andcompiler_fixupindistutils.compilers.platform.macos;CygwinCCompiler.gcc_versionreturns apackaging.version.Version.distutils.utilre-exports the platform/macOS helpers from their new homes for backward compatibility rather than keeping duplicate copies. (sysconfig lookups still route through distutils pending its own decoupling.)sysconfiginstead ofdistutils.sysconfig. Per-compiler customization -- previouslydistutils.sysconfig.customize_compiler-- has moved intoCompiler.configure_system(): a no-op on the base class, withUnixCCompilerapplying the compiler/flag/archiver settings CPython recorded insysconfig(and the usualCC/CFLAGS/LDSHARED/… environment overrides).distutils.sysconfig.customize_compileris retained as a thin wrapper that callscompiler.configure_system().Improved Documentation
packagessection of the Package Discovery user guide.bdist_wheel'spy_limited_apioption controlsabi3wheel tagging for extension modules -- by :user:Himanshuagrawal4Deprecations and Removals
Compiler.spawnis deprecated in favor of the newCompiler.call.callraises nativesubprocessexceptions;spawnremains as a shim that emits aDeprecationWarningand translates them toDistutilsExecError. The MSVCspawncompatibility shim for third-party monkeypatches predating theenvargument (numpy.distutils before 1.19, per pypa/distutils#15) has been removed.distutils.spawn.spawnis likewise reduced to a thin wrapper aroundsubprocess.check_call: it no longer resolvescmd[0]viashutil.which(subprocesssearchesPATHitself) nor injectsMACOSX_DEPLOYMENT_TARGET(that now lives with the compilers, the only callers to which it applied).MACOSX_DEPLOYMENT_TARGETlower than the interpreter's configured value now raisescompilers.errors.PlatformErrorinstead ofdistutils.errors.DistutilsPlatformError(the macOS deployment-target check moved into the compilers package).CygwinCCompiler.gcc_versionreturns apackaging.version.Versionrather than the removeddistutils.version.LooseVersion. Completing the transition begun in pypa/distutils#246,UnixCCompiler.runtime_library_dir_optionnow returns the["-Wl,--enable-new-dtags", "-Wl,-rpath,<dir>"]list directly for GNU ld rather than collapsing it into a single string, and the temporarydistutils.compat.consolidate_linker_argsshim has been removed.Error,UnknownFileType, and a newPlatformError) live atdistutils.compilers.errors, leaving room for futurecompilers.<language>siblings; the C/C++-specificCompileError/LinkError/LibError/PreprocessErrorremain indistutils.compilers.C.errors. The compilers now raisecompilers.errors.PlatformErrorwhere they previously raiseddistutils.errors.DistutilsPlatformError/DistutilsModuleError, andcompilers._modified.newerraises the stdlibFileNotFoundError.distutils.errorskeeps its own framework exceptions and re-exports the compiler ones (CCompilerError,CompileError, etc.) for backward compatibility; becauseCCompilerErroriscompilers.errors.Error, code catching it (as distutils' top-level handlers do) still catches the newPlatformError.customize_compilernow asserts that the compiler-related config variables (CC,CXX,CFLAGS, etc.) resolve to strings, raisingAssertionErrorif any are unexpectedlyNonerather than failing later with a less clear error.