Skip to content

Fixed build_ext assumption that cross-compilation on Windows always uses MSVCCompiler - #399

Merged
jaraco merged 2 commits into
pypa:mainfrom
Avasam:patch-1
Jul 7, 2026
Merged

jaraco merged 2 commits into
pypa:mainfrom
Avasam:patch-1

Conversation

@Avasam

@Avasam Avasam commented Feb 20, 2026

Copy link
Copy Markdown
Contributor

Fixes the following error if providing --plat-name when using msys2-mingw on Windows:

Traceback (most recent call last):
  File "D:/a/_temp/msys64/mingw64/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
    main()
  File "D:/a/_temp/msys64/mingw64/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 373, in main
    json_out["return_val"] = hook(**hook_input["kwargs"])
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:/a/_temp/msys64/mingw64/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 280, in build_wheel
    return _build_backend().build_wheel(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/build_meta.py", line 438, in build_wheel
    return _build(['bdist_wheel'])
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/build_meta.py", line 429, in _build
    return self._build_with_temp_dir(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/build_meta.py", line 410, in _build_with_temp_dir
    self.run_setup()
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/build_meta.py", line 317, in run_setup
    exec(code, locals())
  File "<string>", line 1963, in <module>
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/__init__.py", line 117, in setup
    return distutils.core.setup(**attrs)  # type: ignore[return-value]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 186, in setup
    return run_commands(dist)
           ^^^^^^^^^^^^^^^^^^
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
    dist.run_commands()
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1000, in run_commands
    self.run_command(cmd)
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/dist.py", line 1107, in run_command
    super().run_command(command)
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
    cmd_obj.run()
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/command/bdist_wheel.py", line 370, in run
    self.run_command("build")
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 341, in run_command
    self.distribution.run_command(command)
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/dist.py", line 1107, in run_command
    super().run_command(command)
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
    cmd_obj.run()
  File "<string>", line 354, in run
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/_distutils/command/build.py", line 135, in run
    self.run_command(cmd_name)
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 341, in run_command
    self.distribution.run_command(command)
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/dist.py", line 1107, in run_command
    super().run_command(command)
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
    cmd_obj.run()
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/command/build_ext.py", line 97, in run
    _build_ext.run(self)
  File "D:/a/_temp/msys64/tmp/build-env-g6pjoax9/lib/python3.12/site-packages/setuptools/_distutils/command/build_ext.py", line 336, in run
    self.compiler.initialize(self.plat_name)
    ^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'MinGW32Compiler' object has no attribute 'initialize'

This could've been caught with static type checking, but attr-defined is currently disabled in mypy

Comment thread distutils/command/build_ext.py Outdated
…or non-MSVC compilers

build_ext.run() unconditionally called compiler.initialize() when
cross-compiling on Windows, assuming an MSVCCompiler. With any other
compiler (e.g. MinGW/msys2) this raised AttributeError.

Rather than guard the call with hasattr(), give the base Compiler a no-op
initialize() that non-MSVC compilers inherit; MSVCCompiler continues to
override it. This also makes the method visible to static type checkers.
The redundant os.name == 'nt' guard is dropped since initialize() is now
safe on every compiler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jaraco
jaraco merged commit 8f341ca into pypa:main Jul 7, 2026
22 checks passed
@Avasam
Avasam deleted the patch-1 branch July 7, 2026 19:54
halstead pushed a commit to openembedded/openembedded-core that referenced this pull request Aug 9, 2026
https://setuptools.pypa.io/en/latest/history.html

v84.0.0
=======

Features

    Newline-separated keywords and platforms, which are invalid and corrupt the generated metadata
    (pypa/setuptools#4887), 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 – the
    old specification separated items with spaces and the current one uses commas. (#4887)

    Extension is 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. (pypa/distutils#373) (#5022)

    The C compiler modules now emit log messages through their own compilers.C.* loggers instead of the
    distutils root logger, part of decoupling the compilers package from distutils. The logger names are
    normalized to a stable compilers.C.* prefix so they remain constant as the package migrates toward a
    standalone compilers.C distribution. (#5266)

    The C compilers gained a Compiler.call method – a thin wrapper over subprocess.check_call (with macOS
    deployment-target env injection) that is the modern replacement for Compiler.spawn. The compilers no
    longer depend on distutils.spawn, distutils.dir_util, distutils.file_util, distutils._modified, or
    distutils.util.execute/split_quoted: the generic newer/newer_group and split_quoted helpers are
    vendored into the compilers package, and Compiler.mkpath/move_file/execute are implemented directly
    on the standard library (os.makedirs/shutil.move). The methods are retained for backward
    compatibility. (#5267)

    The compilers no longer depend on distutils.util, distutils.version, distutils.compat, or
    distutils._macos_compat. The platform-identification helpers (get_platform/get_host_platform/is_mingw)
    now live in distutils.compilers.platform.detect and the macOS deployment-target logic and compiler_fixup
    in distutils.compilers.platform.macos; CygwinCCompiler.gcc_version returns a packaging.version.Version.
    distutils.util re-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.) (#5268)

    The compilers now read their build configuration from the standard library’s sysconfig instead of
    distutils.sysconfig. Per-compiler customization – previously distutils.sysconfig.customize_compiler
    – has moved into Compiler.configure_system(): a no-op on the base class, with UnixCCompiler
    applying the compiler/flag/archiver settings CPython recorded in sysconfig (and the usual
    CC/CFLAGS/LDSHARED/… environment overrides). distutils.sysconfig.customize_compiler is retained
    as a thin wrapper that calls compiler.configure_system(). (#5269)

Bugfixes

    The MSVC linker now passes its arguments through a response file when the command line would exceed
    the Windows maximum length, fixing failures when linking a large number of objects. (#4177)

    The Cygwin and MinGW compilers now pass -O1 instead of a bare -O. The two are equivalent to GCC,
    but cc1 rejected the bare form when building 32-bit extensions with -m32. – by @dchaudhari7177 (#4873)

    copy_file now preserves the full precision of the source’s modification time, so a copy is no longer
    considered older than its source on filesystems with sub-second timestamp resolution.
    (pypa/distutils#379) (#5079)

    Setuptools wheels no longer bundled the project’s own test modules. – by @itscloud0 (#5212)

    build_ext no longer fails when cross-compiling with a compiler other than MSVC (such as MinGW). Compiler now
    provides a no-op initialize() that non-MSVC compilers inherit. (pypa/distutils#399)

Improved Documentation

    Clarified what “correspond exactly to the directory structure” means in the packages section of the
    Package Discovery user guide. (#4109)

    Documented how bdist_wheel’s py_limited_api option controls abi3 wheel tagging for extension modules –
    by @Himanshuagrawal4 (#4741)

Deprecations and Removals

    Compiler.spawn is deprecated in favor of the new Compiler.call. call raises native subprocess exceptions;
    spawn remains as a shim that emits a DeprecationWarning and translates them to DistutilsExecError. The
    MSVC spawn compatibility shim for third-party monkeypatches predating the env argument (numpy.distutils
    before 1.19, per pypa/distutils#15) has been removed. distutils.spawn.spawn is likewise reduced to a thin
    wrapper around subprocess.check_call: it no longer resolves cmd[0] via shutil.which (subprocess searches
    PATH itself) nor injects MACOSX_DEPLOYMENT_TARGET (that now lives with the compilers, the only callers
    to which it applied). (#5267)

    Building an extension with a MACOSX_DEPLOYMENT_TARGET lower than the interpreter’s configured value now
    raises compilers.errors.PlatformError instead of distutils.errors.DistutilsPlatformError (the macOS
    dep loyment-target check moved into the compilers package). CygwinCCompiler.gcc_version returns a
    packaging.version.Version rather than the removed distutils.version.LooseVersion. Completing the
    transition begun in pypa/distutils#246, UnixCCompiler.runtime_library_dir_option now returns the
    ["-Wl,--enable-new-dtags", "-Wl,-rpath,<dir>"] list directly for GNU ld rather than collapsing it
    into a single string, and the temporary distutils.compat.consolidate_linker_args shim has been removed. (#5268)

    The compilers now define their own exception vocabulary instead of borrowing distutils’ framework errors.
    Language-agnostic exceptions (Error, UnknownFileType, and a new PlatformError) live at
    distutils.compilers.errors, leaving room for future compilers.<language> siblings; the
    C/C++-specific CompileError/LinkError/LibError/PreprocessError remain in distutils.compilers.C.errors.
    The compilers now raise compilers.errors.PlatformError where they previously raised
    distutils.errors.DistutilsPlatformError/DistutilsModuleError, and compilers._modified.newer raises the stdlib
    FileNotFoundError. distutils.errors keeps its own framework exceptions and re-exports the compiler ones
    (CCompilerError, CompileError, etc.) for backward compatibility; because CCompilerError is compilers.errors.Error,
    code catching it (as distutils’ top-level handlers do) still catches the new PlatformError. (#5270)

    customize_compiler now asserts that the compiler-related config variables (CC, CXX, CFLAGS, etc.) resolve
    to strings, raising AssertionError if any are unexpectedly None rather than failing later with a less
    clear error. (pypa/distutils#363)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
halstead pushed a commit to openembedded/openembedded-core that referenced this pull request Aug 9, 2026
https://setuptools.pypa.io/en/latest/history.html

v84.0.0
=======

Features

    Newline-separated keywords and platforms, which are invalid and corrupt the generated metadata
    (pypa/setuptools#4887), 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 – the
    old specification separated items with spaces and the current one uses commas. (#4887)

    Extension is 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. (pypa/distutils#373) (#5022)

    The C compiler modules now emit log messages through their own compilers.C.* loggers instead of the
    distutils root logger, part of decoupling the compilers package from distutils. The logger names are
    normalized to a stable compilers.C.* prefix so they remain constant as the package migrates toward a
    standalone compilers.C distribution. (#5266)

    The C compilers gained a Compiler.call method – a thin wrapper over subprocess.check_call (with macOS
    deployment-target env injection) that is the modern replacement for Compiler.spawn. The compilers no
    longer depend on distutils.spawn, distutils.dir_util, distutils.file_util, distutils._modified, or
    distutils.util.execute/split_quoted: the generic newer/newer_group and split_quoted helpers are
    vendored into the compilers package, and Compiler.mkpath/move_file/execute are implemented directly
    on the standard library (os.makedirs/shutil.move). The methods are retained for backward
    compatibility. (#5267)

    The compilers no longer depend on distutils.util, distutils.version, distutils.compat, or
    distutils._macos_compat. The platform-identification helpers (get_platform/get_host_platform/is_mingw)
    now live in distutils.compilers.platform.detect and the macOS deployment-target logic and compiler_fixup
    in distutils.compilers.platform.macos; CygwinCCompiler.gcc_version returns a packaging.version.Version.
    distutils.util re-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.) (#5268)

    The compilers now read their build configuration from the standard library’s sysconfig instead of
    distutils.sysconfig. Per-compiler customization – previously distutils.sysconfig.customize_compiler
    – has moved into Compiler.configure_system(): a no-op on the base class, with UnixCCompiler
    applying the compiler/flag/archiver settings CPython recorded in sysconfig (and the usual
    CC/CFLAGS/LDSHARED/… environment overrides). distutils.sysconfig.customize_compiler is retained
    as a thin wrapper that calls compiler.configure_system(). (#5269)

Bugfixes

    The MSVC linker now passes its arguments through a response file when the command line would exceed
    the Windows maximum length, fixing failures when linking a large number of objects. (#4177)

    The Cygwin and MinGW compilers now pass -O1 instead of a bare -O. The two are equivalent to GCC,
    but cc1 rejected the bare form when building 32-bit extensions with -m32. – by @dchaudhari7177 (#4873)

    copy_file now preserves the full precision of the source’s modification time, so a copy is no longer
    considered older than its source on filesystems with sub-second timestamp resolution.
    (pypa/distutils#379) (#5079)

    Setuptools wheels no longer bundled the project’s own test modules. – by @itscloud0 (#5212)

    build_ext no longer fails when cross-compiling with a compiler other than MSVC (such as MinGW). Compiler now
    provides a no-op initialize() that non-MSVC compilers inherit. (pypa/distutils#399)

Improved Documentation

    Clarified what “correspond exactly to the directory structure” means in the packages section of the
    Package Discovery user guide. (#4109)

    Documented how bdist_wheel’s py_limited_api option controls abi3 wheel tagging for extension modules –
    by @Himanshuagrawal4 (#4741)

Deprecations and Removals

    Compiler.spawn is deprecated in favor of the new Compiler.call. call raises native subprocess exceptions;
    spawn remains as a shim that emits a DeprecationWarning and translates them to DistutilsExecError. The
    MSVC spawn compatibility shim for third-party monkeypatches predating the env argument (numpy.distutils
    before 1.19, per pypa/distutils#15) has been removed. distutils.spawn.spawn is likewise reduced to a thin
    wrapper around subprocess.check_call: it no longer resolves cmd[0] via shutil.which (subprocess searches
    PATH itself) nor injects MACOSX_DEPLOYMENT_TARGET (that now lives with the compilers, the only callers
    to which it applied). (#5267)

    Building an extension with a MACOSX_DEPLOYMENT_TARGET lower than the interpreter’s configured value now
    raises compilers.errors.PlatformError instead of distutils.errors.DistutilsPlatformError (the macOS
    dep loyment-target check moved into the compilers package). CygwinCCompiler.gcc_version returns a
    packaging.version.Version rather than the removed distutils.version.LooseVersion. Completing the
    transition begun in pypa/distutils#246, UnixCCompiler.runtime_library_dir_option now returns the
    ["-Wl,--enable-new-dtags", "-Wl,-rpath,<dir>"] list directly for GNU ld rather than collapsing it
    into a single string, and the temporary distutils.compat.consolidate_linker_args shim has been removed. (#5268)

    The compilers now define their own exception vocabulary instead of borrowing distutils’ framework errors.
    Language-agnostic exceptions (Error, UnknownFileType, and a new PlatformError) live at
    distutils.compilers.errors, leaving room for future compilers.<language> siblings; the
    C/C++-specific CompileError/LinkError/LibError/PreprocessError remain in distutils.compilers.C.errors.
    The compilers now raise compilers.errors.PlatformError where they previously raised
    distutils.errors.DistutilsPlatformError/DistutilsModuleError, and compilers._modified.newer raises the stdlib
    FileNotFoundError. distutils.errors keeps its own framework exceptions and re-exports the compiler ones
    (CCompilerError, CompileError, etc.) for backward compatibility; because CCompilerError is compilers.errors.Error,
    code catching it (as distutils’ top-level handlers do) still catches the new PlatformError. (#5270)

    customize_compiler now asserts that the compiler-related config variables (CC, CXX, CFLAGS, etc.) resolve
    to strings, raising AssertionError if any are unexpectedly None rather than failing later with a less
    clear error. (pypa/distutils#363)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
halstead pushed a commit to openembedded/openembedded-core that referenced this pull request Aug 9, 2026
https://setuptools.pypa.io/en/latest/history.html

v84.0.0
=======

Features

    Newline-separated keywords and platforms, which are invalid and corrupt the generated metadata
    (pypa/setuptools#4887), 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 – the
    old specification separated items with spaces and the current one uses commas. (#4887)

    Extension is 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. (pypa/distutils#373) (#5022)

    The C compiler modules now emit log messages through their own compilers.C.* loggers instead of the
    distutils root logger, part of decoupling the compilers package from distutils. The logger names are
    normalized to a stable compilers.C.* prefix so they remain constant as the package migrates toward a
    standalone compilers.C distribution. (#5266)

    The C compilers gained a Compiler.call method – a thin wrapper over subprocess.check_call (with macOS
    deployment-target env injection) that is the modern replacement for Compiler.spawn. The compilers no
    longer depend on distutils.spawn, distutils.dir_util, distutils.file_util, distutils._modified, or
    distutils.util.execute/split_quoted: the generic newer/newer_group and split_quoted helpers are
    vendored into the compilers package, and Compiler.mkpath/move_file/execute are implemented directly
    on the standard library (os.makedirs/shutil.move). The methods are retained for backward
    compatibility. (#5267)

    The compilers no longer depend on distutils.util, distutils.version, distutils.compat, or
    distutils._macos_compat. The platform-identification helpers (get_platform/get_host_platform/is_mingw)
    now live in distutils.compilers.platform.detect and the macOS deployment-target logic and compiler_fixup
    in distutils.compilers.platform.macos; CygwinCCompiler.gcc_version returns a packaging.version.Version.
    distutils.util re-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.) (#5268)

    The compilers now read their build configuration from the standard library’s sysconfig instead of
    distutils.sysconfig. Per-compiler customization – previously distutils.sysconfig.customize_compiler
    – has moved into Compiler.configure_system(): a no-op on the base class, with UnixCCompiler
    applying the compiler/flag/archiver settings CPython recorded in sysconfig (and the usual
    CC/CFLAGS/LDSHARED/… environment overrides). distutils.sysconfig.customize_compiler is retained
    as a thin wrapper that calls compiler.configure_system(). (#5269)

Bugfixes

    The MSVC linker now passes its arguments through a response file when the command line would exceed
    the Windows maximum length, fixing failures when linking a large number of objects. (#4177)

    The Cygwin and MinGW compilers now pass -O1 instead of a bare -O. The two are equivalent to GCC,
    but cc1 rejected the bare form when building 32-bit extensions with -m32. – by @dchaudhari7177 (#4873)

    copy_file now preserves the full precision of the source’s modification time, so a copy is no longer
    considered older than its source on filesystems with sub-second timestamp resolution.
    (pypa/distutils#379) (#5079)

    Setuptools wheels no longer bundled the project’s own test modules. – by @itscloud0 (#5212)

    build_ext no longer fails when cross-compiling with a compiler other than MSVC (such as MinGW). Compiler now
    provides a no-op initialize() that non-MSVC compilers inherit. (pypa/distutils#399)

Improved Documentation

    Clarified what “correspond exactly to the directory structure” means in the packages section of the
    Package Discovery user guide. (#4109)

    Documented how bdist_wheel’s py_limited_api option controls abi3 wheel tagging for extension modules –
    by @Himanshuagrawal4 (#4741)

Deprecations and Removals

    Compiler.spawn is deprecated in favor of the new Compiler.call. call raises native subprocess exceptions;
    spawn remains as a shim that emits a DeprecationWarning and translates them to DistutilsExecError. The
    MSVC spawn compatibility shim for third-party monkeypatches predating the env argument (numpy.distutils
    before 1.19, per pypa/distutils#15) has been removed. distutils.spawn.spawn is likewise reduced to a thin
    wrapper around subprocess.check_call: it no longer resolves cmd[0] via shutil.which (subprocess searches
    PATH itself) nor injects MACOSX_DEPLOYMENT_TARGET (that now lives with the compilers, the only callers
    to which it applied). (#5267)

    Building an extension with a MACOSX_DEPLOYMENT_TARGET lower than the interpreter’s configured value now
    raises compilers.errors.PlatformError instead of distutils.errors.DistutilsPlatformError (the macOS
    dep loyment-target check moved into the compilers package). CygwinCCompiler.gcc_version returns a
    packaging.version.Version rather than the removed distutils.version.LooseVersion. Completing the
    transition begun in pypa/distutils#246, UnixCCompiler.runtime_library_dir_option now returns the
    ["-Wl,--enable-new-dtags", "-Wl,-rpath,<dir>"] list directly for GNU ld rather than collapsing it
    into a single string, and the temporary distutils.compat.consolidate_linker_args shim has been removed. (#5268)

    The compilers now define their own exception vocabulary instead of borrowing distutils’ framework errors.
    Language-agnostic exceptions (Error, UnknownFileType, and a new PlatformError) live at
    distutils.compilers.errors, leaving room for future compilers.<language> siblings; the
    C/C++-specific CompileError/LinkError/LibError/PreprocessError remain in distutils.compilers.C.errors.
    The compilers now raise compilers.errors.PlatformError where they previously raised
    distutils.errors.DistutilsPlatformError/DistutilsModuleError, and compilers._modified.newer raises the stdlib
    FileNotFoundError. distutils.errors keeps its own framework exceptions and re-exports the compiler ones
    (CCompilerError, CompileError, etc.) for backward compatibility; because CCompilerError is compilers.errors.Error,
    code catching it (as distutils’ top-level handlers do) still catches the new PlatformError. (#5270)

    customize_compiler now asserts that the compiler-related config variables (CC, CXX, CFLAGS, etc.) resolve
    to strings, raising AssertionError if any are unexpectedly None rather than failing later with a less
    clear error. (pypa/distutils#363)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
halstead pushed a commit to openembedded/openembedded-core that referenced this pull request Aug 10, 2026
https://setuptools.pypa.io/en/latest/history.html

v84.0.0
=======

Features

    Newline-separated keywords and platforms, which are invalid and corrupt the generated metadata
    (pypa/setuptools#4887), 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 – the
    old specification separated items with spaces and the current one uses commas. (#4887)

    Extension is 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. (pypa/distutils#373) (#5022)

    The C compiler modules now emit log messages through their own compilers.C.* loggers instead of the
    distutils root logger, part of decoupling the compilers package from distutils. The logger names are
    normalized to a stable compilers.C.* prefix so they remain constant as the package migrates toward a
    standalone compilers.C distribution. (#5266)

    The C compilers gained a Compiler.call method – a thin wrapper over subprocess.check_call (with macOS
    deployment-target env injection) that is the modern replacement for Compiler.spawn. The compilers no
    longer depend on distutils.spawn, distutils.dir_util, distutils.file_util, distutils._modified, or
    distutils.util.execute/split_quoted: the generic newer/newer_group and split_quoted helpers are
    vendored into the compilers package, and Compiler.mkpath/move_file/execute are implemented directly
    on the standard library (os.makedirs/shutil.move). The methods are retained for backward
    compatibility. (#5267)

    The compilers no longer depend on distutils.util, distutils.version, distutils.compat, or
    distutils._macos_compat. The platform-identification helpers (get_platform/get_host_platform/is_mingw)
    now live in distutils.compilers.platform.detect and the macOS deployment-target logic and compiler_fixup
    in distutils.compilers.platform.macos; CygwinCCompiler.gcc_version returns a packaging.version.Version.
    distutils.util re-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.) (#5268)

    The compilers now read their build configuration from the standard library’s sysconfig instead of
    distutils.sysconfig. Per-compiler customization – previously distutils.sysconfig.customize_compiler
    – has moved into Compiler.configure_system(): a no-op on the base class, with UnixCCompiler
    applying the compiler/flag/archiver settings CPython recorded in sysconfig (and the usual
    CC/CFLAGS/LDSHARED/… environment overrides). distutils.sysconfig.customize_compiler is retained
    as a thin wrapper that calls compiler.configure_system(). (#5269)

Bugfixes

    The MSVC linker now passes its arguments through a response file when the command line would exceed
    the Windows maximum length, fixing failures when linking a large number of objects. (#4177)

    The Cygwin and MinGW compilers now pass -O1 instead of a bare -O. The two are equivalent to GCC,
    but cc1 rejected the bare form when building 32-bit extensions with -m32. – by @dchaudhari7177 (#4873)

    copy_file now preserves the full precision of the source’s modification time, so a copy is no longer
    considered older than its source on filesystems with sub-second timestamp resolution.
    (pypa/distutils#379) (#5079)

    Setuptools wheels no longer bundled the project’s own test modules. – by @itscloud0 (#5212)

    build_ext no longer fails when cross-compiling with a compiler other than MSVC (such as MinGW). Compiler now
    provides a no-op initialize() that non-MSVC compilers inherit. (pypa/distutils#399)

Improved Documentation

    Clarified what “correspond exactly to the directory structure” means in the packages section of the
    Package Discovery user guide. (#4109)

    Documented how bdist_wheel’s py_limited_api option controls abi3 wheel tagging for extension modules –
    by @Himanshuagrawal4 (#4741)

Deprecations and Removals

    Compiler.spawn is deprecated in favor of the new Compiler.call. call raises native subprocess exceptions;
    spawn remains as a shim that emits a DeprecationWarning and translates them to DistutilsExecError. The
    MSVC spawn compatibility shim for third-party monkeypatches predating the env argument (numpy.distutils
    before 1.19, per pypa/distutils#15) has been removed. distutils.spawn.spawn is likewise reduced to a thin
    wrapper around subprocess.check_call: it no longer resolves cmd[0] via shutil.which (subprocess searches
    PATH itself) nor injects MACOSX_DEPLOYMENT_TARGET (that now lives with the compilers, the only callers
    to which it applied). (#5267)

    Building an extension with a MACOSX_DEPLOYMENT_TARGET lower than the interpreter’s configured value now
    raises compilers.errors.PlatformError instead of distutils.errors.DistutilsPlatformError (the macOS
    dep loyment-target check moved into the compilers package). CygwinCCompiler.gcc_version returns a
    packaging.version.Version rather than the removed distutils.version.LooseVersion. Completing the
    transition begun in pypa/distutils#246, UnixCCompiler.runtime_library_dir_option now returns the
    ["-Wl,--enable-new-dtags", "-Wl,-rpath,<dir>"] list directly for GNU ld rather than collapsing it
    into a single string, and the temporary distutils.compat.consolidate_linker_args shim has been removed. (#5268)

    The compilers now define their own exception vocabulary instead of borrowing distutils’ framework errors.
    Language-agnostic exceptions (Error, UnknownFileType, and a new PlatformError) live at
    distutils.compilers.errors, leaving room for future compilers.<language> siblings; the
    C/C++-specific CompileError/LinkError/LibError/PreprocessError remain in distutils.compilers.C.errors.
    The compilers now raise compilers.errors.PlatformError where they previously raised
    distutils.errors.DistutilsPlatformError/DistutilsModuleError, and compilers._modified.newer raises the stdlib
    FileNotFoundError. distutils.errors keeps its own framework exceptions and re-exports the compiler ones
    (CCompilerError, CompileError, etc.) for backward compatibility; because CCompilerError is compilers.errors.Error,
    code catching it (as distutils’ top-level handlers do) still catches the new PlatformError. (#5270)

    customize_compiler now asserts that the compiler-related config variables (CC, CXX, CFLAGS, etc.) resolve
    to strings, raising AssertionError if any are unexpectedly None rather than failing later with a less
    clear error. (pypa/distutils#363)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
halstead pushed a commit to openembedded/openembedded-core that referenced this pull request Aug 10, 2026
https://setuptools.pypa.io/en/latest/history.html

v84.0.0
=======

Features

    Newline-separated keywords and platforms, which are invalid and corrupt the generated metadata
    (pypa/setuptools#4887), 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 – the
    old specification separated items with spaces and the current one uses commas. (#4887)

    Extension is 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. (pypa/distutils#373) (#5022)

    The C compiler modules now emit log messages through their own compilers.C.* loggers instead of the
    distutils root logger, part of decoupling the compilers package from distutils. The logger names are
    normalized to a stable compilers.C.* prefix so they remain constant as the package migrates toward a
    standalone compilers.C distribution. (#5266)

    The C compilers gained a Compiler.call method – a thin wrapper over subprocess.check_call (with macOS
    deployment-target env injection) that is the modern replacement for Compiler.spawn. The compilers no
    longer depend on distutils.spawn, distutils.dir_util, distutils.file_util, distutils._modified, or
    distutils.util.execute/split_quoted: the generic newer/newer_group and split_quoted helpers are
    vendored into the compilers package, and Compiler.mkpath/move_file/execute are implemented directly
    on the standard library (os.makedirs/shutil.move). The methods are retained for backward
    compatibility. (#5267)

    The compilers no longer depend on distutils.util, distutils.version, distutils.compat, or
    distutils._macos_compat. The platform-identification helpers (get_platform/get_host_platform/is_mingw)
    now live in distutils.compilers.platform.detect and the macOS deployment-target logic and compiler_fixup
    in distutils.compilers.platform.macos; CygwinCCompiler.gcc_version returns a packaging.version.Version.
    distutils.util re-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.) (#5268)

    The compilers now read their build configuration from the standard library’s sysconfig instead of
    distutils.sysconfig. Per-compiler customization – previously distutils.sysconfig.customize_compiler
    – has moved into Compiler.configure_system(): a no-op on the base class, with UnixCCompiler
    applying the compiler/flag/archiver settings CPython recorded in sysconfig (and the usual
    CC/CFLAGS/LDSHARED/… environment overrides). distutils.sysconfig.customize_compiler is retained
    as a thin wrapper that calls compiler.configure_system(). (#5269)

Bugfixes

    The MSVC linker now passes its arguments through a response file when the command line would exceed
    the Windows maximum length, fixing failures when linking a large number of objects. (#4177)

    The Cygwin and MinGW compilers now pass -O1 instead of a bare -O. The two are equivalent to GCC,
    but cc1 rejected the bare form when building 32-bit extensions with -m32. – by @dchaudhari7177 (#4873)

    copy_file now preserves the full precision of the source’s modification time, so a copy is no longer
    considered older than its source on filesystems with sub-second timestamp resolution.
    (pypa/distutils#379) (#5079)

    Setuptools wheels no longer bundled the project’s own test modules. – by @itscloud0 (#5212)

    build_ext no longer fails when cross-compiling with a compiler other than MSVC (such as MinGW). Compiler now
    provides a no-op initialize() that non-MSVC compilers inherit. (pypa/distutils#399)

Improved Documentation

    Clarified what “correspond exactly to the directory structure” means in the packages section of the
    Package Discovery user guide. (#4109)

    Documented how bdist_wheel’s py_limited_api option controls abi3 wheel tagging for extension modules –
    by @Himanshuagrawal4 (#4741)

Deprecations and Removals

    Compiler.spawn is deprecated in favor of the new Compiler.call. call raises native subprocess exceptions;
    spawn remains as a shim that emits a DeprecationWarning and translates them to DistutilsExecError. The
    MSVC spawn compatibility shim for third-party monkeypatches predating the env argument (numpy.distutils
    before 1.19, per pypa/distutils#15) has been removed. distutils.spawn.spawn is likewise reduced to a thin
    wrapper around subprocess.check_call: it no longer resolves cmd[0] via shutil.which (subprocess searches
    PATH itself) nor injects MACOSX_DEPLOYMENT_TARGET (that now lives with the compilers, the only callers
    to which it applied). (#5267)

    Building an extension with a MACOSX_DEPLOYMENT_TARGET lower than the interpreter’s configured value now
    raises compilers.errors.PlatformError instead of distutils.errors.DistutilsPlatformError (the macOS
    dep loyment-target check moved into the compilers package). CygwinCCompiler.gcc_version returns a
    packaging.version.Version rather than the removed distutils.version.LooseVersion. Completing the
    transition begun in pypa/distutils#246, UnixCCompiler.runtime_library_dir_option now returns the
    ["-Wl,--enable-new-dtags", "-Wl,-rpath,<dir>"] list directly for GNU ld rather than collapsing it
    into a single string, and the temporary distutils.compat.consolidate_linker_args shim has been removed. (#5268)

    The compilers now define their own exception vocabulary instead of borrowing distutils’ framework errors.
    Language-agnostic exceptions (Error, UnknownFileType, and a new PlatformError) live at
    distutils.compilers.errors, leaving room for future compilers.<language> siblings; the
    C/C++-specific CompileError/LinkError/LibError/PreprocessError remain in distutils.compilers.C.errors.
    The compilers now raise compilers.errors.PlatformError where they previously raised
    distutils.errors.DistutilsPlatformError/DistutilsModuleError, and compilers._modified.newer raises the stdlib
    FileNotFoundError. distutils.errors keeps its own framework exceptions and re-exports the compiler ones
    (CCompilerError, CompileError, etc.) for backward compatibility; because CCompilerError is compilers.errors.Error,
    code catching it (as distutils’ top-level handlers do) still catches the new PlatformError. (#5270)

    customize_compiler now asserts that the compiler-related config variables (CC, CXX, CFLAGS, etc.) resolve
    to strings, raising AssertionError if any are unexpectedly None rather than failing later with a less
    clear error. (pypa/distutils#363)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Aug 11, 2026
v84.0.0
=======

Features
--------

- Newline-separated ``keywords`` and ``platforms``, which are
invalid and corrupt the generated metadata (pypa/setuptools#4887),
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 -- the `old specification
<https://peps.python.org/pep-0345/>`_ separated items with spaces
and the current one uses commas. (#4887)
- ``Extension`` is 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. (pypa/distutils#373) (#5022)
- The C compiler modules now emit log messages through their own
``compilers.C.*`` loggers instead of the distutils root logger,
part of decoupling the compilers package from distutils. The logger
names are normalized to a stable ``compilers.C.*`` prefix so they
remain constant as the package migrates toward a standalone
``compilers.C`` distribution. (#5266)
- The C compilers gained a ``Compiler.call`` method -- a thin
wrapper over ``subprocess.check_call`` (with macOS deployment-target
env injection) that is the modern replacement for ``Compiler.spawn``.
The compilers no longer depend on ``distutils.spawn``,
``distutils.dir_util``, ``distutils.file_util``, ``distutils._modified``,
or ``distutils.util.execute``/``split_quoted``: the generic
``newer``/``newer_group`` and ``split_quoted`` helpers are vendored
into the ``compilers`` package, and
``Compiler.mkpath``/``move_file``/``execute`` are implemented
directly on the standard library (``os.makedirs``/``shutil.move``).
The methods are retained for backward compatibility. (#5267)
- The compilers no longer depend on ``distutils.util``,
``distutils.version``, ``distutils.compat``, or
``distutils._macos_compat``. The platform-identification helpers
(``get_platform``/``get_host_platform``/``is_mingw``) now live in
``distutils.compilers.platform.detect`` and the macOS deployment-target
logic and ``compiler_fixup`` in ``distutils.compilers.platform.macos``;
``CygwinCCompiler.gcc_version`` returns a ``packaging.version.Version``.
``distutils.util`` re-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.) (#5268)
- The compilers now read their build configuration from the standard
library's ``sysconfig`` instead of ``distutils.sysconfig``.
Per-compiler customization -- previously
``distutils.sysconfig.customize_compiler`` -- has moved into
``Compiler.configure_system()``: a no-op on the base class, with
``UnixCCompiler`` applying the compiler/flag/archiver settings
CPython recorded in ``sysconfig`` (and the usual
``CC``/``CFLAGS``/``LDSHARED``/… environment overrides).
``distutils.sysconfig.customize_compiler`` is retained as a thin
wrapper that calls ``compiler.configure_system()``. (#5269)


Bugfixes
--------

- The MSVC linker now passes its arguments through a response file
when the command line would exceed the Windows maximum length,
fixing failures when linking a large number of objects. (#4177)
- The Cygwin and MinGW compilers now pass ``-O1`` instead of a bare
``-O``. The two are equivalent to GCC, but ``cc1`` rejected the
bare form when building 32-bit extensions with ``-m32``. -- by
:user:`dchaudhari7177` (#4873)
- ``copy_file`` now preserves the full precision of the source's
modification time, so a copy is no longer considered older than
its source on filesystems with sub-second timestamp resolution.
(pypa/distutils#379) (#5079)
- Setuptools wheels no longer bundled the project's own test modules.
-- by :user:`itscloud0` (#5212)
- ``build_ext`` no longer fails when cross-compiling with a compiler
other than MSVC (such as MinGW). ``Compiler`` now provides a no-op
``initialize()`` that non-MSVC compilers inherit. (pypa/distutils#399)


Improved Documentation
----------------------

- Clarified what "correspond exactly to the directory structure"
means in
  the ``packages`` section of the Package Discovery user guide.
  (#4109)
- Documented how ``bdist_wheel``'s ``py_limited_api`` option controls
  ``abi3`` wheel tagging for extension modules -- by
  :user:`Himanshuagrawal4` (#4741)


Deprecations and Removals
-------------------------

- ``Compiler.spawn`` is deprecated in favor of the new ``Compiler.call``.
``call`` raises native ``subprocess`` exceptions; ``spawn`` remains
as a shim that emits a ``DeprecationWarning`` and translates them
to ``DistutilsExecError``. The MSVC ``spawn`` compatibility shim
for third-party monkeypatches predating the ``env`` argument
(numpy.distutils before 1.19, per pypa/distutils#15) has been
removed. ``distutils.spawn.spawn`` is likewise reduced to a thin
wrapper around ``subprocess.check_call``: it no longer resolves
``cmd[0]`` via ``shutil.which`` (``subprocess`` searches ``PATH``
itself) nor injects ``MACOSX_DEPLOYMENT_TARGET`` (that now lives
with the compilers, the only callers to which it applied). (#5267)
- Building an extension with a ``MACOSX_DEPLOYMENT_TARGET`` lower
than the interpreter's configured value now raises
``compilers.errors.PlatformError`` instead of
``distutils.errors.DistutilsPlatformError`` (the macOS deployment-target
check moved into the compilers package). ``CygwinCCompiler.gcc_version``
returns a ``packaging.version.Version`` rather than the removed
``distutils.version.LooseVersion``. Completing the transition begun
in pypa/distutils#246, ``UnixCCompiler.runtime_library_dir_option``
now returns the ``["-Wl,--enable-new-dtags", "-Wl,-rpath,<dir>"]``
list directly for GNU ld rather than collapsing it into a single
string, and the temporary ``distutils.compat.consolidate_linker_args``
shim has been removed. (#5268)
- The compilers now define their own exception vocabulary instead
of borrowing distutils' framework errors. Language-agnostic exceptions
(``Error``, ``UnknownFileType``, and a new ``PlatformError``) live
at ``distutils.compilers.errors``, leaving room for future
``compilers.<language>`` siblings; the C/C++-specific
``CompileError``/``LinkError``/``LibError``/``PreprocessError``
remain in ``distutils.compilers.C.errors``. The compilers now raise
``compilers.errors.PlatformError`` where they previously raised
``distutils.errors.DistutilsPlatformError``/``DistutilsModuleError``,
and ``compilers._modified.newer`` raises the stdlib ``FileNotFoundError``.
``distutils.errors`` keeps its own framework exceptions and re-exports
the compiler ones (``CCompilerError``, ``CompileError``, etc.) for
backward compatibility; because ``CCompilerError`` is
``compilers.errors.Error``, code catching it (as distutils' top-level
handlers do) still catches the new ``PlatformError``. (#5270)
- ``customize_compiler`` now asserts that the compiler-related
config variables (``CC``, ``CXX``, ``CFLAGS``, etc.) resolve to
strings, raising ``AssertionError`` if any are unexpectedly ``None``
rather than failing later with a less clear error. (pypa/distutils#363)
github-actions Bot pushed a commit to aio-libs/aiojobs that referenced this pull request Aug 11, 2026
Updates the requirements on
[setuptools](https://github.com/pypa/setuptools) to permit the latest
version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v84.0.0</h1>
<h2>Features</h2>
<ul>
<li>Newline-separated <code>keywords</code> and
<code>platforms</code><code>pypa/setuptools#4887</code><code>old
specification &lt;https://peps.python.org/pep-0345/&gt;</code>_
separated items with spaces and the current one uses commas. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4887">#4887</a>)</li>
<li><code>Extension</code><code>pypa/distutils#373</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5022">#5022</a>)</li>
<li>The C compiler modules now emit log messages through their own
<code>compilers.C.*</code> loggers instead of the distutils root logger,
part of decoupling the compilers package from distutils. The logger
names are normalized to a stable <code>compilers.C.*</code> prefix so
they remain constant as the package migrates toward a standalone
<code>compilers.C</code> distribution. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5266">#5266</a>)</li>
<li>The C compilers gained a <code>Compiler.call</code> method -- a thin
wrapper over <code>subprocess.check_call</code> (with macOS
deployment-target env injection) that is the modern replacement for
<code>Compiler.spawn</code>. The compilers no longer depend on
<code>distutils.spawn</code>, <code>distutils.dir_util</code>,
<code>distutils.file_util</code>, <code>distutils._modified</code>, or
<code>distutils.util.execute</code>/<code>split_quoted</code>: the
generic <code>newer</code>/<code>newer_group</code> and
<code>split_quoted</code> helpers are vendored into the
<code>compilers</code> package, and
<code>Compiler.mkpath</code>/<code>move_file</code>/<code>execute</code>
are implemented directly on the standard library
(<code>os.makedirs</code>/<code>shutil.move</code>). The methods are
retained for backward compatibility. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>The compilers no longer depend on <code>distutils.util</code>,
<code>distutils.version</code>, <code>distutils.compat</code>, or
<code>distutils._macos_compat</code>. The platform-identification
helpers
(<code>get_platform</code>/<code>get_host_platform</code>/<code>is_mingw</code>)
now live in <code>distutils.compilers.platform.detect</code> and the
macOS deployment-target logic and <code>compiler_fixup</code> in
<code>distutils.compilers.platform.macos</code>;
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code>. <code>distutils.util</code>
re-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.) (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now read their build configuration from the standard
library's <code>sysconfig</code> instead of
<code>distutils.sysconfig</code>. Per-compiler customization --
previously <code>distutils.sysconfig.customize_compiler</code> -- has
moved into <code>Compiler.configure_system()</code>: a no-op on the base
class, with <code>UnixCCompiler</code> applying the
compiler/flag/archiver settings CPython recorded in
<code>sysconfig</code> (and the usual
<code>CC</code>/<code>CFLAGS</code>/<code>LDSHARED</code>/… environment
overrides). <code>distutils.sysconfig.customize_compiler</code> is
retained as a thin wrapper that calls
<code>compiler.configure_system()</code>. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5269">#5269</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>The MSVC linker now passes its arguments through a response file
when the command line would exceed the Windows maximum length, fixing
failures when linking a large number of objects. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4177">#4177</a>)</li>
<li>The Cygwin and MinGW compilers now pass <code>-O1</code> instead of
a bare <code>-O</code>. The two are equivalent to GCC, but
<code>cc1</code> rejected the bare form when building 32-bit extensions
with <code>-m32</code>. -- by :user:<code>dchaudhari7177</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4873">#4873</a>)</li>
<li><code>copy_file</code><code>pypa/distutils#379</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5079">#5079</a>)</li>
<li>Setuptools wheels no longer bundled the project's own test modules.
-- by :user:<code>itscloud0</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/5212">#5212</a>)</li>
<li><code>build_ext</code> no longer fails when cross-compiling with a
compiler other than MSVC (such as MinGW). <code>Compiler</code> now
provides a no-op
<code>initialize()</code><code>pypa/distutils#399</code></li>
</ul>
<h2>Improved Documentation</h2>
<ul>
<li>Clarified what &quot;correspond exactly to the directory
structure&quot; means in
the <code>packages</code> section of the Package Discovery user guide.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/4109">#4109</a>)</li>
<li>Documented how <code>bdist_wheel</code>'s
<code>py_limited_api</code> option controls
<code>abi3</code> wheel tagging for extension modules -- by
:user:<code>Himanshuagrawal4</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4741">#4741</a>)</li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>Compiler.spawn</code> is deprecated in favor of the new
<code>Compiler.call</code>. <code>call</code> raises native
<code>subprocess</code> exceptions; <code>spawn</code> remains as a shim
that emits a <code>DeprecationWarning</code> and translates them to
<code>DistutilsExecError</code>. The MSVC <code>spawn</code>
compatibility shim for third-party monkeypatches predating the
<code>env</code> argument (numpy.distutils before 1.19, per <a
href="https://redirect.github.com/pypa/distutils/issues/15">pypa/distutils#15</a>)
has been removed. <code>distutils.spawn.spawn</code> is likewise reduced
to a thin wrapper around <code>subprocess.check_call</code>: it no
longer resolves <code>cmd[0]</code> via <code>shutil.which</code>
(<code>subprocess</code> searches <code>PATH</code> itself) nor injects
<code>MACOSX_DEPLOYMENT_TARGET</code> (that now lives with the
compilers, the only callers to which it applied). (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>Building an extension with a <code>MACOSX_DEPLOYMENT_TARGET</code>
lower than the interpreter's configured value now raises
<code>compilers.errors.PlatformError</code> instead of
<code>distutils.errors.DistutilsPlatformError</code> (the macOS
deployment-target check moved into the compilers package).
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code> rather than the removed
<code>distutils.version.LooseVersion</code>. Completing the transition
begun in <a
href="https://redirect.github.com/pypa/distutils/issues/246">pypa/distutils#246</a>,
<code>UnixCCompiler.runtime_library_dir_option</code> now returns the
<code>[&quot;-Wl,--enable-new-dtags&quot;,
&quot;-Wl,-rpath,&lt;dir&gt;&quot;]</code> list directly for GNU ld
rather than collapsing it into a single string, and the temporary
<code>distutils.compat.consolidate_linker_args</code> shim has been
removed. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now define their own exception vocabulary instead of
borrowing distutils' framework errors. Language-agnostic exceptions
(<code>Error</code>, <code>UnknownFileType</code>, and a new
<code>PlatformError</code>) live at
<code>distutils.compilers.errors</code>, leaving room for future
<code>compilers.&lt;language&gt;</code> siblings; the C/C++-specific
<code>CompileError</code>/<code>LinkError</code>/<code>LibError</code>/<code>PreprocessError</code>
remain in <code>distutils.compilers.C.errors</code>. The compilers now
raise <code>compilers.errors.PlatformError</code> where they previously
raised
<code>distutils.errors.DistutilsPlatformError</code>/<code>DistutilsModuleError</code>,
and <code>compilers._modified.newer</code> raises the stdlib
<code>FileNotFoundError</code>. <code>distutils.errors</code> keeps its
own framework exceptions and re-exports the compiler ones
(<code>CCompilerError</code>, <code>CompileError</code>, etc.) for
backward compatibility; because <code>CCompilerError</code> is
<code>compilers.errors.Error</code>, code catching it (as distutils'
top-level handlers do) still catches the new <code>PlatformError</code>.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/5270">#5270</a>)</li>
<li><code>customize_compiler</code> now asserts that the
compiler-related config variables (<code>CC</code>, <code>CXX</code>,
<code>CFLAGS</code>, etc.) resolve to strings, raising
<code>AssertionError</code> if any are unexpectedly
<code>None</code><code>pypa/distutils#363</code></li>
</ul>
<h1>v83.0.0</h1>
<h2>Features</h2>
<ul>
<li>Require Python 3.10 or later.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/72e919a8b10aaafc041205d4e3ae0e6a2e1e5f87"><code>72e919a</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5293">#5293</a>
from pypa/bugfix/integration-pip-flit-backend</li>
<li><a
href="https://github.com/pypa/setuptools/commit/1b2970113fd6cda8d4bcac5a1ef6ff865bff62ee"><code>1b29701</code></a>
Select the top-level pyproject.toml when reading build requirements</li>
<li><a
href="https://github.com/pypa/setuptools/commit/bb1b38189eed960bdb4f4789926472d05e43d335"><code>bb1b381</code></a>
Bump version: 83.0.0 → 84.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ee6fdd710e9f466ea06777b4eca32083fdfc9376"><code>ee6fdd7</code></a>
Sync with distutils @ e8eb87855 (<a
href="https://redirect.github.com/pypa/setuptools/issues/5292">#5292</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2a4a9e4e377ea11a418aa53b9a3cf567fd69df16"><code>2a4a9e4</code></a>
Merge remote-tracking branch 'origin/main' into distutils-e8eb87855</li>
<li><a
href="https://github.com/pypa/setuptools/commit/cbd1195692917f432ddc2b56babbf2e536f4fd68"><code>cbd1195</code></a>
Merge <a
href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li>
<li><a
href="https://github.com/pypa/setuptools/commit/bd3594ebfe6c18e161bbc90ef2a91d19881464b1"><code>bd3594e</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5287">#5287</a>
from Avasam/Configuring-lint.flake8-comprehensions.a...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/f02e90a821fee92ff5ee2bf0d681b70cf24ebbb0"><code>f02e90a</code></a>
Configure C408 to allow dict(a=1) rather than disabling it</li>
<li><a
href="https://github.com/pypa/setuptools/commit/c55f52bdb7f952f9ccbd824100c7830dbed5546f"><code>c55f52b</code></a>
Configuring
lint.flake8-comprehensions.allow-dict-calls-with-keyword-argument...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/e9904b0c7e5e249b535832b88efa847ee097de3a"><code>e9904b0</code></a>
Match the distutils sdist base type for the user_options override</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v83.0.0...v84.0.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Navesz pushed a commit to Navesz/openkartline that referenced this pull request Aug 12, 2026
…in the python-development group (#36)

Updates the requirements on
[setuptools](https://github.com/pypa/setuptools) to permit the latest
version.
Updates `setuptools` to 84.0.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v84.0.0</h1>
<h2>Features</h2>
<ul>
<li>Newline-separated <code>keywords</code> and
<code>platforms</code><code>pypa/setuptools#4887</code><code>old
specification &lt;https://peps.python.org/pep-0345/&gt;</code>_
separated items with spaces and the current one uses commas. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4887">#4887</a>)</li>
<li><code>Extension</code><code>pypa/distutils#373</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5022">#5022</a>)</li>
<li>The C compiler modules now emit log messages through their own
<code>compilers.C.*</code> loggers instead of the distutils root logger,
part of decoupling the compilers package from distutils. The logger
names are normalized to a stable <code>compilers.C.*</code> prefix so
they remain constant as the package migrates toward a standalone
<code>compilers.C</code> distribution. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5266">#5266</a>)</li>
<li>The C compilers gained a <code>Compiler.call</code> method -- a thin
wrapper over <code>subprocess.check_call</code> (with macOS
deployment-target env injection) that is the modern replacement for
<code>Compiler.spawn</code>. The compilers no longer depend on
<code>distutils.spawn</code>, <code>distutils.dir_util</code>,
<code>distutils.file_util</code>, <code>distutils._modified</code>, or
<code>distutils.util.execute</code>/<code>split_quoted</code>: the
generic <code>newer</code>/<code>newer_group</code> and
<code>split_quoted</code> helpers are vendored into the
<code>compilers</code> package, and
<code>Compiler.mkpath</code>/<code>move_file</code>/<code>execute</code>
are implemented directly on the standard library
(<code>os.makedirs</code>/<code>shutil.move</code>). The methods are
retained for backward compatibility. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>The compilers no longer depend on <code>distutils.util</code>,
<code>distutils.version</code>, <code>distutils.compat</code>, or
<code>distutils._macos_compat</code>. The platform-identification
helpers
(<code>get_platform</code>/<code>get_host_platform</code>/<code>is_mingw</code>)
now live in <code>distutils.compilers.platform.detect</code> and the
macOS deployment-target logic and <code>compiler_fixup</code> in
<code>distutils.compilers.platform.macos</code>;
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code>. <code>distutils.util</code>
re-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.) (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now read their build configuration from the standard
library's <code>sysconfig</code> instead of
<code>distutils.sysconfig</code>. Per-compiler customization --
previously <code>distutils.sysconfig.customize_compiler</code> -- has
moved into <code>Compiler.configure_system()</code>: a no-op on the base
class, with <code>UnixCCompiler</code> applying the
compiler/flag/archiver settings CPython recorded in
<code>sysconfig</code> (and the usual
<code>CC</code>/<code>CFLAGS</code>/<code>LDSHARED</code>/… environment
overrides). <code>distutils.sysconfig.customize_compiler</code> is
retained as a thin wrapper that calls
<code>compiler.configure_system()</code>. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5269">#5269</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>The MSVC linker now passes its arguments through a response file
when the command line would exceed the Windows maximum length, fixing
failures when linking a large number of objects. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4177">#4177</a>)</li>
<li>The Cygwin and MinGW compilers now pass <code>-O1</code> instead of
a bare <code>-O</code>. The two are equivalent to GCC, but
<code>cc1</code> rejected the bare form when building 32-bit extensions
with <code>-m32</code>. -- by :user:<code>dchaudhari7177</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4873">#4873</a>)</li>
<li><code>copy_file</code><code>pypa/distutils#379</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5079">#5079</a>)</li>
<li>Setuptools wheels no longer bundled the project's own test modules.
-- by :user:<code>itscloud0</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/5212">#5212</a>)</li>
<li><code>build_ext</code> no longer fails when cross-compiling with a
compiler other than MSVC (such as MinGW). <code>Compiler</code> now
provides a no-op
<code>initialize()</code><code>pypa/distutils#399</code></li>
</ul>
<h2>Improved Documentation</h2>
<ul>
<li>Clarified what &quot;correspond exactly to the directory
structure&quot; means in
the <code>packages</code> section of the Package Discovery user guide.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/4109">#4109</a>)</li>
<li>Documented how <code>bdist_wheel</code>'s
<code>py_limited_api</code> option controls
<code>abi3</code> wheel tagging for extension modules -- by
:user:<code>Himanshuagrawal4</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4741">#4741</a>)</li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>Compiler.spawn</code> is deprecated in favor of the new
<code>Compiler.call</code>. <code>call</code> raises native
<code>subprocess</code> exceptions; <code>spawn</code> remains as a shim
that emits a <code>DeprecationWarning</code> and translates them to
<code>DistutilsExecError</code>. The MSVC <code>spawn</code>
compatibility shim for third-party monkeypatches predating the
<code>env</code> argument (numpy.distutils before 1.19, per <a
href="https://redirect.github.com/pypa/distutils/issues/15">pypa/distutils#15</a>)
has been removed. <code>distutils.spawn.spawn</code> is likewise reduced
to a thin wrapper around <code>subprocess.check_call</code>: it no
longer resolves <code>cmd[0]</code> via <code>shutil.which</code>
(<code>subprocess</code> searches <code>PATH</code> itself) nor injects
<code>MACOSX_DEPLOYMENT_TARGET</code> (that now lives with the
compilers, the only callers to which it applied). (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>Building an extension with a <code>MACOSX_DEPLOYMENT_TARGET</code>
lower than the interpreter's configured value now raises
<code>compilers.errors.PlatformError</code> instead of
<code>distutils.errors.DistutilsPlatformError</code> (the macOS
deployment-target check moved into the compilers package).
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code> rather than the removed
<code>distutils.version.LooseVersion</code>. Completing the transition
begun in <a
href="https://redirect.github.com/pypa/distutils/issues/246">pypa/distutils#246</a>,
<code>UnixCCompiler.runtime_library_dir_option</code> now returns the
<code>[&quot;-Wl,--enable-new-dtags&quot;,
&quot;-Wl,-rpath,&lt;dir&gt;&quot;]</code> list directly for GNU ld
rather than collapsing it into a single string, and the temporary
<code>distutils.compat.consolidate_linker_args</code> shim has been
removed. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now define their own exception vocabulary instead of
borrowing distutils' framework errors. Language-agnostic exceptions
(<code>Error</code>, <code>UnknownFileType</code>, and a new
<code>PlatformError</code>) live at
<code>distutils.compilers.errors</code>, leaving room for future
<code>compilers.&lt;language&gt;</code> siblings; the C/C++-specific
<code>CompileError</code>/<code>LinkError</code>/<code>LibError</code>/<code>PreprocessError</code>
remain in <code>distutils.compilers.C.errors</code>. The compilers now
raise <code>compilers.errors.PlatformError</code> where they previously
raised
<code>distutils.errors.DistutilsPlatformError</code>/<code>DistutilsModuleError</code>,
and <code>compilers._modified.newer</code> raises the stdlib
<code>FileNotFoundError</code>. <code>distutils.errors</code> keeps its
own framework exceptions and re-exports the compiler ones
(<code>CCompilerError</code>, <code>CompileError</code>, etc.) for
backward compatibility; because <code>CCompilerError</code> is
<code>compilers.errors.Error</code>, code catching it (as distutils'
top-level handlers do) still catches the new <code>PlatformError</code>.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/5270">#5270</a>)</li>
<li><code>customize_compiler</code> now asserts that the
compiler-related config variables (<code>CC</code>, <code>CXX</code>,
<code>CFLAGS</code>, etc.) resolve to strings, raising
<code>AssertionError</code> if any are unexpectedly
<code>None</code><code>pypa/distutils#363</code></li>
</ul>
<h1>v83.0.0</h1>
<h2>Features</h2>
<ul>
<li>Require Python 3.10 or later.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/72e919a8b10aaafc041205d4e3ae0e6a2e1e5f87"><code>72e919a</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5293">#5293</a>
from pypa/bugfix/integration-pip-flit-backend</li>
<li><a
href="https://github.com/pypa/setuptools/commit/1b2970113fd6cda8d4bcac5a1ef6ff865bff62ee"><code>1b29701</code></a>
Select the top-level pyproject.toml when reading build requirements</li>
<li><a
href="https://github.com/pypa/setuptools/commit/bb1b38189eed960bdb4f4789926472d05e43d335"><code>bb1b381</code></a>
Bump version: 83.0.0 → 84.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ee6fdd710e9f466ea06777b4eca32083fdfc9376"><code>ee6fdd7</code></a>
Sync with distutils @ e8eb87855 (<a
href="https://redirect.github.com/pypa/setuptools/issues/5292">#5292</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2a4a9e4e377ea11a418aa53b9a3cf567fd69df16"><code>2a4a9e4</code></a>
Merge remote-tracking branch 'origin/main' into distutils-e8eb87855</li>
<li><a
href="https://github.com/pypa/setuptools/commit/cbd1195692917f432ddc2b56babbf2e536f4fd68"><code>cbd1195</code></a>
Merge <a
href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li>
<li><a
href="https://github.com/pypa/setuptools/commit/bd3594ebfe6c18e161bbc90ef2a91d19881464b1"><code>bd3594e</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5287">#5287</a>
from Avasam/Configuring-lint.flake8-comprehensions.a...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/f02e90a821fee92ff5ee2bf0d681b70cf24ebbb0"><code>f02e90a</code></a>
Configure C408 to allow dict(a=1) rather than disabling it</li>
<li><a
href="https://github.com/pypa/setuptools/commit/c55f52bdb7f952f9ccbd824100c7830dbed5546f"><code>c55f52b</code></a>
Configuring
lint.flake8-comprehensions.allow-dict-calls-with-keyword-argument...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/e9904b0c7e5e249b535832b88efa847ee097de3a"><code>e9904b0</code></a>
Match the distutils sdist base type for the user_options override</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v77.0.0...v84.0.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
neu-ro-github-bot Bot pushed a commit to neuro-inc/apolo-cli that referenced this pull request Aug 12, 2026
)

Updates the requirements on
[setuptools](https://github.com/pypa/setuptools) to permit the latest
version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v84.0.0</h1>
<h2>Features</h2>
<ul>
<li>Newline-separated <code>keywords</code> and
<code>platforms</code><code>pypa/setuptools#4887</code><code>old
specification &lt;https://peps.python.org/pep-0345/&gt;</code>_
separated items with spaces and the current one uses commas. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4887">#4887</a>)</li>
<li><code>Extension</code><code>pypa/distutils#373</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5022">#5022</a>)</li>
<li>The C compiler modules now emit log messages through their own
<code>compilers.C.*</code> loggers instead of the distutils root logger,
part of decoupling the compilers package from distutils. The logger
names are normalized to a stable <code>compilers.C.*</code> prefix so
they remain constant as the package migrates toward a standalone
<code>compilers.C</code> distribution. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5266">#5266</a>)</li>
<li>The C compilers gained a <code>Compiler.call</code> method -- a thin
wrapper over <code>subprocess.check_call</code> (with macOS
deployment-target env injection) that is the modern replacement for
<code>Compiler.spawn</code>. The compilers no longer depend on
<code>distutils.spawn</code>, <code>distutils.dir_util</code>,
<code>distutils.file_util</code>, <code>distutils._modified</code>, or
<code>distutils.util.execute</code>/<code>split_quoted</code>: the
generic <code>newer</code>/<code>newer_group</code> and
<code>split_quoted</code> helpers are vendored into the
<code>compilers</code> package, and
<code>Compiler.mkpath</code>/<code>move_file</code>/<code>execute</code>
are implemented directly on the standard library
(<code>os.makedirs</code>/<code>shutil.move</code>). The methods are
retained for backward compatibility. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>The compilers no longer depend on <code>distutils.util</code>,
<code>distutils.version</code>, <code>distutils.compat</code>, or
<code>distutils._macos_compat</code>. The platform-identification
helpers
(<code>get_platform</code>/<code>get_host_platform</code>/<code>is_mingw</code>)
now live in <code>distutils.compilers.platform.detect</code> and the
macOS deployment-target logic and <code>compiler_fixup</code> in
<code>distutils.compilers.platform.macos</code>;
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code>. <code>distutils.util</code>
re-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.) (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now read their build configuration from the standard
library's <code>sysconfig</code> instead of
<code>distutils.sysconfig</code>. Per-compiler customization --
previously <code>distutils.sysconfig.customize_compiler</code> -- has
moved into <code>Compiler.configure_system()</code>: a no-op on the base
class, with <code>UnixCCompiler</code> applying the
compiler/flag/archiver settings CPython recorded in
<code>sysconfig</code> (and the usual
<code>CC</code>/<code>CFLAGS</code>/<code>LDSHARED</code>/… environment
overrides). <code>distutils.sysconfig.customize_compiler</code> is
retained as a thin wrapper that calls
<code>compiler.configure_system()</code>. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5269">#5269</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>The MSVC linker now passes its arguments through a response file
when the command line would exceed the Windows maximum length, fixing
failures when linking a large number of objects. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4177">#4177</a>)</li>
<li>The Cygwin and MinGW compilers now pass <code>-O1</code> instead of
a bare <code>-O</code>. The two are equivalent to GCC, but
<code>cc1</code> rejected the bare form when building 32-bit extensions
with <code>-m32</code>. -- by :user:<code>dchaudhari7177</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4873">#4873</a>)</li>
<li><code>copy_file</code><code>pypa/distutils#379</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5079">#5079</a>)</li>
<li>Setuptools wheels no longer bundled the project's own test modules.
-- by :user:<code>itscloud0</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/5212">#5212</a>)</li>
<li><code>build_ext</code> no longer fails when cross-compiling with a
compiler other than MSVC (such as MinGW). <code>Compiler</code> now
provides a no-op
<code>initialize()</code><code>pypa/distutils#399</code></li>
</ul>
<h2>Improved Documentation</h2>
<ul>
<li>Clarified what &quot;correspond exactly to the directory
structure&quot; means in
the <code>packages</code> section of the Package Discovery user guide.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/4109">#4109</a>)</li>
<li>Documented how <code>bdist_wheel</code>'s
<code>py_limited_api</code> option controls
<code>abi3</code> wheel tagging for extension modules -- by
:user:<code>Himanshuagrawal4</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4741">#4741</a>)</li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>Compiler.spawn</code> is deprecated in favor of the new
<code>Compiler.call</code>. <code>call</code> raises native
<code>subprocess</code> exceptions; <code>spawn</code> remains as a shim
that emits a <code>DeprecationWarning</code> and translates them to
<code>DistutilsExecError</code>. The MSVC <code>spawn</code>
compatibility shim for third-party monkeypatches predating the
<code>env</code> argument (numpy.distutils before 1.19, per <a
href="https://redirect.github.com/pypa/distutils/issues/15">pypa/distutils#15</a>)
has been removed. <code>distutils.spawn.spawn</code> is likewise reduced
to a thin wrapper around <code>subprocess.check_call</code>: it no
longer resolves <code>cmd[0]</code> via <code>shutil.which</code>
(<code>subprocess</code> searches <code>PATH</code> itself) nor injects
<code>MACOSX_DEPLOYMENT_TARGET</code> (that now lives with the
compilers, the only callers to which it applied). (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>Building an extension with a <code>MACOSX_DEPLOYMENT_TARGET</code>
lower than the interpreter's configured value now raises
<code>compilers.errors.PlatformError</code> instead of
<code>distutils.errors.DistutilsPlatformError</code> (the macOS
deployment-target check moved into the compilers package).
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code> rather than the removed
<code>distutils.version.LooseVersion</code>. Completing the transition
begun in <a
href="https://redirect.github.com/pypa/distutils/issues/246">pypa/distutils#246</a>,
<code>UnixCCompiler.runtime_library_dir_option</code> now returns the
<code>[&quot;-Wl,--enable-new-dtags&quot;,
&quot;-Wl,-rpath,&lt;dir&gt;&quot;]</code> list directly for GNU ld
rather than collapsing it into a single string, and the temporary
<code>distutils.compat.consolidate_linker_args</code> shim has been
removed. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now define their own exception vocabulary instead of
borrowing distutils' framework errors. Language-agnostic exceptions
(<code>Error</code>, <code>UnknownFileType</code>, and a new
<code>PlatformError</code>) live at
<code>distutils.compilers.errors</code>, leaving room for future
<code>compilers.&lt;language&gt;</code> siblings; the C/C++-specific
<code>CompileError</code>/<code>LinkError</code>/<code>LibError</code>/<code>PreprocessError</code>
remain in <code>distutils.compilers.C.errors</code>. The compilers now
raise <code>compilers.errors.PlatformError</code> where they previously
raised
<code>distutils.errors.DistutilsPlatformError</code>/<code>DistutilsModuleError</code>,
and <code>compilers._modified.newer</code> raises the stdlib
<code>FileNotFoundError</code>. <code>distutils.errors</code> keeps its
own framework exceptions and re-exports the compiler ones
(<code>CCompilerError</code>, <code>CompileError</code>, etc.) for
backward compatibility; because <code>CCompilerError</code> is
<code>compilers.errors.Error</code>, code catching it (as distutils'
top-level handlers do) still catches the new <code>PlatformError</code>.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/5270">#5270</a>)</li>
<li><code>customize_compiler</code> now asserts that the
compiler-related config variables (<code>CC</code>, <code>CXX</code>,
<code>CFLAGS</code>, etc.) resolve to strings, raising
<code>AssertionError</code> if any are unexpectedly
<code>None</code><code>pypa/distutils#363</code></li>
</ul>
<h1>v83.0.0</h1>
<h2>Features</h2>
<ul>
<li>Require Python 3.10 or later.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/72e919a8b10aaafc041205d4e3ae0e6a2e1e5f87"><code>72e919a</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5293">#5293</a>
from pypa/bugfix/integration-pip-flit-backend</li>
<li><a
href="https://github.com/pypa/setuptools/commit/1b2970113fd6cda8d4bcac5a1ef6ff865bff62ee"><code>1b29701</code></a>
Select the top-level pyproject.toml when reading build requirements</li>
<li><a
href="https://github.com/pypa/setuptools/commit/bb1b38189eed960bdb4f4789926472d05e43d335"><code>bb1b381</code></a>
Bump version: 83.0.0 → 84.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ee6fdd710e9f466ea06777b4eca32083fdfc9376"><code>ee6fdd7</code></a>
Sync with distutils @ e8eb87855 (<a
href="https://redirect.github.com/pypa/setuptools/issues/5292">#5292</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2a4a9e4e377ea11a418aa53b9a3cf567fd69df16"><code>2a4a9e4</code></a>
Merge remote-tracking branch 'origin/main' into distutils-e8eb87855</li>
<li><a
href="https://github.com/pypa/setuptools/commit/cbd1195692917f432ddc2b56babbf2e536f4fd68"><code>cbd1195</code></a>
Merge <a
href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li>
<li><a
href="https://github.com/pypa/setuptools/commit/bd3594ebfe6c18e161bbc90ef2a91d19881464b1"><code>bd3594e</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5287">#5287</a>
from Avasam/Configuring-lint.flake8-comprehensions.a...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/f02e90a821fee92ff5ee2bf0d681b70cf24ebbb0"><code>f02e90a</code></a>
Configure C408 to allow dict(a=1) rather than disabling it</li>
<li><a
href="https://github.com/pypa/setuptools/commit/c55f52bdb7f952f9ccbd824100c7830dbed5546f"><code>c55f52b</code></a>
Configuring
lint.flake8-comprehensions.allow-dict-calls-with-keyword-argument...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/e9904b0c7e5e249b535832b88efa847ee097de3a"><code>e9904b0</code></a>
Match the distutils sdist base type for the user_options override</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v83.0.0...v84.0.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-actions Bot pushed a commit to neuro-inc/platform-reports that referenced this pull request Aug 12, 2026
Bumps [setuptools](https://github.com/pypa/setuptools) from 83.0.0 to
84.0.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v84.0.0</h1>
<h2>Features</h2>
<ul>
<li>Newline-separated <code>keywords</code> and
<code>platforms</code><code>pypa/setuptools#4887</code><code>old
specification &lt;https://peps.python.org/pep-0345/&gt;</code>_
separated items with spaces and the current one uses commas. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4887">#4887</a>)</li>
<li><code>Extension</code><code>pypa/distutils#373</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5022">#5022</a>)</li>
<li>The C compiler modules now emit log messages through their own
<code>compilers.C.*</code> loggers instead of the distutils root logger,
part of decoupling the compilers package from distutils. The logger
names are normalized to a stable <code>compilers.C.*</code> prefix so
they remain constant as the package migrates toward a standalone
<code>compilers.C</code> distribution. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5266">#5266</a>)</li>
<li>The C compilers gained a <code>Compiler.call</code> method -- a thin
wrapper over <code>subprocess.check_call</code> (with macOS
deployment-target env injection) that is the modern replacement for
<code>Compiler.spawn</code>. The compilers no longer depend on
<code>distutils.spawn</code>, <code>distutils.dir_util</code>,
<code>distutils.file_util</code>, <code>distutils._modified</code>, or
<code>distutils.util.execute</code>/<code>split_quoted</code>: the
generic <code>newer</code>/<code>newer_group</code> and
<code>split_quoted</code> helpers are vendored into the
<code>compilers</code> package, and
<code>Compiler.mkpath</code>/<code>move_file</code>/<code>execute</code>
are implemented directly on the standard library
(<code>os.makedirs</code>/<code>shutil.move</code>). The methods are
retained for backward compatibility. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>The compilers no longer depend on <code>distutils.util</code>,
<code>distutils.version</code>, <code>distutils.compat</code>, or
<code>distutils._macos_compat</code>. The platform-identification
helpers
(<code>get_platform</code>/<code>get_host_platform</code>/<code>is_mingw</code>)
now live in <code>distutils.compilers.platform.detect</code> and the
macOS deployment-target logic and <code>compiler_fixup</code> in
<code>distutils.compilers.platform.macos</code>;
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code>. <code>distutils.util</code>
re-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.) (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now read their build configuration from the standard
library's <code>sysconfig</code> instead of
<code>distutils.sysconfig</code>. Per-compiler customization --
previously <code>distutils.sysconfig.customize_compiler</code> -- has
moved into <code>Compiler.configure_system()</code>: a no-op on the base
class, with <code>UnixCCompiler</code> applying the
compiler/flag/archiver settings CPython recorded in
<code>sysconfig</code> (and the usual
<code>CC</code>/<code>CFLAGS</code>/<code>LDSHARED</code>/… environment
overrides). <code>distutils.sysconfig.customize_compiler</code> is
retained as a thin wrapper that calls
<code>compiler.configure_system()</code>. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5269">#5269</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>The MSVC linker now passes its arguments through a response file
when the command line would exceed the Windows maximum length, fixing
failures when linking a large number of objects. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4177">#4177</a>)</li>
<li>The Cygwin and MinGW compilers now pass <code>-O1</code> instead of
a bare <code>-O</code>. The two are equivalent to GCC, but
<code>cc1</code> rejected the bare form when building 32-bit extensions
with <code>-m32</code>. -- by :user:<code>dchaudhari7177</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4873">#4873</a>)</li>
<li><code>copy_file</code><code>pypa/distutils#379</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5079">#5079</a>)</li>
<li>Setuptools wheels no longer bundled the project's own test modules.
-- by :user:<code>itscloud0</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/5212">#5212</a>)</li>
<li><code>build_ext</code> no longer fails when cross-compiling with a
compiler other than MSVC (such as MinGW). <code>Compiler</code> now
provides a no-op
<code>initialize()</code><code>pypa/distutils#399</code></li>
</ul>
<h2>Improved Documentation</h2>
<ul>
<li>Clarified what &quot;correspond exactly to the directory
structure&quot; means in
the <code>packages</code> section of the Package Discovery user guide.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/4109">#4109</a>)</li>
<li>Documented how <code>bdist_wheel</code>'s
<code>py_limited_api</code> option controls
<code>abi3</code> wheel tagging for extension modules -- by
:user:<code>Himanshuagrawal4</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4741">#4741</a>)</li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>Compiler.spawn</code> is deprecated in favor of the new
<code>Compiler.call</code>. <code>call</code> raises native
<code>subprocess</code> exceptions; <code>spawn</code> remains as a shim
that emits a <code>DeprecationWarning</code> and translates them to
<code>DistutilsExecError</code>. The MSVC <code>spawn</code>
compatibility shim for third-party monkeypatches predating the
<code>env</code> argument (numpy.distutils before 1.19, per <a
href="https://redirect.github.com/pypa/distutils/issues/15">pypa/distutils#15</a>)
has been removed. <code>distutils.spawn.spawn</code> is likewise reduced
to a thin wrapper around <code>subprocess.check_call</code>: it no
longer resolves <code>cmd[0]</code> via <code>shutil.which</code>
(<code>subprocess</code> searches <code>PATH</code> itself) nor injects
<code>MACOSX_DEPLOYMENT_TARGET</code> (that now lives with the
compilers, the only callers to which it applied). (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>Building an extension with a <code>MACOSX_DEPLOYMENT_TARGET</code>
lower than the interpreter's configured value now raises
<code>compilers.errors.PlatformError</code> instead of
<code>distutils.errors.DistutilsPlatformError</code> (the macOS
deployment-target check moved into the compilers package).
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code> rather than the removed
<code>distutils.version.LooseVersion</code>. Completing the transition
begun in <a
href="https://redirect.github.com/pypa/distutils/issues/246">pypa/distutils#246</a>,
<code>UnixCCompiler.runtime_library_dir_option</code> now returns the
<code>[&quot;-Wl,--enable-new-dtags&quot;,
&quot;-Wl,-rpath,&lt;dir&gt;&quot;]</code> list directly for GNU ld
rather than collapsing it into a single string, and the temporary
<code>distutils.compat.consolidate_linker_args</code> shim has been
removed. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now define their own exception vocabulary instead of
borrowing distutils' framework errors. Language-agnostic exceptions
(<code>Error</code>, <code>UnknownFileType</code>, and a new
<code>PlatformError</code>) live at
<code>distutils.compilers.errors</code>, leaving room for future
<code>compilers.&lt;language&gt;</code> siblings; the C/C++-specific
<code>CompileError</code>/<code>LinkError</code>/<code>LibError</code>/<code>PreprocessError</code>
remain in <code>distutils.compilers.C.errors</code>. The compilers now
raise <code>compilers.errors.PlatformError</code> where they previously
raised
<code>distutils.errors.DistutilsPlatformError</code>/<code>DistutilsModuleError</code>,
and <code>compilers._modified.newer</code> raises the stdlib
<code>FileNotFoundError</code>. <code>distutils.errors</code> keeps its
own framework exceptions and re-exports the compiler ones
(<code>CCompilerError</code>, <code>CompileError</code>, etc.) for
backward compatibility; because <code>CCompilerError</code> is
<code>compilers.errors.Error</code>, code catching it (as distutils'
top-level handlers do) still catches the new <code>PlatformError</code>.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/5270">#5270</a>)</li>
<li><code>customize_compiler</code> now asserts that the
compiler-related config variables (<code>CC</code>, <code>CXX</code>,
<code>CFLAGS</code>, etc.) resolve to strings, raising
<code>AssertionError</code> if any are unexpectedly
<code>None</code><code>pypa/distutils#363</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/72e919a8b10aaafc041205d4e3ae0e6a2e1e5f87"><code>72e919a</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5293">#5293</a>
from pypa/bugfix/integration-pip-flit-backend</li>
<li><a
href="https://github.com/pypa/setuptools/commit/1b2970113fd6cda8d4bcac5a1ef6ff865bff62ee"><code>1b29701</code></a>
Select the top-level pyproject.toml when reading build requirements</li>
<li><a
href="https://github.com/pypa/setuptools/commit/bb1b38189eed960bdb4f4789926472d05e43d335"><code>bb1b381</code></a>
Bump version: 83.0.0 → 84.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ee6fdd710e9f466ea06777b4eca32083fdfc9376"><code>ee6fdd7</code></a>
Sync with distutils @ e8eb87855 (<a
href="https://redirect.github.com/pypa/setuptools/issues/5292">#5292</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2a4a9e4e377ea11a418aa53b9a3cf567fd69df16"><code>2a4a9e4</code></a>
Merge remote-tracking branch 'origin/main' into distutils-e8eb87855</li>
<li><a
href="https://github.com/pypa/setuptools/commit/cbd1195692917f432ddc2b56babbf2e536f4fd68"><code>cbd1195</code></a>
Merge <a
href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li>
<li><a
href="https://github.com/pypa/setuptools/commit/bd3594ebfe6c18e161bbc90ef2a91d19881464b1"><code>bd3594e</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5287">#5287</a>
from Avasam/Configuring-lint.flake8-comprehensions.a...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/f02e90a821fee92ff5ee2bf0d681b70cf24ebbb0"><code>f02e90a</code></a>
Configure C408 to allow dict(a=1) rather than disabling it</li>
<li><a
href="https://github.com/pypa/setuptools/commit/c55f52bdb7f952f9ccbd824100c7830dbed5546f"><code>c55f52b</code></a>
Configuring
lint.flake8-comprehensions.allow-dict-calls-with-keyword-argument...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/e9904b0c7e5e249b535832b88efa847ee097de3a"><code>e9904b0</code></a>
Match the distutils sdist base type for the user_options override</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v83.0.0...v84.0.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=setuptools&package-manager=pip&previous-version=83.0.0&new-version=84.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-actions Bot pushed a commit to aio-libs/aiosignal that referenced this pull request Aug 12, 2026
…0.0 (#872)

Updates the requirements on
[setuptools](https://github.com/pypa/setuptools) to permit the latest
version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v84.0.0</h1>
<h2>Features</h2>
<ul>
<li>Newline-separated <code>keywords</code> and
<code>platforms</code><code>pypa/setuptools#4887</code><code>old
specification &lt;https://peps.python.org/pep-0345/&gt;</code>_
separated items with spaces and the current one uses commas. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4887">#4887</a>)</li>
<li><code>Extension</code><code>pypa/distutils#373</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5022">#5022</a>)</li>
<li>The C compiler modules now emit log messages through their own
<code>compilers.C.*</code> loggers instead of the distutils root logger,
part of decoupling the compilers package from distutils. The logger
names are normalized to a stable <code>compilers.C.*</code> prefix so
they remain constant as the package migrates toward a standalone
<code>compilers.C</code> distribution. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5266">#5266</a>)</li>
<li>The C compilers gained a <code>Compiler.call</code> method -- a thin
wrapper over <code>subprocess.check_call</code> (with macOS
deployment-target env injection) that is the modern replacement for
<code>Compiler.spawn</code>. The compilers no longer depend on
<code>distutils.spawn</code>, <code>distutils.dir_util</code>,
<code>distutils.file_util</code>, <code>distutils._modified</code>, or
<code>distutils.util.execute</code>/<code>split_quoted</code>: the
generic <code>newer</code>/<code>newer_group</code> and
<code>split_quoted</code> helpers are vendored into the
<code>compilers</code> package, and
<code>Compiler.mkpath</code>/<code>move_file</code>/<code>execute</code>
are implemented directly on the standard library
(<code>os.makedirs</code>/<code>shutil.move</code>). The methods are
retained for backward compatibility. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>The compilers no longer depend on <code>distutils.util</code>,
<code>distutils.version</code>, <code>distutils.compat</code>, or
<code>distutils._macos_compat</code>. The platform-identification
helpers
(<code>get_platform</code>/<code>get_host_platform</code>/<code>is_mingw</code>)
now live in <code>distutils.compilers.platform.detect</code> and the
macOS deployment-target logic and <code>compiler_fixup</code> in
<code>distutils.compilers.platform.macos</code>;
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code>. <code>distutils.util</code>
re-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.) (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now read their build configuration from the standard
library's <code>sysconfig</code> instead of
<code>distutils.sysconfig</code>. Per-compiler customization --
previously <code>distutils.sysconfig.customize_compiler</code> -- has
moved into <code>Compiler.configure_system()</code>: a no-op on the base
class, with <code>UnixCCompiler</code> applying the
compiler/flag/archiver settings CPython recorded in
<code>sysconfig</code> (and the usual
<code>CC</code>/<code>CFLAGS</code>/<code>LDSHARED</code>/… environment
overrides). <code>distutils.sysconfig.customize_compiler</code> is
retained as a thin wrapper that calls
<code>compiler.configure_system()</code>. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5269">#5269</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>The MSVC linker now passes its arguments through a response file
when the command line would exceed the Windows maximum length, fixing
failures when linking a large number of objects. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4177">#4177</a>)</li>
<li>The Cygwin and MinGW compilers now pass <code>-O1</code> instead of
a bare <code>-O</code>. The two are equivalent to GCC, but
<code>cc1</code> rejected the bare form when building 32-bit extensions
with <code>-m32</code>. -- by :user:<code>dchaudhari7177</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4873">#4873</a>)</li>
<li><code>copy_file</code><code>pypa/distutils#379</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5079">#5079</a>)</li>
<li>Setuptools wheels no longer bundled the project's own test modules.
-- by :user:<code>itscloud0</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/5212">#5212</a>)</li>
<li><code>build_ext</code> no longer fails when cross-compiling with a
compiler other than MSVC (such as MinGW). <code>Compiler</code> now
provides a no-op
<code>initialize()</code><code>pypa/distutils#399</code></li>
</ul>
<h2>Improved Documentation</h2>
<ul>
<li>Clarified what &quot;correspond exactly to the directory
structure&quot; means in
the <code>packages</code> section of the Package Discovery user guide.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/4109">#4109</a>)</li>
<li>Documented how <code>bdist_wheel</code>'s
<code>py_limited_api</code> option controls
<code>abi3</code> wheel tagging for extension modules -- by
:user:<code>Himanshuagrawal4</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4741">#4741</a>)</li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>Compiler.spawn</code> is deprecated in favor of the new
<code>Compiler.call</code>. <code>call</code> raises native
<code>subprocess</code> exceptions; <code>spawn</code> remains as a shim
that emits a <code>DeprecationWarning</code> and translates them to
<code>DistutilsExecError</code>. The MSVC <code>spawn</code>
compatibility shim for third-party monkeypatches predating the
<code>env</code> argument (numpy.distutils before 1.19, per <a
href="https://redirect.github.com/pypa/distutils/issues/15">pypa/distutils#15</a>)
has been removed. <code>distutils.spawn.spawn</code> is likewise reduced
to a thin wrapper around <code>subprocess.check_call</code>: it no
longer resolves <code>cmd[0]</code> via <code>shutil.which</code>
(<code>subprocess</code> searches <code>PATH</code> itself) nor injects
<code>MACOSX_DEPLOYMENT_TARGET</code> (that now lives with the
compilers, the only callers to which it applied). (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>Building an extension with a <code>MACOSX_DEPLOYMENT_TARGET</code>
lower than the interpreter's configured value now raises
<code>compilers.errors.PlatformError</code> instead of
<code>distutils.errors.DistutilsPlatformError</code> (the macOS
deployment-target check moved into the compilers package).
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code> rather than the removed
<code>distutils.version.LooseVersion</code>. Completing the transition
begun in <a
href="https://redirect.github.com/pypa/distutils/issues/246">pypa/distutils#246</a>,
<code>UnixCCompiler.runtime_library_dir_option</code> now returns the
<code>[&quot;-Wl,--enable-new-dtags&quot;,
&quot;-Wl,-rpath,&lt;dir&gt;&quot;]</code> list directly for GNU ld
rather than collapsing it into a single string, and the temporary
<code>distutils.compat.consolidate_linker_args</code> shim has been
removed. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now define their own exception vocabulary instead of
borrowing distutils' framework errors. Language-agnostic exceptions
(<code>Error</code>, <code>UnknownFileType</code>, and a new
<code>PlatformError</code>) live at
<code>distutils.compilers.errors</code>, leaving room for future
<code>compilers.&lt;language&gt;</code> siblings; the C/C++-specific
<code>CompileError</code>/<code>LinkError</code>/<code>LibError</code>/<code>PreprocessError</code>
remain in <code>distutils.compilers.C.errors</code>. The compilers now
raise <code>compilers.errors.PlatformError</code> where they previously
raised
<code>distutils.errors.DistutilsPlatformError</code>/<code>DistutilsModuleError</code>,
and <code>compilers._modified.newer</code> raises the stdlib
<code>FileNotFoundError</code>. <code>distutils.errors</code> keeps its
own framework exceptions and re-exports the compiler ones
(<code>CCompilerError</code>, <code>CompileError</code>, etc.) for
backward compatibility; because <code>CCompilerError</code> is
<code>compilers.errors.Error</code>, code catching it (as distutils'
top-level handlers do) still catches the new <code>PlatformError</code>.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/5270">#5270</a>)</li>
<li><code>customize_compiler</code> now asserts that the
compiler-related config variables (<code>CC</code>, <code>CXX</code>,
<code>CFLAGS</code>, etc.) resolve to strings, raising
<code>AssertionError</code> if any are unexpectedly
<code>None</code><code>pypa/distutils#363</code></li>
</ul>
<h1>v83.0.0</h1>
<h2>Features</h2>
<ul>
<li>Require Python 3.10 or later.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/72e919a8b10aaafc041205d4e3ae0e6a2e1e5f87"><code>72e919a</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5293">#5293</a>
from pypa/bugfix/integration-pip-flit-backend</li>
<li><a
href="https://github.com/pypa/setuptools/commit/1b2970113fd6cda8d4bcac5a1ef6ff865bff62ee"><code>1b29701</code></a>
Select the top-level pyproject.toml when reading build requirements</li>
<li><a
href="https://github.com/pypa/setuptools/commit/bb1b38189eed960bdb4f4789926472d05e43d335"><code>bb1b381</code></a>
Bump version: 83.0.0 → 84.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ee6fdd710e9f466ea06777b4eca32083fdfc9376"><code>ee6fdd7</code></a>
Sync with distutils @ e8eb87855 (<a
href="https://redirect.github.com/pypa/setuptools/issues/5292">#5292</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2a4a9e4e377ea11a418aa53b9a3cf567fd69df16"><code>2a4a9e4</code></a>
Merge remote-tracking branch 'origin/main' into distutils-e8eb87855</li>
<li><a
href="https://github.com/pypa/setuptools/commit/cbd1195692917f432ddc2b56babbf2e536f4fd68"><code>cbd1195</code></a>
Merge <a
href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li>
<li><a
href="https://github.com/pypa/setuptools/commit/bd3594ebfe6c18e161bbc90ef2a91d19881464b1"><code>bd3594e</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5287">#5287</a>
from Avasam/Configuring-lint.flake8-comprehensions.a...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/f02e90a821fee92ff5ee2bf0d681b70cf24ebbb0"><code>f02e90a</code></a>
Configure C408 to allow dict(a=1) rather than disabling it</li>
<li><a
href="https://github.com/pypa/setuptools/commit/c55f52bdb7f952f9ccbd824100c7830dbed5546f"><code>c55f52b</code></a>
Configuring
lint.flake8-comprehensions.allow-dict-calls-with-keyword-argument...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/e9904b0c7e5e249b535832b88efa847ee097de3a"><code>e9904b0</code></a>
Match the distutils sdist base type for the user_options override</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v83.0.0...v84.0.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-actions Bot pushed a commit to aio-libs/aiohttp that referenced this pull request Aug 12, 2026
Bumps [setuptools](https://github.com/pypa/setuptools) from 83.0.0 to
84.0.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v84.0.0</h1>
<h2>Features</h2>
<ul>
<li>Newline-separated <code>keywords</code> and
<code>platforms</code><code>pypa/setuptools#4887</code><code>old
specification &lt;https://peps.python.org/pep-0345/&gt;</code>_
separated items with spaces and the current one uses commas. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4887">#4887</a>)</li>
<li><code>Extension</code><code>pypa/distutils#373</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5022">#5022</a>)</li>
<li>The C compiler modules now emit log messages through their own
<code>compilers.C.*</code> loggers instead of the distutils root logger,
part of decoupling the compilers package from distutils. The logger
names are normalized to a stable <code>compilers.C.*</code> prefix so
they remain constant as the package migrates toward a standalone
<code>compilers.C</code> distribution. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5266">#5266</a>)</li>
<li>The C compilers gained a <code>Compiler.call</code> method -- a thin
wrapper over <code>subprocess.check_call</code> (with macOS
deployment-target env injection) that is the modern replacement for
<code>Compiler.spawn</code>. The compilers no longer depend on
<code>distutils.spawn</code>, <code>distutils.dir_util</code>,
<code>distutils.file_util</code>, <code>distutils._modified</code>, or
<code>distutils.util.execute</code>/<code>split_quoted</code>: the
generic <code>newer</code>/<code>newer_group</code> and
<code>split_quoted</code> helpers are vendored into the
<code>compilers</code> package, and
<code>Compiler.mkpath</code>/<code>move_file</code>/<code>execute</code>
are implemented directly on the standard library
(<code>os.makedirs</code>/<code>shutil.move</code>). The methods are
retained for backward compatibility. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>The compilers no longer depend on <code>distutils.util</code>,
<code>distutils.version</code>, <code>distutils.compat</code>, or
<code>distutils._macos_compat</code>. The platform-identification
helpers
(<code>get_platform</code>/<code>get_host_platform</code>/<code>is_mingw</code>)
now live in <code>distutils.compilers.platform.detect</code> and the
macOS deployment-target logic and <code>compiler_fixup</code> in
<code>distutils.compilers.platform.macos</code>;
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code>. <code>distutils.util</code>
re-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.) (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now read their build configuration from the standard
library's <code>sysconfig</code> instead of
<code>distutils.sysconfig</code>. Per-compiler customization --
previously <code>distutils.sysconfig.customize_compiler</code> -- has
moved into <code>Compiler.configure_system()</code>: a no-op on the base
class, with <code>UnixCCompiler</code> applying the
compiler/flag/archiver settings CPython recorded in
<code>sysconfig</code> (and the usual
<code>CC</code>/<code>CFLAGS</code>/<code>LDSHARED</code>/… environment
overrides). <code>distutils.sysconfig.customize_compiler</code> is
retained as a thin wrapper that calls
<code>compiler.configure_system()</code>. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5269">#5269</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>The MSVC linker now passes its arguments through a response file
when the command line would exceed the Windows maximum length, fixing
failures when linking a large number of objects. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4177">#4177</a>)</li>
<li>The Cygwin and MinGW compilers now pass <code>-O1</code> instead of
a bare <code>-O</code>. The two are equivalent to GCC, but
<code>cc1</code> rejected the bare form when building 32-bit extensions
with <code>-m32</code>. -- by :user:<code>dchaudhari7177</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4873">#4873</a>)</li>
<li><code>copy_file</code><code>pypa/distutils#379</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5079">#5079</a>)</li>
<li>Setuptools wheels no longer bundled the project's own test modules.
-- by :user:<code>itscloud0</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/5212">#5212</a>)</li>
<li><code>build_ext</code> no longer fails when cross-compiling with a
compiler other than MSVC (such as MinGW). <code>Compiler</code> now
provides a no-op
<code>initialize()</code><code>pypa/distutils#399</code></li>
</ul>
<h2>Improved Documentation</h2>
<ul>
<li>Clarified what &quot;correspond exactly to the directory
structure&quot; means in
the <code>packages</code> section of the Package Discovery user guide.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/4109">#4109</a>)</li>
<li>Documented how <code>bdist_wheel</code>'s
<code>py_limited_api</code> option controls
<code>abi3</code> wheel tagging for extension modules -- by
:user:<code>Himanshuagrawal4</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4741">#4741</a>)</li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>Compiler.spawn</code> is deprecated in favor of the new
<code>Compiler.call</code>. <code>call</code> raises native
<code>subprocess</code> exceptions; <code>spawn</code> remains as a shim
that emits a <code>DeprecationWarning</code> and translates them to
<code>DistutilsExecError</code>. The MSVC <code>spawn</code>
compatibility shim for third-party monkeypatches predating the
<code>env</code> argument (numpy.distutils before 1.19, per <a
href="https://redirect.github.com/pypa/distutils/issues/15">pypa/distutils#15</a>)
has been removed. <code>distutils.spawn.spawn</code> is likewise reduced
to a thin wrapper around <code>subprocess.check_call</code>: it no
longer resolves <code>cmd[0]</code> via <code>shutil.which</code>
(<code>subprocess</code> searches <code>PATH</code> itself) nor injects
<code>MACOSX_DEPLOYMENT_TARGET</code> (that now lives with the
compilers, the only callers to which it applied). (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>Building an extension with a <code>MACOSX_DEPLOYMENT_TARGET</code>
lower than the interpreter's configured value now raises
<code>compilers.errors.PlatformError</code> instead of
<code>distutils.errors.DistutilsPlatformError</code> (the macOS
deployment-target check moved into the compilers package).
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code> rather than the removed
<code>distutils.version.LooseVersion</code>. Completing the transition
begun in <a
href="https://redirect.github.com/pypa/distutils/issues/246">pypa/distutils#246</a>,
<code>UnixCCompiler.runtime_library_dir_option</code> now returns the
<code>[&quot;-Wl,--enable-new-dtags&quot;,
&quot;-Wl,-rpath,&lt;dir&gt;&quot;]</code> list directly for GNU ld
rather than collapsing it into a single string, and the temporary
<code>distutils.compat.consolidate_linker_args</code> shim has been
removed. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now define their own exception vocabulary instead of
borrowing distutils' framework errors. Language-agnostic exceptions
(<code>Error</code>, <code>UnknownFileType</code>, and a new
<code>PlatformError</code>) live at
<code>distutils.compilers.errors</code>, leaving room for future
<code>compilers.&lt;language&gt;</code> siblings; the C/C++-specific
<code>CompileError</code>/<code>LinkError</code>/<code>LibError</code>/<code>PreprocessError</code>
remain in <code>distutils.compilers.C.errors</code>. The compilers now
raise <code>compilers.errors.PlatformError</code> where they previously
raised
<code>distutils.errors.DistutilsPlatformError</code>/<code>DistutilsModuleError</code>,
and <code>compilers._modified.newer</code> raises the stdlib
<code>FileNotFoundError</code>. <code>distutils.errors</code> keeps its
own framework exceptions and re-exports the compiler ones
(<code>CCompilerError</code>, <code>CompileError</code>, etc.) for
backward compatibility; because <code>CCompilerError</code> is
<code>compilers.errors.Error</code>, code catching it (as distutils'
top-level handlers do) still catches the new <code>PlatformError</code>.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/5270">#5270</a>)</li>
<li><code>customize_compiler</code> now asserts that the
compiler-related config variables (<code>CC</code>, <code>CXX</code>,
<code>CFLAGS</code>, etc.) resolve to strings, raising
<code>AssertionError</code> if any are unexpectedly
<code>None</code><code>pypa/distutils#363</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/72e919a8b10aaafc041205d4e3ae0e6a2e1e5f87"><code>72e919a</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5293">#5293</a>
from pypa/bugfix/integration-pip-flit-backend</li>
<li><a
href="https://github.com/pypa/setuptools/commit/1b2970113fd6cda8d4bcac5a1ef6ff865bff62ee"><code>1b29701</code></a>
Select the top-level pyproject.toml when reading build requirements</li>
<li><a
href="https://github.com/pypa/setuptools/commit/bb1b38189eed960bdb4f4789926472d05e43d335"><code>bb1b381</code></a>
Bump version: 83.0.0 → 84.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ee6fdd710e9f466ea06777b4eca32083fdfc9376"><code>ee6fdd7</code></a>
Sync with distutils @ e8eb87855 (<a
href="https://redirect.github.com/pypa/setuptools/issues/5292">#5292</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2a4a9e4e377ea11a418aa53b9a3cf567fd69df16"><code>2a4a9e4</code></a>
Merge remote-tracking branch 'origin/main' into distutils-e8eb87855</li>
<li><a
href="https://github.com/pypa/setuptools/commit/cbd1195692917f432ddc2b56babbf2e536f4fd68"><code>cbd1195</code></a>
Merge <a
href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li>
<li><a
href="https://github.com/pypa/setuptools/commit/bd3594ebfe6c18e161bbc90ef2a91d19881464b1"><code>bd3594e</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5287">#5287</a>
from Avasam/Configuring-lint.flake8-comprehensions.a...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/f02e90a821fee92ff5ee2bf0d681b70cf24ebbb0"><code>f02e90a</code></a>
Configure C408 to allow dict(a=1) rather than disabling it</li>
<li><a
href="https://github.com/pypa/setuptools/commit/c55f52bdb7f952f9ccbd824100c7830dbed5546f"><code>c55f52b</code></a>
Configuring
lint.flake8-comprehensions.allow-dict-calls-with-keyword-argument...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/e9904b0c7e5e249b535832b88efa847ee097de3a"><code>e9904b0</code></a>
Match the distutils sdist base type for the user_options override</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v83.0.0...v84.0.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=setuptools&package-manager=pip&previous-version=83.0.0&new-version=84.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-actions Bot pushed a commit to aio-libs/aiohttp that referenced this pull request Aug 12, 2026
Bumps [setuptools](https://github.com/pypa/setuptools) from 83.0.0 to
84.0.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v84.0.0</h1>
<h2>Features</h2>
<ul>
<li>Newline-separated <code>keywords</code> and
<code>platforms</code><code>pypa/setuptools#4887</code><code>old
specification &lt;https://peps.python.org/pep-0345/&gt;</code>_
separated items with spaces and the current one uses commas. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4887">#4887</a>)</li>
<li><code>Extension</code><code>pypa/distutils#373</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5022">#5022</a>)</li>
<li>The C compiler modules now emit log messages through their own
<code>compilers.C.*</code> loggers instead of the distutils root logger,
part of decoupling the compilers package from distutils. The logger
names are normalized to a stable <code>compilers.C.*</code> prefix so
they remain constant as the package migrates toward a standalone
<code>compilers.C</code> distribution. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5266">#5266</a>)</li>
<li>The C compilers gained a <code>Compiler.call</code> method -- a thin
wrapper over <code>subprocess.check_call</code> (with macOS
deployment-target env injection) that is the modern replacement for
<code>Compiler.spawn</code>. The compilers no longer depend on
<code>distutils.spawn</code>, <code>distutils.dir_util</code>,
<code>distutils.file_util</code>, <code>distutils._modified</code>, or
<code>distutils.util.execute</code>/<code>split_quoted</code>: the
generic <code>newer</code>/<code>newer_group</code> and
<code>split_quoted</code> helpers are vendored into the
<code>compilers</code> package, and
<code>Compiler.mkpath</code>/<code>move_file</code>/<code>execute</code>
are implemented directly on the standard library
(<code>os.makedirs</code>/<code>shutil.move</code>). The methods are
retained for backward compatibility. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>The compilers no longer depend on <code>distutils.util</code>,
<code>distutils.version</code>, <code>distutils.compat</code>, or
<code>distutils._macos_compat</code>. The platform-identification
helpers
(<code>get_platform</code>/<code>get_host_platform</code>/<code>is_mingw</code>)
now live in <code>distutils.compilers.platform.detect</code> and the
macOS deployment-target logic and <code>compiler_fixup</code> in
<code>distutils.compilers.platform.macos</code>;
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code>. <code>distutils.util</code>
re-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.) (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now read their build configuration from the standard
library's <code>sysconfig</code> instead of
<code>distutils.sysconfig</code>. Per-compiler customization --
previously <code>distutils.sysconfig.customize_compiler</code> -- has
moved into <code>Compiler.configure_system()</code>: a no-op on the base
class, with <code>UnixCCompiler</code> applying the
compiler/flag/archiver settings CPython recorded in
<code>sysconfig</code> (and the usual
<code>CC</code>/<code>CFLAGS</code>/<code>LDSHARED</code>/… environment
overrides). <code>distutils.sysconfig.customize_compiler</code> is
retained as a thin wrapper that calls
<code>compiler.configure_system()</code>. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5269">#5269</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>The MSVC linker now passes its arguments through a response file
when the command line would exceed the Windows maximum length, fixing
failures when linking a large number of objects. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4177">#4177</a>)</li>
<li>The Cygwin and MinGW compilers now pass <code>-O1</code> instead of
a bare <code>-O</code>. The two are equivalent to GCC, but
<code>cc1</code> rejected the bare form when building 32-bit extensions
with <code>-m32</code>. -- by :user:<code>dchaudhari7177</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4873">#4873</a>)</li>
<li><code>copy_file</code><code>pypa/distutils#379</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5079">#5079</a>)</li>
<li>Setuptools wheels no longer bundled the project's own test modules.
-- by :user:<code>itscloud0</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/5212">#5212</a>)</li>
<li><code>build_ext</code> no longer fails when cross-compiling with a
compiler other than MSVC (such as MinGW). <code>Compiler</code> now
provides a no-op
<code>initialize()</code><code>pypa/distutils#399</code></li>
</ul>
<h2>Improved Documentation</h2>
<ul>
<li>Clarified what &quot;correspond exactly to the directory
structure&quot; means in
the <code>packages</code> section of the Package Discovery user guide.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/4109">#4109</a>)</li>
<li>Documented how <code>bdist_wheel</code>'s
<code>py_limited_api</code> option controls
<code>abi3</code> wheel tagging for extension modules -- by
:user:<code>Himanshuagrawal4</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4741">#4741</a>)</li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>Compiler.spawn</code> is deprecated in favor of the new
<code>Compiler.call</code>. <code>call</code> raises native
<code>subprocess</code> exceptions; <code>spawn</code> remains as a shim
that emits a <code>DeprecationWarning</code> and translates them to
<code>DistutilsExecError</code>. The MSVC <code>spawn</code>
compatibility shim for third-party monkeypatches predating the
<code>env</code> argument (numpy.distutils before 1.19, per <a
href="https://redirect.github.com/pypa/distutils/issues/15">pypa/distutils#15</a>)
has been removed. <code>distutils.spawn.spawn</code> is likewise reduced
to a thin wrapper around <code>subprocess.check_call</code>: it no
longer resolves <code>cmd[0]</code> via <code>shutil.which</code>
(<code>subprocess</code> searches <code>PATH</code> itself) nor injects
<code>MACOSX_DEPLOYMENT_TARGET</code> (that now lives with the
compilers, the only callers to which it applied). (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>Building an extension with a <code>MACOSX_DEPLOYMENT_TARGET</code>
lower than the interpreter's configured value now raises
<code>compilers.errors.PlatformError</code> instead of
<code>distutils.errors.DistutilsPlatformError</code> (the macOS
deployment-target check moved into the compilers package).
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code> rather than the removed
<code>distutils.version.LooseVersion</code>. Completing the transition
begun in <a
href="https://redirect.github.com/pypa/distutils/issues/246">pypa/distutils#246</a>,
<code>UnixCCompiler.runtime_library_dir_option</code> now returns the
<code>[&quot;-Wl,--enable-new-dtags&quot;,
&quot;-Wl,-rpath,&lt;dir&gt;&quot;]</code> list directly for GNU ld
rather than collapsing it into a single string, and the temporary
<code>distutils.compat.consolidate_linker_args</code> shim has been
removed. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now define their own exception vocabulary instead of
borrowing distutils' framework errors. Language-agnostic exceptions
(<code>Error</code>, <code>UnknownFileType</code>, and a new
<code>PlatformError</code>) live at
<code>distutils.compilers.errors</code>, leaving room for future
<code>compilers.&lt;language&gt;</code> siblings; the C/C++-specific
<code>CompileError</code>/<code>LinkError</code>/<code>LibError</code>/<code>PreprocessError</code>
remain in <code>distutils.compilers.C.errors</code>. The compilers now
raise <code>compilers.errors.PlatformError</code> where they previously
raised
<code>distutils.errors.DistutilsPlatformError</code>/<code>DistutilsModuleError</code>,
and <code>compilers._modified.newer</code> raises the stdlib
<code>FileNotFoundError</code>. <code>distutils.errors</code> keeps its
own framework exceptions and re-exports the compiler ones
(<code>CCompilerError</code>, <code>CompileError</code>, etc.) for
backward compatibility; because <code>CCompilerError</code> is
<code>compilers.errors.Error</code>, code catching it (as distutils'
top-level handlers do) still catches the new <code>PlatformError</code>.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/5270">#5270</a>)</li>
<li><code>customize_compiler</code> now asserts that the
compiler-related config variables (<code>CC</code>, <code>CXX</code>,
<code>CFLAGS</code>, etc.) resolve to strings, raising
<code>AssertionError</code> if any are unexpectedly
<code>None</code><code>pypa/distutils#363</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/72e919a8b10aaafc041205d4e3ae0e6a2e1e5f87"><code>72e919a</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5293">#5293</a>
from pypa/bugfix/integration-pip-flit-backend</li>
<li><a
href="https://github.com/pypa/setuptools/commit/1b2970113fd6cda8d4bcac5a1ef6ff865bff62ee"><code>1b29701</code></a>
Select the top-level pyproject.toml when reading build requirements</li>
<li><a
href="https://github.com/pypa/setuptools/commit/bb1b38189eed960bdb4f4789926472d05e43d335"><code>bb1b381</code></a>
Bump version: 83.0.0 → 84.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ee6fdd710e9f466ea06777b4eca32083fdfc9376"><code>ee6fdd7</code></a>
Sync with distutils @ e8eb87855 (<a
href="https://redirect.github.com/pypa/setuptools/issues/5292">#5292</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2a4a9e4e377ea11a418aa53b9a3cf567fd69df16"><code>2a4a9e4</code></a>
Merge remote-tracking branch 'origin/main' into distutils-e8eb87855</li>
<li><a
href="https://github.com/pypa/setuptools/commit/cbd1195692917f432ddc2b56babbf2e536f4fd68"><code>cbd1195</code></a>
Merge <a
href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li>
<li><a
href="https://github.com/pypa/setuptools/commit/bd3594ebfe6c18e161bbc90ef2a91d19881464b1"><code>bd3594e</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5287">#5287</a>
from Avasam/Configuring-lint.flake8-comprehensions.a...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/f02e90a821fee92ff5ee2bf0d681b70cf24ebbb0"><code>f02e90a</code></a>
Configure C408 to allow dict(a=1) rather than disabling it</li>
<li><a
href="https://github.com/pypa/setuptools/commit/c55f52bdb7f952f9ccbd824100c7830dbed5546f"><code>c55f52b</code></a>
Configuring
lint.flake8-comprehensions.allow-dict-calls-with-keyword-argument...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/e9904b0c7e5e249b535832b88efa847ee097de3a"><code>e9904b0</code></a>
Match the distutils sdist base type for the user_options override</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v83.0.0...v84.0.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=setuptools&package-manager=pip&previous-version=83.0.0&new-version=84.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ftCLI added a commit to ftCLI/FoundryTools-CLI that referenced this pull request Aug 12, 2026
Updates the requirements on
[setuptools](https://github.com/pypa/setuptools) to permit the latest
version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v84.0.0</h1>
<h2>Features</h2>
<ul>
<li>Newline-separated <code>keywords</code> and
<code>platforms</code><code>pypa/setuptools#4887</code><code>old
specification &lt;https://peps.python.org/pep-0345/&gt;</code>_
separated items with spaces and the current one uses commas. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4887">#4887</a>)</li>
<li><code>Extension</code><code>pypa/distutils#373</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5022">#5022</a>)</li>
<li>The C compiler modules now emit log messages through their own
<code>compilers.C.*</code> loggers instead of the distutils root logger,
part of decoupling the compilers package from distutils. The logger
names are normalized to a stable <code>compilers.C.*</code> prefix so
they remain constant as the package migrates toward a standalone
<code>compilers.C</code> distribution. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5266">#5266</a>)</li>
<li>The C compilers gained a <code>Compiler.call</code> method -- a thin
wrapper over <code>subprocess.check_call</code> (with macOS
deployment-target env injection) that is the modern replacement for
<code>Compiler.spawn</code>. The compilers no longer depend on
<code>distutils.spawn</code>, <code>distutils.dir_util</code>,
<code>distutils.file_util</code>, <code>distutils._modified</code>, or
<code>distutils.util.execute</code>/<code>split_quoted</code>: the
generic <code>newer</code>/<code>newer_group</code> and
<code>split_quoted</code> helpers are vendored into the
<code>compilers</code> package, and
<code>Compiler.mkpath</code>/<code>move_file</code>/<code>execute</code>
are implemented directly on the standard library
(<code>os.makedirs</code>/<code>shutil.move</code>). The methods are
retained for backward compatibility. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>The compilers no longer depend on <code>distutils.util</code>,
<code>distutils.version</code>, <code>distutils.compat</code>, or
<code>distutils._macos_compat</code>. The platform-identification
helpers
(<code>get_platform</code>/<code>get_host_platform</code>/<code>is_mingw</code>)
now live in <code>distutils.compilers.platform.detect</code> and the
macOS deployment-target logic and <code>compiler_fixup</code> in
<code>distutils.compilers.platform.macos</code>;
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code>. <code>distutils.util</code>
re-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.) (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now read their build configuration from the standard
library's <code>sysconfig</code> instead of
<code>distutils.sysconfig</code>. Per-compiler customization --
previously <code>distutils.sysconfig.customize_compiler</code> -- has
moved into <code>Compiler.configure_system()</code>: a no-op on the base
class, with <code>UnixCCompiler</code> applying the
compiler/flag/archiver settings CPython recorded in
<code>sysconfig</code> (and the usual
<code>CC</code>/<code>CFLAGS</code>/<code>LDSHARED</code>/… environment
overrides). <code>distutils.sysconfig.customize_compiler</code> is
retained as a thin wrapper that calls
<code>compiler.configure_system()</code>. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5269">#5269</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>The MSVC linker now passes its arguments through a response file
when the command line would exceed the Windows maximum length, fixing
failures when linking a large number of objects. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4177">#4177</a>)</li>
<li>The Cygwin and MinGW compilers now pass <code>-O1</code> instead of
a bare <code>-O</code>. The two are equivalent to GCC, but
<code>cc1</code> rejected the bare form when building 32-bit extensions
with <code>-m32</code>. -- by :user:<code>dchaudhari7177</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4873">#4873</a>)</li>
<li><code>copy_file</code><code>pypa/distutils#379</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5079">#5079</a>)</li>
<li>Setuptools wheels no longer bundled the project's own test modules.
-- by :user:<code>itscloud0</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/5212">#5212</a>)</li>
<li><code>build_ext</code> no longer fails when cross-compiling with a
compiler other than MSVC (such as MinGW). <code>Compiler</code> now
provides a no-op
<code>initialize()</code><code>pypa/distutils#399</code></li>
</ul>
<h2>Improved Documentation</h2>
<ul>
<li>Clarified what &quot;correspond exactly to the directory
structure&quot; means in
the <code>packages</code> section of the Package Discovery user guide.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/4109">#4109</a>)</li>
<li>Documented how <code>bdist_wheel</code>'s
<code>py_limited_api</code> option controls
<code>abi3</code> wheel tagging for extension modules -- by
:user:<code>Himanshuagrawal4</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4741">#4741</a>)</li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>Compiler.spawn</code> is deprecated in favor of the new
<code>Compiler.call</code>. <code>call</code> raises native
<code>subprocess</code> exceptions; <code>spawn</code> remains as a shim
that emits a <code>DeprecationWarning</code> and translates them to
<code>DistutilsExecError</code>. The MSVC <code>spawn</code>
compatibility shim for third-party monkeypatches predating the
<code>env</code> argument (numpy.distutils before 1.19, per <a
href="https://redirect.github.com/pypa/distutils/issues/15">pypa/distutils#15</a>)
has been removed. <code>distutils.spawn.spawn</code> is likewise reduced
to a thin wrapper around <code>subprocess.check_call</code>: it no
longer resolves <code>cmd[0]</code> via <code>shutil.which</code>
(<code>subprocess</code> searches <code>PATH</code> itself) nor injects
<code>MACOSX_DEPLOYMENT_TARGET</code> (that now lives with the
compilers, the only callers to which it applied). (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>Building an extension with a <code>MACOSX_DEPLOYMENT_TARGET</code>
lower than the interpreter's configured value now raises
<code>compilers.errors.PlatformError</code> instead of
<code>distutils.errors.DistutilsPlatformError</code> (the macOS
deployment-target check moved into the compilers package).
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code> rather than the removed
<code>distutils.version.LooseVersion</code>. Completing the transition
begun in <a
href="https://redirect.github.com/pypa/distutils/issues/246">pypa/distutils#246</a>,
<code>UnixCCompiler.runtime_library_dir_option</code> now returns the
<code>[&quot;-Wl,--enable-new-dtags&quot;,
&quot;-Wl,-rpath,&lt;dir&gt;&quot;]</code> list directly for GNU ld
rather than collapsing it into a single string, and the temporary
<code>distutils.compat.consolidate_linker_args</code> shim has been
removed. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now define their own exception vocabulary instead of
borrowing distutils' framework errors. Language-agnostic exceptions
(<code>Error</code>, <code>UnknownFileType</code>, and a new
<code>PlatformError</code>) live at
<code>distutils.compilers.errors</code>, leaving room for future
<code>compilers.&lt;language&gt;</code> siblings; the C/C++-specific
<code>CompileError</code>/<code>LinkError</code>/<code>LibError</code>/<code>PreprocessError</code>
remain in <code>distutils.compilers.C.errors</code>. The compilers now
raise <code>compilers.errors.PlatformError</code> where they previously
raised
<code>distutils.errors.DistutilsPlatformError</code>/<code>DistutilsModuleError</code>,
and <code>compilers._modified.newer</code> raises the stdlib
<code>FileNotFoundError</code>. <code>distutils.errors</code> keeps its
own framework exceptions and re-exports the compiler ones
(<code>CCompilerError</code>, <code>CompileError</code>, etc.) for
backward compatibility; because <code>CCompilerError</code> is
<code>compilers.errors.Error</code>, code catching it (as distutils'
top-level handlers do) still catches the new <code>PlatformError</code>.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/5270">#5270</a>)</li>
<li><code>customize_compiler</code> now asserts that the
compiler-related config variables (<code>CC</code>, <code>CXX</code>,
<code>CFLAGS</code>, etc.) resolve to strings, raising
<code>AssertionError</code> if any are unexpectedly
<code>None</code><code>pypa/distutils#363</code></li>
</ul>
<h1>v83.0.0</h1>
<h2>Features</h2>
<ul>
<li>Require Python 3.10 or later.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/72e919a8b10aaafc041205d4e3ae0e6a2e1e5f87"><code>72e919a</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5293">#5293</a>
from pypa/bugfix/integration-pip-flit-backend</li>
<li><a
href="https://github.com/pypa/setuptools/commit/1b2970113fd6cda8d4bcac5a1ef6ff865bff62ee"><code>1b29701</code></a>
Select the top-level pyproject.toml when reading build requirements</li>
<li><a
href="https://github.com/pypa/setuptools/commit/bb1b38189eed960bdb4f4789926472d05e43d335"><code>bb1b381</code></a>
Bump version: 83.0.0 → 84.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ee6fdd710e9f466ea06777b4eca32083fdfc9376"><code>ee6fdd7</code></a>
Sync with distutils @ e8eb87855 (<a
href="https://redirect.github.com/pypa/setuptools/issues/5292">#5292</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2a4a9e4e377ea11a418aa53b9a3cf567fd69df16"><code>2a4a9e4</code></a>
Merge remote-tracking branch 'origin/main' into distutils-e8eb87855</li>
<li><a
href="https://github.com/pypa/setuptools/commit/cbd1195692917f432ddc2b56babbf2e536f4fd68"><code>cbd1195</code></a>
Merge <a
href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li>
<li><a
href="https://github.com/pypa/setuptools/commit/bd3594ebfe6c18e161bbc90ef2a91d19881464b1"><code>bd3594e</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5287">#5287</a>
from Avasam/Configuring-lint.flake8-comprehensions.a...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/f02e90a821fee92ff5ee2bf0d681b70cf24ebbb0"><code>f02e90a</code></a>
Configure C408 to allow dict(a=1) rather than disabling it</li>
<li><a
href="https://github.com/pypa/setuptools/commit/c55f52bdb7f952f9ccbd824100c7830dbed5546f"><code>c55f52b</code></a>
Configuring
lint.flake8-comprehensions.allow-dict-calls-with-keyword-argument...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/e9904b0c7e5e249b535832b88efa847ee097de3a"><code>e9904b0</code></a>
Match the distutils sdist base type for the user_options override</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v83.0.0...v84.0.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
fedonman added a commit to qilimanjaro-tech/qilisdk that referenced this pull request Aug 12, 2026
Bumps [setuptools](https://github.com/pypa/setuptools) from 83.0.0 to
84.0.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v84.0.0</h1>
<h2>Features</h2>
<ul>
<li>Newline-separated <code>keywords</code> and
<code>platforms</code><code>pypa/setuptools#4887</code><code>old
specification &lt;https://peps.python.org/pep-0345/&gt;</code>_
separated items with spaces and the current one uses commas. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4887">#4887</a>)</li>
<li><code>Extension</code><code>pypa/distutils#373</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5022">#5022</a>)</li>
<li>The C compiler modules now emit log messages through their own
<code>compilers.C.*</code> loggers instead of the distutils root logger,
part of decoupling the compilers package from distutils. The logger
names are normalized to a stable <code>compilers.C.*</code> prefix so
they remain constant as the package migrates toward a standalone
<code>compilers.C</code> distribution. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5266">#5266</a>)</li>
<li>The C compilers gained a <code>Compiler.call</code> method -- a thin
wrapper over <code>subprocess.check_call</code> (with macOS
deployment-target env injection) that is the modern replacement for
<code>Compiler.spawn</code>. The compilers no longer depend on
<code>distutils.spawn</code>, <code>distutils.dir_util</code>,
<code>distutils.file_util</code>, <code>distutils._modified</code>, or
<code>distutils.util.execute</code>/<code>split_quoted</code>: the
generic <code>newer</code>/<code>newer_group</code> and
<code>split_quoted</code> helpers are vendored into the
<code>compilers</code> package, and
<code>Compiler.mkpath</code>/<code>move_file</code>/<code>execute</code>
are implemented directly on the standard library
(<code>os.makedirs</code>/<code>shutil.move</code>). The methods are
retained for backward compatibility. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>The compilers no longer depend on <code>distutils.util</code>,
<code>distutils.version</code>, <code>distutils.compat</code>, or
<code>distutils._macos_compat</code>. The platform-identification
helpers
(<code>get_platform</code>/<code>get_host_platform</code>/<code>is_mingw</code>)
now live in <code>distutils.compilers.platform.detect</code> and the
macOS deployment-target logic and <code>compiler_fixup</code> in
<code>distutils.compilers.platform.macos</code>;
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code>. <code>distutils.util</code>
re-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.) (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now read their build configuration from the standard
library's <code>sysconfig</code> instead of
<code>distutils.sysconfig</code>. Per-compiler customization --
previously <code>distutils.sysconfig.customize_compiler</code> -- has
moved into <code>Compiler.configure_system()</code>: a no-op on the base
class, with <code>UnixCCompiler</code> applying the
compiler/flag/archiver settings CPython recorded in
<code>sysconfig</code> (and the usual
<code>CC</code>/<code>CFLAGS</code>/<code>LDSHARED</code>/… environment
overrides). <code>distutils.sysconfig.customize_compiler</code> is
retained as a thin wrapper that calls
<code>compiler.configure_system()</code>. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5269">#5269</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>The MSVC linker now passes its arguments through a response file
when the command line would exceed the Windows maximum length, fixing
failures when linking a large number of objects. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4177">#4177</a>)</li>
<li>The Cygwin and MinGW compilers now pass <code>-O1</code> instead of
a bare <code>-O</code>. The two are equivalent to GCC, but
<code>cc1</code> rejected the bare form when building 32-bit extensions
with <code>-m32</code>. -- by :user:<code>dchaudhari7177</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4873">#4873</a>)</li>
<li><code>copy_file</code><code>pypa/distutils#379</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5079">#5079</a>)</li>
<li>Setuptools wheels no longer bundled the project's own test modules.
-- by :user:<code>itscloud0</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/5212">#5212</a>)</li>
<li><code>build_ext</code> no longer fails when cross-compiling with a
compiler other than MSVC (such as MinGW). <code>Compiler</code> now
provides a no-op
<code>initialize()</code><code>pypa/distutils#399</code></li>
</ul>
<h2>Improved Documentation</h2>
<ul>
<li>Clarified what &quot;correspond exactly to the directory
structure&quot; means in
the <code>packages</code> section of the Package Discovery user guide.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/4109">#4109</a>)</li>
<li>Documented how <code>bdist_wheel</code>'s
<code>py_limited_api</code> option controls
<code>abi3</code> wheel tagging for extension modules -- by
:user:<code>Himanshuagrawal4</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4741">#4741</a>)</li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>Compiler.spawn</code> is deprecated in favor of the new
<code>Compiler.call</code>. <code>call</code> raises native
<code>subprocess</code> exceptions; <code>spawn</code> remains as a shim
that emits a <code>DeprecationWarning</code> and translates them to
<code>DistutilsExecError</code>. The MSVC <code>spawn</code>
compatibility shim for third-party monkeypatches predating the
<code>env</code> argument (numpy.distutils before 1.19, per <a
href="https://redirect.github.com/pypa/distutils/issues/15">pypa/distutils#15</a>)
has been removed. <code>distutils.spawn.spawn</code> is likewise reduced
to a thin wrapper around <code>subprocess.check_call</code>: it no
longer resolves <code>cmd[0]</code> via <code>shutil.which</code>
(<code>subprocess</code> searches <code>PATH</code> itself) nor injects
<code>MACOSX_DEPLOYMENT_TARGET</code> (that now lives with the
compilers, the only callers to which it applied). (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>Building an extension with a <code>MACOSX_DEPLOYMENT_TARGET</code>
lower than the interpreter's configured value now raises
<code>compilers.errors.PlatformError</code> instead of
<code>distutils.errors.DistutilsPlatformError</code> (the macOS
deployment-target check moved into the compilers package).
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code> rather than the removed
<code>distutils.version.LooseVersion</code>. Completing the transition
begun in <a
href="https://redirect.github.com/pypa/distutils/issues/246">pypa/distutils#246</a>,
<code>UnixCCompiler.runtime_library_dir_option</code> now returns the
<code>[&quot;-Wl,--enable-new-dtags&quot;,
&quot;-Wl,-rpath,&lt;dir&gt;&quot;]</code> list directly for GNU ld
rather than collapsing it into a single string, and the temporary
<code>distutils.compat.consolidate_linker_args</code> shim has been
removed. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now define their own exception vocabulary instead of
borrowing distutils' framework errors. Language-agnostic exceptions
(<code>Error</code>, <code>UnknownFileType</code>, and a new
<code>PlatformError</code>) live at
<code>distutils.compilers.errors</code>, leaving room for future
<code>compilers.&lt;language&gt;</code> siblings; the C/C++-specific
<code>CompileError</code>/<code>LinkError</code>/<code>LibError</code>/<code>PreprocessError</code>
remain in <code>distutils.compilers.C.errors</code>. The compilers now
raise <code>compilers.errors.PlatformError</code> where they previously
raised
<code>distutils.errors.DistutilsPlatformError</code>/<code>DistutilsModuleError</code>,
and <code>compilers._modified.newer</code> raises the stdlib
<code>FileNotFoundError</code>. <code>distutils.errors</code> keeps its
own framework exceptions and re-exports the compiler ones
(<code>CCompilerError</code>, <code>CompileError</code>, etc.) for
backward compatibility; because <code>CCompilerError</code> is
<code>compilers.errors.Error</code>, code catching it (as distutils'
top-level handlers do) still catches the new <code>PlatformError</code>.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/5270">#5270</a>)</li>
<li><code>customize_compiler</code> now asserts that the
compiler-related config variables (<code>CC</code>, <code>CXX</code>,
<code>CFLAGS</code>, etc.) resolve to strings, raising
<code>AssertionError</code> if any are unexpectedly
<code>None</code><code>pypa/distutils#363</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/72e919a8b10aaafc041205d4e3ae0e6a2e1e5f87"><code>72e919a</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5293">#5293</a>
from pypa/bugfix/integration-pip-flit-backend</li>
<li><a
href="https://github.com/pypa/setuptools/commit/1b2970113fd6cda8d4bcac5a1ef6ff865bff62ee"><code>1b29701</code></a>
Select the top-level pyproject.toml when reading build requirements</li>
<li><a
href="https://github.com/pypa/setuptools/commit/bb1b38189eed960bdb4f4789926472d05e43d335"><code>bb1b381</code></a>
Bump version: 83.0.0 → 84.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ee6fdd710e9f466ea06777b4eca32083fdfc9376"><code>ee6fdd7</code></a>
Sync with distutils @ e8eb87855 (<a
href="https://redirect.github.com/pypa/setuptools/issues/5292">#5292</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2a4a9e4e377ea11a418aa53b9a3cf567fd69df16"><code>2a4a9e4</code></a>
Merge remote-tracking branch 'origin/main' into distutils-e8eb87855</li>
<li><a
href="https://github.com/pypa/setuptools/commit/cbd1195692917f432ddc2b56babbf2e536f4fd68"><code>cbd1195</code></a>
Merge <a
href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li>
<li><a
href="https://github.com/pypa/setuptools/commit/bd3594ebfe6c18e161bbc90ef2a91d19881464b1"><code>bd3594e</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5287">#5287</a>
from Avasam/Configuring-lint.flake8-comprehensions.a...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/f02e90a821fee92ff5ee2bf0d681b70cf24ebbb0"><code>f02e90a</code></a>
Configure C408 to allow dict(a=1) rather than disabling it</li>
<li><a
href="https://github.com/pypa/setuptools/commit/c55f52bdb7f952f9ccbd824100c7830dbed5546f"><code>c55f52b</code></a>
Configuring
lint.flake8-comprehensions.allow-dict-calls-with-keyword-argument...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/e9904b0c7e5e249b535832b88efa847ee097de3a"><code>e9904b0</code></a>
Match the distutils sdist base type for the user_options override</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v83.0.0...v84.0.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=setuptools&package-manager=uv&previous-version=83.0.0&new-version=84.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vyron Vasileiadis <hi@fedonman.com>
joshuawendorf21310 pushed a commit to FusionEMS-Quantum-LLC/Adaptix-Contracts that referenced this pull request Aug 13, 2026
…0.0 (#164)

Updates the requirements on
[setuptools](https://github.com/pypa/setuptools) to permit the latest
version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's
changelog</a>.</em></p>
<blockquote>
<h1>v84.0.0</h1>
<h2>Features</h2>
<ul>
<li>Newline-separated <code>keywords</code> and
<code>platforms</code><code>pypa/setuptools#4887</code><code>old
specification &lt;https://peps.python.org/pep-0345/&gt;</code>_
separated items with spaces and the current one uses commas. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4887">#4887</a>)</li>
<li><code>Extension</code><code>pypa/distutils#373</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5022">#5022</a>)</li>
<li>The C compiler modules now emit log messages through their own
<code>compilers.C.*</code> loggers instead of the distutils root logger,
part of decoupling the compilers package from distutils. The logger
names are normalized to a stable <code>compilers.C.*</code> prefix so
they remain constant as the package migrates toward a standalone
<code>compilers.C</code> distribution. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5266">#5266</a>)</li>
<li>The C compilers gained a <code>Compiler.call</code> method -- a thin
wrapper over <code>subprocess.check_call</code> (with macOS
deployment-target env injection) that is the modern replacement for
<code>Compiler.spawn</code>. The compilers no longer depend on
<code>distutils.spawn</code>, <code>distutils.dir_util</code>,
<code>distutils.file_util</code>, <code>distutils._modified</code>, or
<code>distutils.util.execute</code>/<code>split_quoted</code>: the
generic <code>newer</code>/<code>newer_group</code> and
<code>split_quoted</code> helpers are vendored into the
<code>compilers</code> package, and
<code>Compiler.mkpath</code>/<code>move_file</code>/<code>execute</code>
are implemented directly on the standard library
(<code>os.makedirs</code>/<code>shutil.move</code>). The methods are
retained for backward compatibility. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>The compilers no longer depend on <code>distutils.util</code>,
<code>distutils.version</code>, <code>distutils.compat</code>, or
<code>distutils._macos_compat</code>. The platform-identification
helpers
(<code>get_platform</code>/<code>get_host_platform</code>/<code>is_mingw</code>)
now live in <code>distutils.compilers.platform.detect</code> and the
macOS deployment-target logic and <code>compiler_fixup</code> in
<code>distutils.compilers.platform.macos</code>;
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code>. <code>distutils.util</code>
re-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.) (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now read their build configuration from the standard
library's <code>sysconfig</code> instead of
<code>distutils.sysconfig</code>. Per-compiler customization --
previously <code>distutils.sysconfig.customize_compiler</code> -- has
moved into <code>Compiler.configure_system()</code>: a no-op on the base
class, with <code>UnixCCompiler</code> applying the
compiler/flag/archiver settings CPython recorded in
<code>sysconfig</code> (and the usual
<code>CC</code>/<code>CFLAGS</code>/<code>LDSHARED</code>/… environment
overrides). <code>distutils.sysconfig.customize_compiler</code> is
retained as a thin wrapper that calls
<code>compiler.configure_system()</code>. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5269">#5269</a>)</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>The MSVC linker now passes its arguments through a response file
when the command line would exceed the Windows maximum length, fixing
failures when linking a large number of objects. (<a
href="https://redirect.github.com/pypa/setuptools/issues/4177">#4177</a>)</li>
<li>The Cygwin and MinGW compilers now pass <code>-O1</code> instead of
a bare <code>-O</code>. The two are equivalent to GCC, but
<code>cc1</code> rejected the bare form when building 32-bit extensions
with <code>-m32</code>. -- by :user:<code>dchaudhari7177</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4873">#4873</a>)</li>
<li><code>copy_file</code><code>pypa/distutils#379</code><a
href="https://redirect.github.com/pypa/setuptools/issues/5079">#5079</a>)</li>
<li>Setuptools wheels no longer bundled the project's own test modules.
-- by :user:<code>itscloud0</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/5212">#5212</a>)</li>
<li><code>build_ext</code> no longer fails when cross-compiling with a
compiler other than MSVC (such as MinGW). <code>Compiler</code> now
provides a no-op
<code>initialize()</code><code>pypa/distutils#399</code></li>
</ul>
<h2>Improved Documentation</h2>
<ul>
<li>Clarified what &quot;correspond exactly to the directory
structure&quot; means in
the <code>packages</code> section of the Package Discovery user guide.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/4109">#4109</a>)</li>
<li>Documented how <code>bdist_wheel</code>'s
<code>py_limited_api</code> option controls
<code>abi3</code> wheel tagging for extension modules -- by
:user:<code>Himanshuagrawal4</code> (<a
href="https://redirect.github.com/pypa/setuptools/issues/4741">#4741</a>)</li>
</ul>
<h2>Deprecations and Removals</h2>
<ul>
<li><code>Compiler.spawn</code> is deprecated in favor of the new
<code>Compiler.call</code>. <code>call</code> raises native
<code>subprocess</code> exceptions; <code>spawn</code> remains as a shim
that emits a <code>DeprecationWarning</code> and translates them to
<code>DistutilsExecError</code>. The MSVC <code>spawn</code>
compatibility shim for third-party monkeypatches predating the
<code>env</code> argument (numpy.distutils before 1.19, per <a
href="https://redirect.github.com/pypa/distutils/issues/15">pypa/distutils#15</a>)
has been removed. <code>distutils.spawn.spawn</code> is likewise reduced
to a thin wrapper around <code>subprocess.check_call</code>: it no
longer resolves <code>cmd[0]</code> via <code>shutil.which</code>
(<code>subprocess</code> searches <code>PATH</code> itself) nor injects
<code>MACOSX_DEPLOYMENT_TARGET</code> (that now lives with the
compilers, the only callers to which it applied). (<a
href="https://redirect.github.com/pypa/setuptools/issues/5267">#5267</a>)</li>
<li>Building an extension with a <code>MACOSX_DEPLOYMENT_TARGET</code>
lower than the interpreter's configured value now raises
<code>compilers.errors.PlatformError</code> instead of
<code>distutils.errors.DistutilsPlatformError</code> (the macOS
deployment-target check moved into the compilers package).
<code>CygwinCCompiler.gcc_version</code> returns a
<code>packaging.version.Version</code> rather than the removed
<code>distutils.version.LooseVersion</code>. Completing the transition
begun in <a
href="https://redirect.github.com/pypa/distutils/issues/246">pypa/distutils#246</a>,
<code>UnixCCompiler.runtime_library_dir_option</code> now returns the
<code>[&quot;-Wl,--enable-new-dtags&quot;,
&quot;-Wl,-rpath,&lt;dir&gt;&quot;]</code> list directly for GNU ld
rather than collapsing it into a single string, and the temporary
<code>distutils.compat.consolidate_linker_args</code> shim has been
removed. (<a
href="https://redirect.github.com/pypa/setuptools/issues/5268">#5268</a>)</li>
<li>The compilers now define their own exception vocabulary instead of
borrowing distutils' framework errors. Language-agnostic exceptions
(<code>Error</code>, <code>UnknownFileType</code>, and a new
<code>PlatformError</code>) live at
<code>distutils.compilers.errors</code>, leaving room for future
<code>compilers.&lt;language&gt;</code> siblings; the C/C++-specific
<code>CompileError</code>/<code>LinkError</code>/<code>LibError</code>/<code>PreprocessError</code>
remain in <code>distutils.compilers.C.errors</code>. The compilers now
raise <code>compilers.errors.PlatformError</code> where they previously
raised
<code>distutils.errors.DistutilsPlatformError</code>/<code>DistutilsModuleError</code>,
and <code>compilers._modified.newer</code> raises the stdlib
<code>FileNotFoundError</code>. <code>distutils.errors</code> keeps its
own framework exceptions and re-exports the compiler ones
(<code>CCompilerError</code>, <code>CompileError</code>, etc.) for
backward compatibility; because <code>CCompilerError</code> is
<code>compilers.errors.Error</code>, code catching it (as distutils'
top-level handlers do) still catches the new <code>PlatformError</code>.
(<a
href="https://redirect.github.com/pypa/setuptools/issues/5270">#5270</a>)</li>
<li><code>customize_compiler</code> now asserts that the
compiler-related config variables (<code>CC</code>, <code>CXX</code>,
<code>CFLAGS</code>, etc.) resolve to strings, raising
<code>AssertionError</code> if any are unexpectedly
<code>None</code><code>pypa/distutils#363</code></li>
</ul>
<h1>v83.0.0</h1>
<h2>Features</h2>
<ul>
<li>Require Python 3.10 or later.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypa/setuptools/commit/72e919a8b10aaafc041205d4e3ae0e6a2e1e5f87"><code>72e919a</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5293">#5293</a>
from pypa/bugfix/integration-pip-flit-backend</li>
<li><a
href="https://github.com/pypa/setuptools/commit/1b2970113fd6cda8d4bcac5a1ef6ff865bff62ee"><code>1b29701</code></a>
Select the top-level pyproject.toml when reading build requirements</li>
<li><a
href="https://github.com/pypa/setuptools/commit/bb1b38189eed960bdb4f4789926472d05e43d335"><code>bb1b381</code></a>
Bump version: 83.0.0 → 84.0.0</li>
<li><a
href="https://github.com/pypa/setuptools/commit/ee6fdd710e9f466ea06777b4eca32083fdfc9376"><code>ee6fdd7</code></a>
Sync with distutils @ e8eb87855 (<a
href="https://redirect.github.com/pypa/setuptools/issues/5292">#5292</a>)</li>
<li><a
href="https://github.com/pypa/setuptools/commit/2a4a9e4e377ea11a418aa53b9a3cf567fd69df16"><code>2a4a9e4</code></a>
Merge remote-tracking branch 'origin/main' into distutils-e8eb87855</li>
<li><a
href="https://github.com/pypa/setuptools/commit/cbd1195692917f432ddc2b56babbf2e536f4fd68"><code>cbd1195</code></a>
Merge <a
href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li>
<li><a
href="https://github.com/pypa/setuptools/commit/bd3594ebfe6c18e161bbc90ef2a91d19881464b1"><code>bd3594e</code></a>
Merge pull request <a
href="https://redirect.github.com/pypa/setuptools/issues/5287">#5287</a>
from Avasam/Configuring-lint.flake8-comprehensions.a...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/f02e90a821fee92ff5ee2bf0d681b70cf24ebbb0"><code>f02e90a</code></a>
Configure C408 to allow dict(a=1) rather than disabling it</li>
<li><a
href="https://github.com/pypa/setuptools/commit/c55f52bdb7f952f9ccbd824100c7830dbed5546f"><code>c55f52b</code></a>
Configuring
lint.flake8-comprehensions.allow-dict-calls-with-keyword-argument...</li>
<li><a
href="https://github.com/pypa/setuptools/commit/e9904b0c7e5e249b535832b88efa847ee097de3a"><code>e9904b0</code></a>
Match the distutils sdist base type for the user_options override</li>
<li>Additional commits viewable in <a
href="https://github.com/pypa/setuptools/compare/v82.0.1...v84.0.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants