NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #708 most downloaded on PyPI
Typing stubs for setuptools
Last release 1 months ago
12 Aug 2026
Release timing varies
gaps range from 8 days to 4 months
Nearly every release is documented
notes for 58 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
173 releases · first in 2021
One column per quarter.
Bump setuptools to 71.1.* and mark pkg_resources as obsolete
Bump setuptools to 71.1.* and mark pkg_resources as obsolete (#12397)
Bump setuptools to 71.0.*
Bump setuptools to 71.0.* (#12381)
[stubsabot] Bump setuptools to 70.3.*
[stubsabot] Bump setuptools to 70.3.* (#12308)
Release: https://pypi.org/pypi/setuptools/70.3.0 Repository: https://github.com/pypa/setuptools Typeshed stubs: https://github.com/python/typeshed/tree/main/stubs/setuptools Changelog: https://setuptools.pypa.io/en/stable/history.html Diff: https://github.com/pypa/setuptools/compare/v70.2.0...v70.3.0
Stubsabot analysis of the diff between the two releases:
setuptools/_distutils/sysconfig.py.If stubtest fails for this PR:
Note that you will need to close and re-open the PR in order to trigger CI
Co-authored-by: stubsabot <>
Bump setuptools to 70.2.*
Bump setuptools to 70.2.* (#12261)
Update setuptools to v70.1.1
Update setuptools to v70.1.1 (#12215)
[setuptools] Update to 71.1.*
[setuptools] Update to 71.1.* (#12176)
Small fix for pkg_resources StrPath
Small fix for pkg_resources StrPath (#12015)
Make shutil.rmtree.onexc parameter optional
distutils & setuptools: Relax path related params
distutils & setuptools: Relax path related params (#11948)
Co-authored-by: Jelle Zijlstra jelle.zijlstra@gmail.com
Make distutils.dist.Distribution.get_command_obj not return None by default
distutils: improve boolean parameters with int defaults
distutils: improve boolean parameters with int defaults (#11928)
Avoid using new _typeshed protocol in pkg_resources for now
Add precise values for enum members where possible
Add precise values for enum members where possible (#11299)
Co-authored-by: Jelle Zijlstra jelle.zijlstra@gmail.com Co-authored-by: Alex Waygood alex.waygood@gmail.com
Ensure that distutils and setuptools._distutils stay consistent
Add distutils as a top-level package included with types-setuptools
Bump setuptools to 69.2.*
Bump setuptools to 69.2.* (#11603)
pkg_resources: Make _InstallerType stricter and generic
pkg_resources: Make _InstallerType stricter and generic (#11527)
Bump mypy to 1.9, add to json.encoder, small fixups (#11549)
Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
Use strict pyright configs for pkg_resources
pkg_resources: Remove stray Anys and use more Self & NoReturn types
pkg_resources: Remove stray Anys and use more Self & NoReturn types (#11528)
pkg_resources: Remove type-only _Importer class
setuptools & pkg_resources: Complete VendorImporter class
pkg_resources: Reorder names to be closer to implementation
pkg_resources: Reorder names to be closer to implementation (#11493)
Improve typing of sysconfig.get_config_var(s)
Improve typing of sysconfig.get_config_var(s) (#11454)
fix: typo on setuptools
fix: typo on setuptools (#11432)
Bump setuptools to 69.1.*
Bump setuptools to 69.1.* (#11423)
Add missing long_description_content_type kwarg to setuptools
Add missing long_description_content_type kwarg to setuptools (#11309)
Fix types for setuptools._distutils.ccompiler.CCompiler.compile
Fix types for setuptools._distutils.ccompiler.CCompiler.compile (#11275)
Update typing_extensions imports in third-party stubs
Update typing_extensions imports in third-party stubs (#11245)
Bump setuptools to 69.0.* (#11069) Co-authored-by: Avasam
Bump setuptools to 69.0.* (#11069)
Co-authored-by: Avasam samuel.06@hotmail.com
Third-party stubs: remove unused type: ignores
Third-party stubs: remove unused type: ignores (#11063)
Bump flake8-pyi to 23.11.0
Bump flake8-pyi to 23.11.0 (#10997)
[stubsabot] Bump setuptools to 68.2.*
[stubsabot] Bump setuptools to 68.2.* (#10674)
Release: https://pypi.org/pypi/setuptools/68.2.0 Homepage: https://github.com/pypa/setuptools Repository: https://github.com/pypa/setuptools Changelog: https://setuptools.pypa.io/en/stable/history.html Diff: https://github.com/pypa/setuptools/compare/v68.1.2...v68.2.0
Stubsabot analysis of the diff between the two releases:
setuptools/tests/test_core_metadata.py.setuptools/__init__.py, setuptools/command/editable_wheel.py, setuptools/command/egg_info.py, setuptools/depends.py, setuptools/dist.py, setuptools/monkey.py, setuptools/namespaces.py.setuptools: add various missing objects and annotations
setuptools: add various missing objects and annotations (#10639)
[stubsabot] Bump setuptools to 68.1.*
[stubsabot] Bump setuptools to 68.1.* (#10588)
Release: https://pypi.org/pypi/setuptools/68.1.0 Homepage: https://github.com/pypa/setuptools Repository: https://github.com/pypa/setuptools Changelog: https://setuptools.pypa.io/en/stable/history.html Diff: https://github.com/pypa/setuptools/compare/v68.0.0...v68.1.0
Stubsabot analysis of the diff between the two releases:
Add an upstream_repository field to METADATA.toml
Add an upstream_repository field to METADATA.toml (#10487)
Closes: #10478
Add stubs for pkg_resources._vendor.packaging
Add stubs for pkg_resources._vendor.packaging (#10423)
Bring back a few setuptools._distutils files
Bring back a few setuptools._distutils files (#10401)
Any -> Incomplete in a few files
Bump setuptools to 68.0 (#10339)
Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
[stubsabot] Bump setuptools to 67.8.*
[stubsabot] Bump setuptools to 67.8.* (#10194)
Release: https://pypi.org/pypi/setuptools/67.8.0 Homepage: https://github.com/pypa/setuptools Changelog: https://setuptools.pypa.io/en/stable/history.html Diff: https://github.com/pypa/setuptools/compare/v67.7.2...v67.8.0
Stubsabot analysis of the diff between the two releases:
setuptools/command/easy_install.py, setuptools/version.py.Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
Don't ignore missing stubs in setuptools
Don't ignore missing stubs in setuptools (#10058)
Add partial_stub metadata field
Add partial_stub metadata field (#10157)
Avoid unnecessary forward refs in class definitions
Avoid unnecessary forward refs in class definitions (#10124)
setuptools: bump to 67.7 (#10069) Fixes #10067 Co-authored-by: Alex Waygood
Add missing exception classes in setuptools.errors
Add missing exception classes in setuptools.errors (#10057)
Co-authored-by: AlexWaygood alex.waygood@gmail.com
google-cloud-ndb, paramiko, setuptools: remove unnecessary = ...s
google-cloud-ndb, paramiko, setuptools: remove unnecessary = ...s (#10011)
Add defaults for third-party stubs Q-T
Add defaults for third-party stubs Q-T (#9959)
distutils/setuptools: Don't use wildcards for allowlist entries
distutils/setuptools: Don't use wildcards for allowlist entries (#9900)
Fill out more annotations for distutils & setuptools dist (#9895)
Signed-off-by: Henry Schreiner henryschreineriii@gmail.com Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com Co-authored-by: Jelle Zijlstra jelle.zijlstra@gmail.com
[setuptools] Fully annotate Extension.__init__
[setuptools] Fully annotate Extension.init (#9899)
Add defaults to distutils.Extension.init
[distutils] Add generated methods to Distribution
[distutils] Add generated methods to Distribution (#9896)
distutils.command.build_ext: add more annotations to get_ext_* methods
distutils.command.build_ext: add more annotations to get_ext_* methods (#9894)
Signed-off-by: Henry Schreiner henryschreineriii@gmail.com
Add missing distribution attribute to distutils.cmd.Command (#9893)
Signed-off-by: Henry Schreiner henryschreineriii@gmail.com
Add remaining types to setuptools.build_meta
Add remaining types to setuptools.build_meta (#9890)
Signed-off-by: Henry Schreiner henryschreineriii@gmail.com Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
[stubsabot] Bump setuptools to 67.6.*
[stubsabot] Bump setuptools to 67.6.* (#9858)
Release: https://pypi.org/pypi/setuptools/67.6.0 Homepage: https://github.com/pypa/setuptools Changelog: https://setuptools.pypa.io/en/stable/history.html Diff: https://github.com/pypa/setuptools/compare/v67.5.1...v67.6.0
Stubsabot analysis of the diff between the two releases:
setuptools/wheel.py.Update pkg_resources-stubs for use in pytype_test
Update pkg_resources-stubs for use in pytype_test (#9747)
Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
[stubsabot] Bump setuptools to 67.5.* (#9841)
Release: https://pypi.org/pypi/setuptools/67.5.0 Homepage: https://github.com/pypa/setuptools Changelog: https://setuptools.pypa.io/en/stable/history.html Diff: https://github.com/pypa/setuptools/compare/v67.4.0...v67.5.0
Stubsabot analysis of the diff between the two releases:
pkg_resources/__init__.py.Remove most of setuptools._distutils
Remove most of setuptools._distutils (#9795)
Improve many __(a)exit__ annotations
Improve many __(a)exit__ annotations (#9696)
Update Unused parameters in stubs/
Update Unused parameters in stubs/ (#9704)
Update _Unused TypeAlias
Update object | None params
Replace unused object parameters with Unused alias
[stubsabot] Bump setuptools to 67.4.*
[stubsabot] Bump setuptools to 67.4.* (#9794)
Release: https://pypi.org/pypi/setuptools/67.4.0 Homepage: https://github.com/pypa/setuptools Changelog: https://setuptools.pypa.io/en/stable/history.html Diff: https://github.com/pypa/setuptools/compare/v67.3.3...v67.4.0
Stubsabot analysis of the diff between the two releases:
Stubtest settings: change ignore_missing_stub default to false
Stubtest settings: change ignore_missing_stub default to false (#9779)
If you're reading about this commit from an autogenerated changelog entry, this should have no user-visible impact on how the stubs are interpreted by a type checker; it's just an internal change to how typeshed's tests work.
Use typing_extensions.Self instead of _typeshed.Self
Use typing_extensions.Self instead of _typeshed.Self (#9702)
[stubsabot] Bump setuptools to 67.3.*
[stubsabot] Bump setuptools to 67.3.* (#9738)
Your coding agent can read these notes before it upgrades. Set up the MCP server →