From 3db8e2d05fd17858e4c2b54ad2813a26e6112d5b Mon Sep 17 00:00:00 2001 From: Tim Burke Date: Thu, 28 Aug 2025 10:47:25 -0700 Subject: [PATCH] Clean up some py36 infra - Drop py36 versions from py3-constraints.txt - Remove py36 tox environment Forgot to do this when we dropped py36 support. Signed-off-by: Tim Burke Change-Id: I0233e1dd036b9a420c815fec3c9632d2967b934e --- py3-constraints.txt | 65 --------------------------------------------- tox.ini | 20 +++++--------- 2 files changed, 7 insertions(+), 78 deletions(-) diff --git a/py3-constraints.txt b/py3-constraints.txt index a94f312b07..e947dda139 100644 --- a/py3-constraints.txt +++ b/py3-constraints.txt @@ -1,117 +1,88 @@ GitPython===3.1.45;python_version>='3.7' -GitPython===3.1.18;python_version=='3.6' PasteDeploy===3.1.0;python_version>='3.7' -PasteDeploy===2.1.1;python_version=='3.6' PyJWT===2.10.1;python_version>='3.9' PyJWT===2.9.0;python_version=='3.8' # PyJWT only required for keystonemiddleware>10, which requires python>=3.8 PyYAML===6.0.2;python_version>='3.8' PyYAML===6.0.1;python_version=='3.7' -PyYAML===6.0.1;python_version=='3.6' Pygments===2.19.2;python_version>='3.8' Pygments===2.17.2;python_version=='3.7' WebOb===1.8.9 attrs===25.3.0;python_version>='3.8' attrs===24.2.0;python_version=='3.7' -attrs===22.2.0;python_version=='3.6' autopage===0.5.2 bandit===1.8.6;python_version>='3.9' bandit===1.7.10;python_version=='3.8' bandit===1.7.5;python_version=='3.7' -bandit===1.7.1;python_version=='3.6' boto3===1.40.19;python_version>='3.9' boto3===1.37.38;python_version=='3.8' boto3===1.33.13;python_version=='3.7' -boto3===1.23.10;python_version=='3.6' botocore===1.40.19;python_version>='3.9' botocore===1.37.38;python_version=='3.8' botocore===1.33.13;python_version=='3.7' -botocore===1.26.10;python_version=='3.6' certifi===2025.8.3 cffi===1.17.1;python_version>='3.8' cffi===1.15.1;python_version=='3.7' -cffi===1.15.1;python_version=='3.6' charset-normalizer===3.4.3;python_version>='3.7' -charset-normalizer===2.0.12;python_version=='3.6' cliff===4.11.0;python_version>='3.10' cliff===4.9.1;python_version=='3.9' cliff===4.7.0;python_version=='3.8' cliff===3.10.1;python_version=='3.7' -cliff===3.10.1;python_version=='3.6' cmd2===2.7.0;python_version>='3.9' cmd2===2.5.11;python_version=='3.8' cmd2===2.4.3;python_version=='3.7' -cmd2===2.4.3;python_version=='3.6' coverage===7.10.5;python_version>='3.9' coverage===7.6.1;python_version=='3.8' coverage===7.2.7;python_version=='3.7' -coverage===6.2;python_version=='3.6' cryptography===45.0.6;python_version>='3.7' -cryptography===40.0.2;python_version=='3.6' debtcollector===3.0.0;python_version>='3.8' debtcollector===2.5.0;python_version=='3.7' -debtcollector===2.5.0;python_version=='3.6' decorator===5.2.1;python_version>='3.8' decorator===5.1.1;python_version=='3.7' dnspython===2.7.0;python_version>='3.9' dnspython===2.6.1;python_version=='3.8' dnspython===2.3.0;python_version=='3.7' -dnspython===2.2.1;python_version=='3.6' docutils===0.22;python_version>='3.9' docutils===0.20.1;python_version=='3.8' docutils===0.20.1;python_version=='3.7' -docutils===0.18.1;python_version=='3.6' dogpile.cache===1.4.0;python_version>='3.9' dogpile.cache===1.3.4;python_version=='3.8' dogpile.cache===1.2.2;python_version=='3.7' -dogpile.cache===1.2.2;python_version=='3.6' eventlet===0.40.3;python_version>='3.9' eventlet===0.39.1;python_version=='3.8' eventlet===0.38.2;python_version=='3.7' -eventlet===0.33.3;python_version=='3.6' exceptiongroup===1.3.0;python_version>='3.7' extras===1.0.0 fixtures===4.2.6;python_version>='3.9' fixtures===4.2.5;python_version=='3.8' fixtures===4.1.0;python_version=='3.7' -fixtures===4.0.1;python_version=='3.6' flake8===7.1.2;python_version>='3.8' flake8===3.8.4;python_version=='3.7' -flake8===3.8.4;python_version=='3.6' gitdb===4.0.12;python_version>='3.7' -gitdb===4.0.9;python_version=='3.6' greenlet===3.2.4;python_version>='3.9' greenlet===3.1.1;python_version=='3.8' greenlet===3.1.1;python_version=='3.7' -greenlet===2.0.2;python_version=='3.6' hacking===7.0.0;python_version>='3.8' hacking===4.1.0;python_version=='3.7' -hacking===4.1.0;python_version=='3.6' idna===3.10 importlib-metadata===8.7.0;python_version>='3.9' importlib-metadata===8.5.0;python_version=='3.8' importlib-metadata===6.7.0;python_version=='3.7' -importlib-metadata===4.8.3;python_version=='3.6' importlib-resources===6.5.2;python_version>='3.9' importlib-resources===6.4.5;python_version=='3.8' importlib-resources===5.12.0;python_version=='3.7' iniconfig===2.1.0;python_version>='3.8' iniconfig===2.0.0;python_version=='3.7' -iniconfig===1.1.1;python_version=='3.6' iso8601===2.1.0;python_version>='3.7' -iso8601===1.1.0;python_version=='3.6' jmespath===1.0.1;python_version>='3.7' -jmespath===0.10.0;python_version=='3.6' keystoneauth1===5.12.0;python_version>='3.10' keystoneauth1===5.11.1;python_version=='3.9' keystoneauth1===5.8.1;python_version=='3.8' keystoneauth1===5.1.3;python_version=='3.7' -keystoneauth1===5.1.3;python_version=='3.6' keystonemiddleware===10.12.0;python_version>='3.10' keystonemiddleware===10.11.0;python_version=='3.9' keystonemiddleware===10.7.1;python_version=='3.8' keystonemiddleware===9.5.0;python_version=='3.7' -keystonemiddleware===9.5.0;python_version=='3.6' lxml===6.0.1;python_version>='3.8' lxml===5.4.0;python_version=='3.7' markdown-it-py===4.0.0;python_version>='3.10' @@ -120,14 +91,11 @@ markdown-it-py===3.0.0;python_version=='3.8' markdown-it-py===2.2.0;python_version=='3.7' mccabe===0.7.0;python_version>='3.8' mccabe===0.6.1;python_version=='3.7' -mccabe===0.6.1;python_version=='3.6' mdurl===0.1.2;python_version>='3.7' mock===5.2.0 msgpack===1.1.1;python_version>='3.8' msgpack===1.0.5;python_version=='3.7' -msgpack===1.0.5;python_version=='3.6' netaddr===1.3.0;python_version>='3.7' -netaddr===0.10.1;python_version=='3.6' netifaces===0.11.0 os-service-types===1.8.0;python_version>='3.10' os-service-types===1.7.0;python_version=='3.9' @@ -136,135 +104,102 @@ os-service-types===1.7.0;python_version=='3.7' oslo.cache===3.12.0;python_version>='3.9' oslo.cache===3.8.0;python_version=='3.8' oslo.cache===2.11.0;python_version=='3.7' -oslo.cache===2.11.0;python_version=='3.6' oslo.config===10.0.0;python_version>='3.9' oslo.config===9.6.0;python_version=='3.8' oslo.config===8.8.1;python_version=='3.7' -oslo.config===8.8.1;python_version=='3.6' oslo.context===6.1.0;python_version>='3.9' oslo.context===5.6.0;python_version=='3.8' oslo.context===4.1.0;python_version=='3.7' -oslo.context===4.1.0;python_version=='3.6' oslo.i18n===6.6.0;python_version>='3.9' oslo.i18n===6.4.0;python_version=='3.8' oslo.i18n===5.1.0;python_version=='3.7' -oslo.i18n===5.1.0;python_version=='3.6' oslo.log===7.2.1;python_version>='3.9' oslo.log===6.1.2;python_version=='3.8' oslo.log===4.8.0;python_version=='3.7' -oslo.log===4.8.0;python_version=='3.6' oslo.serialization===5.8.0;python_version>='3.9' oslo.serialization===5.5.0;python_version=='3.8' oslo.serialization===4.3.0;python_version=='3.7' -oslo.serialization===4.3.0;python_version=='3.6' oslo.utils===9.1.0;python_version>='3.9' oslo.utils===7.3.0;python_version=='3.8' oslo.utils===4.13.0;python_version=='3.7' -oslo.utils===4.13.0;python_version=='3.6' packaging===25.0;python_version>='3.8' packaging===24.0;python_version=='3.7' -packaging===21.3;python_version=='3.6' pbr===7.0.1 pluggy===1.6.0;python_version>='3.9' pluggy===1.5.0;python_version=='3.8' pluggy===1.2.0;python_version=='3.7' -pluggy===1.0.0;python_version=='3.6' prettytable===3.16.0;python_version>='3.9' prettytable===3.11.0;python_version=='3.8' prettytable===3.7.0;python_version=='3.7' -prettytable===2.5.0;python_version=='3.6' py===1.11.0 pycadf===4.0.1;python_version>='3.9' pycadf===4.0.0;python_version=='3.8' pycadf===3.1.1;python_version=='3.7' -pycadf===3.1.1;python_version=='3.6' pycodestyle===2.12.1;python_version>='3.8' pycodestyle===2.6.0;python_version=='3.7' -pycodestyle===2.6.0;python_version=='3.6' pycparser===2.22;python_version>='3.8' pycparser===2.21;python_version=='3.7' -pycparser===2.21;python_version=='3.6' pyeclib===1.6.4 pyflakes===3.2.0;python_version>='3.8' pyflakes===2.2.0;python_version=='3.7' -pyflakes===2.2.0;python_version=='3.6' pyinotify===0.9.6 pyparsing===3.2.3;python_version>='3.9' pyparsing===3.1.4;python_version=='3.8' pyparsing===3.1.4;python_version=='3.7' -pyparsing===3.1.4;python_version=='3.6' pyperclip===1.9.0 pytest===8.4.1;python_version>='3.9' pytest===8.3.5;python_version=='3.8' pytest===7.4.4;python_version=='3.7' -pytest===7.0.1;python_version=='3.6' pytest-cov===6.2.1;python_version>='3.9' pytest-cov===5.0.0;python_version=='3.8' pytest-cov===4.1.0;python_version=='3.7' -pytest-cov===4.0.0;python_version=='3.6' python-dateutil===2.9.0.post0 python-keystoneclient===5.7.0;python_version>='3.10' python-keystoneclient===5.6.0;python_version=='3.9' python-keystoneclient===5.5.0;python_version=='3.8' python-keystoneclient===4.5.0;python_version=='3.7' -python-keystoneclient===4.5.0;python_version=='3.6' python-subunit===1.4.4;python_version>='3.7' -python-subunit===1.4.2;python_version=='3.6' python-swiftclient===4.8.0 pytz===2025.2 requests===2.32.5;python_version>='3.9' requests===2.32.4;python_version=='3.8' requests===2.31.0;python_version=='3.7' -requests===2.27.1;python_version=='3.6' requests-mock===1.12.1 rfc3986===2.0.0;python_version>='3.7' -rfc3986===1.5.0;python_version=='3.6' rich===14.1.0;python_version>='3.8' rich===13.8.1;python_version=='3.7' s3transfer===0.13.1;python_version>='3.9' s3transfer===0.11.5;python_version=='3.8' s3transfer===0.8.2;python_version=='3.7' -s3transfer===0.5.2;python_version=='3.6' setuptools===75.3.0;python_version>='3.12' smmap===5.0.2;python_version>='3.7' -smmap===5.0.0;python_version=='3.6' stestr===4.2.0;python_version>='3.8' stestr===4.1.0;python_version=='3.7' stevedore===5.5.0;python_version>='3.9' stevedore===5.3.0;python_version=='3.8' stevedore===3.5.2;python_version=='3.7' -stevedore===3.5.2;python_version=='3.6' testtools===2.7.2;python_version>='3.8' testtools===2.7.1;python_version=='3.7' -testtools===2.6.0;python_version=='3.6' tomli===2.2.1;python_version>='3.8' tomli===2.0.1;python_version=='3.7' -tomli===1.2.3;python_version=='3.6' tomlkit===0.13.3;python_version>='3.8' tomlkit===0.12.5;python_version=='3.7' -tomlkit===0.11.6;python_version=='3.6' typing_extensions===4.15.0;python_version>='3.9' typing_extensions===4.13.2;python_version=='3.8' typing_extensions===4.7.1;python_version=='3.7' -typing_extensions===4.1.1;python_version=='3.6' tzdata===2025.2;python_version>='3.9' urllib3===2.5.0;python_version>='3.10' urllib3===1.26.20;python_version=='3.9' urllib3===1.26.20;python_version=='3.8' urllib3===1.26.20;python_version=='3.7' -urllib3===1.26.20;python_version=='3.6' voluptuous===0.15.2;python_version>='3.9' voluptuous===0.14.2;python_version=='3.8' voluptuous===0.14.1;python_version=='3.7' -voluptuous===0.13.1;python_version=='3.6' wcwidth===0.2.13 wrapt===1.17.3;python_version>='3.8' wrapt===1.16.0;python_version=='3.7' -wrapt===1.16.0;python_version=='3.6' xattr===1.2.0;python_version>='3.8' xattr===0.10.1;python_version=='3.7' -xattr===0.10.1;python_version=='3.6' zipp===3.23.0;python_version>='3.9' zipp===3.20.2;python_version=='3.8' zipp===3.15.0;python_version=='3.7' -zipp===3.6.0;python_version=='3.6' diff --git a/tox.ini b/tox.ini index 70a84daecc..1036f66baf 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,6 @@ [tox] envlist = py3,pep8 minversion = 3.18.0 -requires = - # required to support py27/py36 envs - virtualenv<20.22 [pytest] addopts = --verbose -p no:requests_mock -r a @@ -28,7 +25,7 @@ passenv = SWIFT_* [testenv:s3api] usedevelop = False -deps = {[testenv:py36]deps} +deps = {[testenv:py37]deps} commands = pytest {posargs:test/s3api} # For some reason we hit some EPERM issue when building the package for these tests? @@ -36,20 +33,17 @@ commands = skipsdist = True skip_install = True -[testenv:py36] +[testenv:py37] deps = -c{toxinidir}/py3-constraints.txt -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt -[testenv:py37] -deps = {[testenv:py36]deps} - [testenv:py38] -deps = {[testenv:py36]deps} +deps = {[testenv:py37]deps} [testenv:py39] -deps = {[testenv:py36]deps} +deps = {[testenv:py37]deps} [testenv:cover] setenv = VIRTUAL_ENV={envdir} @@ -64,13 +58,13 @@ commands = ./.manpages {posargs} [testenv:func] -deps = {[testenv:py36]deps} +deps = {[testenv:py37]deps} allowlist_externals = ./.functests commands = ./.functests {posargs} [testenv:func-ec] -deps = {[testenv:py36]deps} +deps = {[testenv:py37]deps} allowlist_externals = ./.functests commands = ./.functests {posargs} @@ -78,7 +72,7 @@ setenv = SWIFT_TEST_IN_PROCESS=1 SWIFT_TEST_IN_PROCESS_CONF_LOADER=ec [testenv:func-encryption] -deps = {[testenv:py36]deps} +deps = {[testenv:py37]deps} allowlist_externals = ./.functests commands = ./.functests {posargs}