diff --git a/acme/setup.py b/acme/setup.py index e4a8d97d1..9ebab871c 100644 --- a/acme/setup.py +++ b/acme/setup.py @@ -15,7 +15,6 @@ install_requires = [ 'pyrfc3339', 'pytz>=2019.3', 'requests>=2.20.0', - 'setuptools>=41.6.0', ] docs_extras = [ diff --git a/certbot-apache/setup.py b/certbot-apache/setup.py index 41bad05f9..b3a8be95e 100644 --- a/certbot-apache/setup.py +++ b/certbot-apache/setup.py @@ -11,7 +11,6 @@ install_requires = [ f'certbot>={version}', 'importlib_resources>=1.3.1; python_version < "3.9"', 'python-augeas', - 'setuptools>=41.6.0', ] dev_extras = [ diff --git a/certbot-ci/certbot_integration_tests/utils/certbot_call.py b/certbot-ci/certbot_integration_tests/utils/certbot_call.py index d8c33f7c5..6c42a9c79 100755 --- a/certbot-ci/certbot_integration_tests/utils/certbot_call.py +++ b/certbot-ci/certbot_integration_tests/utils/certbot_call.py @@ -51,7 +51,7 @@ def _prepare_environ(workspace: str) -> Dict[str, str]: # So, pytest is nice, and a little too nice for our usage. # In order to help user to call seamlessly any piece of python code without requiring to - # install it as a full-fledged setuptools distribution for instance, it may inject the path + # install it as a full-fledged Python package for instance, it may inject the path # to the test files into the PYTHONPATH. This allows the python interpreter to import # as modules any python file available at this path. # See https://docs.pytest.org/en/3.2.5/pythonpath.html for the explanation and description. diff --git a/certbot-ci/setup.py b/certbot-ci/setup.py index cee8c4e69..1404cdc02 100644 --- a/certbot-ci/setup.py +++ b/certbot-ci/setup.py @@ -22,7 +22,6 @@ install_requires = [ # requests unvendored its dependencies in version 2.16.0 and this code relies on that for # calling `urllib3.disable_warnings`. 'requests>=2.16.0', - 'setuptools', 'types-python-dateutil', ] diff --git a/certbot-dns-cloudflare/setup.py b/certbot-dns-cloudflare/setup.py index 8b78234b2..54cb11033 100644 --- a/certbot-dns-cloudflare/setup.py +++ b/certbot-dns-cloudflare/setup.py @@ -10,7 +10,6 @@ install_requires = [ # for now, do not upgrade to cloudflare>=2.20 to avoid deprecation warnings and the breaking # changes in version 3.0. see https://github.com/certbot/certbot/issues/9938 'cloudflare>=1.5.1, <2.20', - 'setuptools>=41.6.0', ] if os.environ.get('SNAP_BUILD'): diff --git a/certbot-dns-digitalocean/setup.py b/certbot-dns-digitalocean/setup.py index 948d08a94..05752d63b 100644 --- a/certbot-dns-digitalocean/setup.py +++ b/certbot-dns-digitalocean/setup.py @@ -8,7 +8,6 @@ version = '3.1.0.dev0' install_requires = [ 'python-digitalocean>=1.11', # 1.15.0 or newer is recommended for TTL support - 'setuptools>=41.6.0', ] if os.environ.get('SNAP_BUILD'): diff --git a/certbot-dns-dnsimple/setup.py b/certbot-dns-dnsimple/setup.py index ec59ebcb5..364f894e6 100644 --- a/certbot-dns-dnsimple/setup.py +++ b/certbot-dns-dnsimple/setup.py @@ -10,7 +10,6 @@ install_requires = [ # This version of lexicon is required to address the problem described in # https://github.com/AnalogJ/lexicon/issues/387. 'dns-lexicon>=3.14.1', - 'setuptools>=41.6.0', ] if os.environ.get('SNAP_BUILD'): diff --git a/certbot-dns-dnsmadeeasy/setup.py b/certbot-dns-dnsmadeeasy/setup.py index 2fa7fbdee..1b697e76e 100644 --- a/certbot-dns-dnsmadeeasy/setup.py +++ b/certbot-dns-dnsmadeeasy/setup.py @@ -8,7 +8,6 @@ version = '3.1.0.dev0' install_requires = [ 'dns-lexicon>=3.14.1', - 'setuptools>=41.6.0', ] if os.environ.get('SNAP_BUILD'): diff --git a/certbot-dns-gehirn/setup.py b/certbot-dns-gehirn/setup.py index 3f65dc7a8..9b9f09d07 100644 --- a/certbot-dns-gehirn/setup.py +++ b/certbot-dns-gehirn/setup.py @@ -8,7 +8,6 @@ version = '3.1.0.dev0' install_requires = [ 'dns-lexicon>=3.14.1', - 'setuptools>=41.6.0', ] if os.environ.get('SNAP_BUILD'): diff --git a/certbot-dns-google/setup.py b/certbot-dns-google/setup.py index 0bfcc51d0..bbf78fb8e 100644 --- a/certbot-dns-google/setup.py +++ b/certbot-dns-google/setup.py @@ -9,7 +9,6 @@ version = '3.1.0.dev0' install_requires = [ 'google-api-python-client>=1.6.5', 'google-auth>=2.16.0', - 'setuptools>=41.6.0', ] if os.environ.get('SNAP_BUILD'): diff --git a/certbot-dns-linode/setup.py b/certbot-dns-linode/setup.py index b044dc633..35958f408 100644 --- a/certbot-dns-linode/setup.py +++ b/certbot-dns-linode/setup.py @@ -8,7 +8,6 @@ version = '3.1.0.dev0' install_requires = [ 'dns-lexicon>=3.14.1', - 'setuptools>=41.6.0', ] if os.environ.get('SNAP_BUILD'): diff --git a/certbot-dns-luadns/setup.py b/certbot-dns-luadns/setup.py index 034e64513..8c807af4e 100644 --- a/certbot-dns-luadns/setup.py +++ b/certbot-dns-luadns/setup.py @@ -8,7 +8,6 @@ version = '3.1.0.dev0' install_requires = [ 'dns-lexicon>=3.14.1', - 'setuptools>=41.6.0', ] if os.environ.get('SNAP_BUILD'): diff --git a/certbot-dns-nsone/setup.py b/certbot-dns-nsone/setup.py index 9edefc6d6..3de90ded3 100644 --- a/certbot-dns-nsone/setup.py +++ b/certbot-dns-nsone/setup.py @@ -8,7 +8,6 @@ version = '3.1.0.dev0' install_requires = [ 'dns-lexicon>=3.14.1', - 'setuptools>=41.6.0', ] if os.environ.get('SNAP_BUILD'): diff --git a/certbot-dns-ovh/setup.py b/certbot-dns-ovh/setup.py index f4635b0ea..cea8ffb71 100644 --- a/certbot-dns-ovh/setup.py +++ b/certbot-dns-ovh/setup.py @@ -8,7 +8,6 @@ version = '3.1.0.dev0' install_requires = [ 'dns-lexicon>=3.15.1', - 'setuptools>=41.6.0', ] if os.environ.get('SNAP_BUILD'): diff --git a/certbot-dns-rfc2136/setup.py b/certbot-dns-rfc2136/setup.py index 87ba1f438..3d763382a 100644 --- a/certbot-dns-rfc2136/setup.py +++ b/certbot-dns-rfc2136/setup.py @@ -8,7 +8,6 @@ version = '3.1.0.dev0' install_requires = [ 'dnspython>=1.15.0', - 'setuptools>=41.6.0', ] if os.environ.get('SNAP_BUILD'): diff --git a/certbot-dns-route53/setup.py b/certbot-dns-route53/setup.py index 7040d9430..ad3ecc2f3 100644 --- a/certbot-dns-route53/setup.py +++ b/certbot-dns-route53/setup.py @@ -8,7 +8,6 @@ version = '3.1.0.dev0' install_requires = [ 'boto3>=1.15.15', - 'setuptools>=41.6.0', ] if os.environ.get('SNAP_BUILD'): diff --git a/certbot-dns-sakuracloud/setup.py b/certbot-dns-sakuracloud/setup.py index 417f28bf2..af158fffc 100644 --- a/certbot-dns-sakuracloud/setup.py +++ b/certbot-dns-sakuracloud/setup.py @@ -8,7 +8,6 @@ version = '3.1.0.dev0' install_requires = [ 'dns-lexicon>=3.14.1', - 'setuptools>=41.6.0', ] if os.environ.get('SNAP_BUILD'): diff --git a/certbot-nginx/setup.py b/certbot-nginx/setup.py index d3cf40cfd..43a21db94 100644 --- a/certbot-nginx/setup.py +++ b/certbot-nginx/setup.py @@ -13,7 +13,6 @@ install_requires = [ # pyOpenSSL 23.1.0 is a bad release: https://github.com/pyca/pyopenssl/issues/1199 'PyOpenSSL>=17.5.0,!=23.1.0', 'pyparsing>=2.2.1', - 'setuptools>=41.6.0', ] test_extras = [ diff --git a/certbot/CHANGELOG.md b/certbot/CHANGELOG.md index 868110395..f20ce3839 100644 --- a/certbot/CHANGELOG.md +++ b/certbot/CHANGELOG.md @@ -11,6 +11,8 @@ Certbot adheres to [Semantic Versioning](https://semver.org/). ### Changed * Updated our Docker images to be based on Alpine Linux 3.20. +* Our runtime dependency on setuptools has been dropped from all Certbot + components. ### Fixed diff --git a/certbot/certbot/_internal/plugins/disco.py b/certbot/certbot/_internal/plugins/disco.py index b1ddb6b1a..3c98a7c83 100644 --- a/certbot/certbot/_internal/plugins/disco.py +++ b/certbot/certbot/_internal/plugins/disco.py @@ -176,7 +176,12 @@ class PluginsRegistry(Mapping): @classmethod def find_all(cls) -> 'PluginsRegistry': - """Find plugins using setuptools entry points.""" + """Find plugins using Python package entry points. + + See https://packaging.python.org/en/latest/specifications/entry-points/ for more info on + entry points. + + """ plugins: Dict[str, PluginEntryPoint] = {} plugin_paths_string = os.getenv('CERTBOT_PLUGIN_PATH') plugin_paths = plugin_paths_string.split(':') if plugin_paths_string else [] diff --git a/certbot/setup.py b/certbot/setup.py index 23855854b..27070bd91 100644 --- a/certbot/setup.py +++ b/certbot/setup.py @@ -43,7 +43,6 @@ install_requires = [ # This dependency needs to be added using environment markers to avoid its # installation on Linux. 'pywin32>=300 ; sys_platform == "win32"', - 'setuptools>=41.6.0', ] dev_extras = [ diff --git a/tools/oldest_constraints.txt b/tools/oldest_constraints.txt index 7646d5f9c..03d267b17 100644 --- a/tools/oldest_constraints.txt +++ b/tools/oldest_constraints.txt @@ -7,7 +7,7 @@ beautifulsoup4==4.12.3 ; python_version >= "3.8" and python_version < "3.9" boto3==1.15.15 ; python_version >= "3.8" and python_version < "3.9" botocore==1.18.15 ; python_version >= "3.8" and python_version < "3.9" cachetools==5.5.0 ; python_version >= "3.8" and python_version < "3.9" -certifi==2024.7.4 ; python_version >= "3.8" and python_version < "3.9" +certifi==2024.8.30 ; python_version >= "3.8" and python_version < "3.9" cffi==1.12.3 ; python_version >= "3.8" and python_version < "3.9" chardet==3.0.4 ; python_version >= "3.8" and python_version < "3.9" cloudflare==1.5.1 ; python_version >= "3.8" and python_version < "3.9" @@ -17,14 +17,14 @@ configobj==5.0.6 ; python_version >= "3.8" and python_version < "3.9" coverage==7.6.1 ; python_version >= "3.8" and python_version < "3.9" cryptography==3.2.1 ; python_version >= "3.8" and python_version < "3.9" cython==0.29.37 ; python_version >= "3.8" and python_version < "3.9" -dill==0.3.8 ; python_version >= "3.8" and python_version < "3.9" -distlib==0.3.8 ; python_version >= "3.8" and python_version < "3.9" +dill==0.3.9 ; python_version >= "3.8" and python_version < "3.9" +distlib==0.3.9 ; python_version >= "3.8" and python_version < "3.9" distro==1.0.1 ; python_version >= "3.8" and python_version < "3.9" dns-lexicon==3.15.1 ; python_version >= "3.8" and python_version < "3.9" dnspython==1.15.0 ; python_version >= "3.8" and python_version < "3.9" exceptiongroup==1.2.2 ; python_version >= "3.8" and python_version < "3.9" execnet==2.1.1 ; python_version >= "3.8" and python_version < "3.9" -filelock==3.15.4 ; python_version >= "3.8" and python_version < "3.9" +filelock==3.16.1 ; python_version >= "3.8" and python_version < "3.9" funcsigs==0.4 ; python_version >= "3.8" and python_version < "3.9" future==1.0.0 ; python_version >= "3.8" and python_version < "3.9" google-api-python-client==1.6.5 ; python_version >= "3.8" and python_version < "3.9" @@ -32,7 +32,7 @@ google-auth==2.16.0 ; python_version >= "3.8" and python_version < "3.9" httplib2==0.9.2 ; python_version >= "3.8" and python_version < "3.9" idna==2.6 ; python_version >= "3.8" and python_version < "3.9" importlib-metadata==4.6.4 ; python_version >= "3.8" and python_version < "3.9" -importlib-resources==6.4.4 ; python_version >= "3.8" and python_version < "3.9" +importlib-resources==6.4.5 ; python_version >= "3.8" and python_version < "3.9" iniconfig==2.0.0 ; python_version >= "3.8" and python_version < "3.9" ipaddress==1.0.16 ; python_version >= "3.8" and python_version < "3.9" isort==5.13.2 ; python_version >= "3.8" and python_version < "3.9" @@ -41,59 +41,58 @@ josepy==1.14.0 ; python_version >= "3.8" and python_version < "3.9" logger==1.4 ; python_version >= "3.8" and python_version < "3.9" mccabe==0.7.0 ; python_version >= "3.8" and python_version < "3.9" mypy-extensions==1.0.0 ; python_version >= "3.8" and python_version < "3.9" -mypy==1.11.2 ; python_version >= "3.8" and python_version < "3.9" +mypy==1.13.0 ; python_version >= "3.8" and python_version < "3.9" ndg-httpsclient==0.3.2 ; python_version >= "3.8" and python_version < "3.9" oauth2client==4.1.3 ; python_version >= "3.8" and python_version < "3.9" -packaging==24.1 ; python_version >= "3.8" and python_version < "3.9" +packaging==24.2 ; python_version >= "3.8" and python_version < "3.9" parsedatetime==2.4 ; python_version >= "3.8" and python_version < "3.9" pbr==1.8.0 ; python_version >= "3.8" and python_version < "3.9" -pip==24.2 ; python_version >= "3.8" and python_version < "3.9" -platformdirs==4.2.2 ; python_version >= "3.8" and python_version < "3.9" +pip==24.3.1 ; python_version >= "3.8" and python_version < "3.9" +platformdirs==4.3.6 ; python_version >= "3.8" and python_version < "3.9" pluggy==1.5.0 ; python_version >= "3.8" and python_version < "3.9" ply==3.4 ; python_version >= "3.8" and python_version < "3.9" py==1.11.0 ; python_version >= "3.8" and python_version < "3.9" -pyasn1-modules==0.4.0 ; python_version >= "3.8" and python_version < "3.9" +pyasn1-modules==0.4.1 ; python_version >= "3.8" and python_version < "3.9" pyasn1==0.4.8 ; python_version >= "3.8" and python_version < "3.9" pycparser==2.14 ; python_version >= "3.8" and python_version < "3.9" -pylint==3.2.6 ; python_version >= "3.8" and python_version < "3.9" +pylint==3.2.7 ; python_version >= "3.8" and python_version < "3.9" pyopenssl==17.5.0 ; python_version >= "3.8" and python_version < "3.9" pyotp==2.9.0 ; python_version >= "3.8" and python_version < "3.9" pyparsing==2.2.1 ; python_version >= "3.8" and python_version < "3.9" pyrfc3339==1.0 ; python_version >= "3.8" and python_version < "3.9" pytest-cov==5.0.0 ; python_version >= "3.8" and python_version < "3.9" pytest-xdist==3.6.1 ; python_version >= "3.8" and python_version < "3.9" -pytest==8.3.2 ; python_version >= "3.8" and python_version < "3.9" +pytest==8.3.4 ; python_version >= "3.8" and python_version < "3.9" python-augeas==0.5.0 ; python_version >= "3.8" and python_version < "3.9" python-dateutil==2.9.0.post0 ; python_version >= "3.8" and python_version < "3.9" python-digitalocean==1.11 ; python_version >= "3.8" and python_version < "3.9" pytz==2019.3 ; python_version >= "3.8" and python_version < "3.9" -pywin32==306 ; python_version >= "3.8" and python_version < "3.9" and sys_platform == "win32" +pywin32==308 ; python_version >= "3.8" and python_version < "3.9" and sys_platform == "win32" pyyaml==6.0.2 ; python_version >= "3.8" and python_version < "3.9" requests-file==2.1.0 ; python_version >= "3.8" and python_version < "3.9" requests==2.20.0 ; python_version >= "3.8" and python_version < "3.9" rsa==4.9 ; python_version >= "3.8" and python_version < "3.9" s3transfer==0.3.7 ; python_version >= "3.8" and python_version < "3.9" -setuptools==41.6.0 ; python_version >= "3.8" and python_version < "3.9" +setuptools==75.3.0 ; python_version >= "3.8" and python_version < "3.9" six==1.11.0 ; python_version >= "3.8" and python_version < "3.9" soupsieve==2.6 ; python_version >= "3.8" and python_version < "3.9" tldextract==5.1.2 ; python_version >= "3.8" and python_version < "3.9" -tomli==2.0.1 ; python_version >= "3.8" and python_version < "3.9" +tomli==2.2.1 ; python_version >= "3.8" and python_version < "3.9" tomlkit==0.13.2 ; python_version >= "3.8" and python_version < "3.9" tox==1.9.2 ; python_version >= "3.8" and python_version < "3.9" types-cryptography==3.3.23.2 ; python_version >= "3.8" and python_version < "3.9" types-httplib2==0.22.0.20240310 ; python_version >= "3.8" and python_version < "3.9" types-pyopenssl==23.0.0.0 ; python_version >= "3.8" and python_version < "3.9" -types-pyrfc3339==1.1.1.5 ; python_version >= "3.8" and python_version < "3.9" -types-python-dateutil==2.9.0.20240821 ; python_version >= "3.8" and python_version < "3.9" -types-pytz==2024.1.0.20240417 ; python_version >= "3.8" and python_version < "3.9" -types-pywin32==306.0.0.20240822 ; python_version >= "3.8" and python_version < "3.9" +types-pyrfc3339==2.0.1.20241107 ; python_version >= "3.8" and python_version < "3.9" +types-python-dateutil==2.9.0.20241003 ; python_version >= "3.8" and python_version < "3.9" +types-pytz==2024.2.0.20241003 ; python_version >= "3.8" and python_version < "3.9" +types-pywin32==308.0.0.20241128 ; python_version >= "3.8" and python_version < "3.9" types-requests==2.31.0.6 ; python_version >= "3.8" and python_version < "3.9" -types-setuptools==73.0.0.20240822 ; python_version >= "3.8" and python_version < "3.9" -types-six==1.16.21.20240513 ; python_version >= "3.8" and python_version < "3.9" +types-setuptools==75.6.0.20241126 ; python_version >= "3.8" and python_version < "3.9" types-urllib3==1.26.25.14 ; python_version >= "3.8" and python_version < "3.9" typing-extensions==4.12.2 ; python_version >= "3.8" and python_version < "3.9" uritemplate==3.0.1 ; python_version >= "3.8" and python_version < "3.9" urllib3==1.24.2 ; python_version >= "3.8" and python_version < "3.9" -virtualenv==20.26.3 ; python_version >= "3.8" and python_version < "3.9" -wheel==0.33.6 ; python_version >= "3.8" and python_version < "3.9" -zipp==3.20.1 ; python_version >= "3.8" and python_version < "3.9" +virtualenv==20.28.0 ; python_version >= "3.8" and python_version < "3.9" +wheel==0.45.1 ; python_version >= "3.8" and python_version < "3.9" +zipp==3.20.2 ; python_version >= "3.8" and python_version < "3.9" diff --git a/tools/pinning/oldest/pyproject.toml b/tools/pinning/oldest/pyproject.toml index 1a4d7d71f..15761d683 100644 --- a/tools/pinning/oldest/pyproject.toml +++ b/tools/pinning/oldest/pyproject.toml @@ -76,7 +76,6 @@ python-augeas = "0.5.0" python-digitalocean = "1.11" pytz = "2019.3" requests = "2.20.0" -setuptools = "41.6.0" six = "1.11.0" urllib3 = "1.24.2" @@ -98,10 +97,6 @@ cython = "<3.0" # We add any dependencies that must be specified in this file for any another # reason below. -# wheel 0.34.1+ does not support the version of setuptools pinned above (and -# wheel 0.34.0 is buggy). -wheel = "<0.34.0" - [tool.poetry.dev-dependencies] [build-system]