From 1c5e56d9c7ab04ec9061e1076118eeb9b4eaf3e7 Mon Sep 17 00:00:00 2001 From: Brad Warren Date: Thu, 17 Nov 2022 12:55:27 -0800 Subject: [PATCH] Claim Python 3.11 support and add tests (#9471) * set up 3.11 tests * fixup warnings * sed -i "s/\( *'Pro.*3\.1\)0\(',\)/\10\2\n\11\2/" */setup.py * update changelog --- .../templates/jobs/extended-tests-jobs.yml | 9 ++++++++- .../templates/jobs/standard-tests-jobs.yml | 18 +++++++----------- acme/setup.py | 1 + certbot-apache/setup.py | 1 + certbot-ci/setup.py | 1 + certbot-compatibility-test/setup.py | 1 + certbot-dns-cloudflare/setup.py | 1 + certbot-dns-digitalocean/setup.py | 1 + certbot-dns-dnsimple/setup.py | 1 + certbot-dns-dnsmadeeasy/setup.py | 1 + certbot-dns-gehirn/setup.py | 1 + certbot-dns-google/setup.py | 1 + certbot-dns-linode/setup.py | 1 + certbot-dns-luadns/setup.py | 1 + certbot-dns-nsone/setup.py | 1 + certbot-dns-ovh/setup.py | 1 + certbot-dns-rfc2136/setup.py | 1 + certbot-dns-route53/setup.py | 1 + certbot-dns-sakuracloud/setup.py | 1 + certbot-nginx/setup.py | 1 + certbot/CHANGELOG.md | 1 + certbot/setup.py | 1 + letstest/setup.py | 1 + pytest.ini | 3 +++ windows-installer/setup.py | 1 + 25 files changed, 40 insertions(+), 12 deletions(-) diff --git a/.azure-pipelines/templates/jobs/extended-tests-jobs.yml b/.azure-pipelines/templates/jobs/extended-tests-jobs.yml index 0f732e6c9..45873b835 100644 --- a/.azure-pipelines/templates/jobs/extended-tests-jobs.yml +++ b/.azure-pipelines/templates/jobs/extended-tests-jobs.yml @@ -4,7 +4,7 @@ jobs: - name: IMAGE_NAME value: ubuntu-22.04 - name: PYTHON_VERSION - value: 3.10 + value: 3.11 - group: certbot-common strategy: matrix: @@ -14,6 +14,9 @@ jobs: linux-py39: PYTHON_VERSION: 3.9 TOXENV: py39 + linux-py310: + PYTHON_VERSION: 3.10 + TOXENV: py310 linux-py37-nopin: PYTHON_VERSION: 3.7 TOXENV: py37 @@ -42,6 +45,10 @@ jobs: PYTHON_VERSION: 3.10 TOXENV: integration ACME_SERVER: boulder-v2 + linux-boulder-v2-py311-integration: + PYTHON_VERSION: 3.11 + TOXENV: integration + ACME_SERVER: boulder-v2 nginx-compat: TOXENV: nginx_compat linux-integration-rfc2136: diff --git a/.azure-pipelines/templates/jobs/standard-tests-jobs.yml b/.azure-pipelines/templates/jobs/standard-tests-jobs.yml index cf5e20c0b..c49e22bc1 100644 --- a/.azure-pipelines/templates/jobs/standard-tests-jobs.yml +++ b/.azure-pipelines/templates/jobs/standard-tests-jobs.yml @@ -1,17 +1,16 @@ jobs: - job: test variables: - PYTHON_VERSION: 3.10 + PYTHON_VERSION: 3.11 strategy: matrix: macos-py37-cover: IMAGE_NAME: macOS-12 PYTHON_VERSION: 3.7 TOXENV: py37-cover - macos-py310-cover: + macos-cover: IMAGE_NAME: macOS-12 - PYTHON_VERSION: 3.10 - TOXENV: py310-cover + TOXENV: py3-cover windows-py37: IMAGE_NAME: windows-2019 PYTHON_VERSION: 3.7 @@ -36,17 +35,14 @@ jobs: IMAGE_NAME: ubuntu-22.04 PYTHON_VERSION: 3.7 TOXENV: py37 - linux-py310-cover: + linux-cover: IMAGE_NAME: ubuntu-22.04 - PYTHON_VERSION: 3.10 - TOXENV: py310-cover - linux-py310-lint: + TOXENV: py3-cover + linux-lint: IMAGE_NAME: ubuntu-22.04 - PYTHON_VERSION: 3.10 TOXENV: lint-posix - linux-py310-mypy: + linux-mypy: IMAGE_NAME: ubuntu-22.04 - PYTHON_VERSION: 3.10 TOXENV: mypy-posix linux-integration: IMAGE_NAME: ubuntu-22.04 diff --git a/acme/setup.py b/acme/setup.py index 5c1e42e03..a4161229a 100644 --- a/acme/setup.py +++ b/acme/setup.py @@ -45,6 +45,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', ], diff --git a/certbot-apache/setup.py b/certbot-apache/setup.py index eab74f5e3..2aaa41672 100644 --- a/certbot-apache/setup.py +++ b/certbot-apache/setup.py @@ -38,6 +38,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/certbot-ci/setup.py b/certbot-ci/setup.py index 728c6c707..ec632a471 100644 --- a/certbot-ci/setup.py +++ b/certbot-ci/setup.py @@ -50,6 +50,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', ], diff --git a/certbot-compatibility-test/setup.py b/certbot-compatibility-test/setup.py index 238906efb..5b0850423 100644 --- a/certbot-compatibility-test/setup.py +++ b/certbot-compatibility-test/setup.py @@ -29,6 +29,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', ], diff --git a/certbot-dns-cloudflare/setup.py b/certbot-dns-cloudflare/setup.py index 65eb11399..35b362b03 100644 --- a/certbot-dns-cloudflare/setup.py +++ b/certbot-dns-cloudflare/setup.py @@ -51,6 +51,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/certbot-dns-digitalocean/setup.py b/certbot-dns-digitalocean/setup.py index a51077afe..964a5c343 100644 --- a/certbot-dns-digitalocean/setup.py +++ b/certbot-dns-digitalocean/setup.py @@ -51,6 +51,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/certbot-dns-dnsimple/setup.py b/certbot-dns-dnsimple/setup.py index 6ad861554..e845b569e 100644 --- a/certbot-dns-dnsimple/setup.py +++ b/certbot-dns-dnsimple/setup.py @@ -53,6 +53,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/certbot-dns-dnsmadeeasy/setup.py b/certbot-dns-dnsmadeeasy/setup.py index e1b4989c3..80a5b4daf 100644 --- a/certbot-dns-dnsmadeeasy/setup.py +++ b/certbot-dns-dnsmadeeasy/setup.py @@ -51,6 +51,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/certbot-dns-gehirn/setup.py b/certbot-dns-gehirn/setup.py index 0acad3dba..65afdafd6 100644 --- a/certbot-dns-gehirn/setup.py +++ b/certbot-dns-gehirn/setup.py @@ -51,6 +51,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/certbot-dns-google/setup.py b/certbot-dns-google/setup.py index 86b11fe23..e580871f0 100644 --- a/certbot-dns-google/setup.py +++ b/certbot-dns-google/setup.py @@ -54,6 +54,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/certbot-dns-linode/setup.py b/certbot-dns-linode/setup.py index 51cae0ab6..4d53e7b32 100644 --- a/certbot-dns-linode/setup.py +++ b/certbot-dns-linode/setup.py @@ -51,6 +51,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/certbot-dns-luadns/setup.py b/certbot-dns-luadns/setup.py index cc3cce7ae..246dae2ef 100644 --- a/certbot-dns-luadns/setup.py +++ b/certbot-dns-luadns/setup.py @@ -51,6 +51,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/certbot-dns-nsone/setup.py b/certbot-dns-nsone/setup.py index aef590629..990723a1e 100644 --- a/certbot-dns-nsone/setup.py +++ b/certbot-dns-nsone/setup.py @@ -51,6 +51,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/certbot-dns-ovh/setup.py b/certbot-dns-ovh/setup.py index 1d19ceed4..edce40a25 100644 --- a/certbot-dns-ovh/setup.py +++ b/certbot-dns-ovh/setup.py @@ -51,6 +51,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/certbot-dns-rfc2136/setup.py b/certbot-dns-rfc2136/setup.py index 0c3283ed4..8824f03c4 100644 --- a/certbot-dns-rfc2136/setup.py +++ b/certbot-dns-rfc2136/setup.py @@ -51,6 +51,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/certbot-dns-route53/setup.py b/certbot-dns-route53/setup.py index 51b1a5824..f98f21359 100644 --- a/certbot-dns-route53/setup.py +++ b/certbot-dns-route53/setup.py @@ -51,6 +51,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/certbot-dns-sakuracloud/setup.py b/certbot-dns-sakuracloud/setup.py index d7dda2406..024ff0cd1 100644 --- a/certbot-dns-sakuracloud/setup.py +++ b/certbot-dns-sakuracloud/setup.py @@ -51,6 +51,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/certbot-nginx/setup.py b/certbot-nginx/setup.py index d3d294367..0d3462233 100644 --- a/certbot-nginx/setup.py +++ b/certbot-nginx/setup.py @@ -35,6 +35,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/certbot/CHANGELOG.md b/certbot/CHANGELOG.md index 892841942..7ffd96fda 100644 --- a/certbot/CHANGELOG.md +++ b/certbot/CHANGELOG.md @@ -6,6 +6,7 @@ Certbot adheres to [Semantic Versioning](https://semver.org/). ### Added +* Support for Python 3.11 was added to Certbot and all of its components. * `acme.challenges.HTTP01Response.simple_verify` now accepts a timeout argument which defaults to 30 that causes the verification request to timeout after that many seconds. ### Changed diff --git a/certbot/setup.py b/certbot/setup.py index c6218c08c..fddc7c026 100644 --- a/certbot/setup.py +++ b/certbot/setup.py @@ -133,6 +133,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', 'Topic :: System :: Installation/Setup', diff --git a/letstest/setup.py b/letstest/setup.py index 101b22e31..60434431d 100644 --- a/letstest/setup.py +++ b/letstest/setup.py @@ -20,6 +20,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Security', ], diff --git a/pytest.ini b/pytest.ini index 22beaa54e..3b9c8870f 100644 --- a/pytest.ini +++ b/pytest.ini @@ -18,8 +18,11 @@ # https://github.com/boto/botocore/issues/2550. # 3) pytest-cov uses deprecated functionality in pytest-xdist, to be resolved by # https://github.com/pytest-dev/pytest-cov/issues/557. +# 4) botocore is currently using the cgi module which will be removed from +# Python in version 3.13. See https://github.com/boto/botocore/issues/2803. filterwarnings = error ignore:decodestring\(\) is a deprecated alias:DeprecationWarning:dns ignore:'urllib3.contrib.pyopenssl:DeprecationWarning:botocore ignore:.*rsyncdir:DeprecationWarning + ignore:'cgi' is deprecated:DeprecationWarning:botocore diff --git a/windows-installer/setup.py b/windows-installer/setup.py index 3729052a0..c1f038749 100644 --- a/windows-installer/setup.py +++ b/windows-installer/setup.py @@ -22,6 +22,7 @@ setup( 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', 'Operating System :: Microsoft :: Windows', 'Topic :: Software Development :: Build Tools', ],