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/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/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]