From afef05aca49e90edc30e112d53f6cd2e77fb8866 Mon Sep 17 00:00:00 2001 From: Ghanshyam Mann Date: Fri, 15 Nov 2019 02:43:07 +0000 Subject: [PATCH] [ussuri][goal] Drop python 2.7 support and testing OpenStack is dropping the py2.7 support in ussuri cycle. Cloudkitty is ready with python 3 and ok to drop the python 2.7 support. Complete discussion & schedule can be found in - http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010142.html - https://etherpad.openstack.org/p/drop-python2-support Ussuri Communtiy-wide goal: https://governance.openstack.org/tc/goals/selected/ussuri/drop-py27.html Depends-On: https://review.opendev.org/#/c/693631/ Change-Id: I44ea5cfe479558969ccb3ca57f416511614626cc --- .zuul.yaml | 47 ++----------------- .../notes/drop-py-2-7-fcf8c0613a7bffa8.yaml | 6 +++ setup.cfg | 2 - test-requirements.txt | 1 - tox.ini | 14 +----- 5 files changed, 12 insertions(+), 58 deletions(-) create mode 100644 releasenotes/notes/drop-py-2-7-fcf8c0613a7bffa8.yaml diff --git a/.zuul.yaml b/.zuul.yaml index 162cfdde..a1f38e43 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -28,6 +28,7 @@ tox_envlist: all devstack_localrc: CLOUDKITTY_FETCHER: keystone + USE_PYTHON3: True TEMPEST_PLUGINS: /opt/stack/cloudkitty-tempest-plugin - job: @@ -64,68 +65,35 @@ name: cloudkitty-tempest-full-v1-storage-sqlalchemy parent: base-cloudkitty-v1-api-tempest-job description: | - Job testing cloudkitty installation on devstack with python 2 and the + Job testing cloudkitty installation on devstack with python 3 and the SQLAlchemy v1 storage driver and running tempest tests vars: devstack_localrc: CLOUDKITTY_STORAGE_BACKEND: sqlalchemy CLOUDKITTY_STORAGE_VERSION: 1 -- job: - name: cloudkitty-tempest-full-v1-storage-sqlalchemy-py3 - parent: cloudkitty-tempest-full-v1-storage-sqlalchemy - description: | - Job testing cloudkitty installation on devstack with python 3 and the - SQLAlchemy v1 storage driver and running tempest tests - vars: - devstack_localrc: - DEVSTACK_GATE_USE_PYTHON3: "True" - USE_PYTHON3: "True" - - job: name: cloudkitty-tempest-full-v2-storage-influxdb parent: base-cloudkitty-v2-api-tempest-job description: | - Job testing cloudkitty installation on devstack with python 2 and the + Job testing cloudkitty installation on devstack with python 3 and the InfluxDB v2 storage driver and running tempest tests vars: devstack_localrc: CLOUDKITTY_STORAGE_BACKEND: influxdb CLOUDKITTY_STORAGE_VERSION: 2 -- job: - name: cloudkitty-tempest-full-v2-storage-influxdb-py3 - parent: cloudkitty-tempest-full-v2-storage-influxdb - description: | - Job testing cloudkitty installation on devstack with python 3 and the - InfluxDB v2 storage driver and running tempest tests - vars: - devstack_localrc: - DEVSTACK_GATE_USE_PYTHON3: "True" - USE_PYTHON3: "True" - - job: name: cloudkitty-tempest-full-v2-storage-elasticsearch parent: base-cloudkitty-v2-api-tempest-job description: | - Job testing cloudkitty installation on devstack with python 2 and the + Job testing cloudkitty installation on devstack with python 3 and the Elasticsearch v2 storage driver and running tempest tests vars: devstack_localrc: CLOUDKITTY_STORAGE_BACKEND: elasticsearch CLOUDKITTY_STORAGE_VERSION: 2 -- job: - name: cloudkitty-tempest-full-v2-storage-elasticsearch-py3 - parent: cloudkitty-tempest-full-v2-storage-elasticsearch - description: | - Job testing cloudkitty installation on devstack with python 3 and the - elasticsearch v2 storage driver and running tempest tests - vars: - devstack_localrc: - DEVSTACK_GATE_USE_PYTHON3: "True" - USE_PYTHON3: "True" - - job: name: cloudkitty-tox-bandit parent: openstack-tox @@ -154,20 +122,15 @@ - openstack-lower-constraints-jobs - check-requirements - openstack-cover-jobs - - openstack-python-jobs - openstack-python3-ussuri-jobs - publish-openstack-docs-pti - release-notes-jobs-python3 check: jobs: - cloudkitty-tempest-full-v2-storage-influxdb - - cloudkitty-tempest-full-v2-storage-influxdb-py3 - cloudkitty-tempest-full-v2-storage-elasticsearch: voting: false - - cloudkitty-tempest-full-v2-storage-elasticsearch-py3: - voting: false - cloudkitty-tempest-full-v1-storage-sqlalchemy - - cloudkitty-tempest-full-v1-storage-sqlalchemy-py3 - cloudkitty-tempest-full-ipv6-only - cloudkitty-tox-bandit: voting: false @@ -175,7 +138,5 @@ queue: cloudkitty jobs: - cloudkitty-tempest-full-v2-storage-influxdb - - cloudkitty-tempest-full-v2-storage-influxdb-py3 - cloudkitty-tempest-full-v1-storage-sqlalchemy - - cloudkitty-tempest-full-v1-storage-sqlalchemy-py3 - cloudkitty-tempest-full-ipv6-only diff --git a/releasenotes/notes/drop-py-2-7-fcf8c0613a7bffa8.yaml b/releasenotes/notes/drop-py-2-7-fcf8c0613a7bffa8.yaml new file mode 100644 index 00000000..1978d342 --- /dev/null +++ b/releasenotes/notes/drop-py-2-7-fcf8c0613a7bffa8.yaml @@ -0,0 +1,6 @@ +--- +upgrade: + - | + Python 2.7 support has been dropped. Last release of Cloudkitty + to support python 2.7 is OpenStack Train. The minimum version of Python now + supported by Cloudkitty is Python 3.6. diff --git a/setup.cfg b/setup.cfg index 0e1efa76..7b4e15ca 100644 --- a/setup.cfg +++ b/setup.cfg @@ -13,8 +13,6 @@ classifier = License :: OSI Approved :: Apache Software License Operating System :: POSIX :: Linux Programming Language :: Python - Programming Language :: Python :: 2 - Programming Language :: Python :: 2.7 Programming Language :: Python :: 3 Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 diff --git a/test-requirements.txt b/test-requirements.txt index 4d8c22f8..56443211 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -12,7 +12,6 @@ gabbi>=1.26.1 # Apache-2.0 testscenarios>=0.4 # Apache-2.0/BSD stestr>=2.0.0 # Apache-2.0 mock>=1.2 # BSD -sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD sphinx!=1.6.6,!=1.6.7,!=2.1.0,>=1.6.2;python_version>='3.4' # BSD openstackdocstheme>=1.30.0 # Apache-2.0 oslotest>=1.10.0 # Apache-2.0 diff --git a/tox.ini b/tox.ini index 34ebbcf7..1756098d 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,10 @@ [tox] minversion = 2.0 skipsdist = True -envlist = py36,py37,py27,pep8 +envlist = py36,py37,pep8 [testenv] +basepython = python3 whitelist_externals = rm setenv = VIRTUAL_ENV={envdir} PYTHONWARNINGS=default::DeprecationWarning @@ -18,22 +19,18 @@ commands = stestr run {posargs} [testenv:debug] -basepython = python3 commands = oslo_debug_helper {posargs} [testenv:pep8] -basepython = python3 commands = flake8 {posargs} cloudkitty doc8 {posargs} [testenv:bandit] -basepython = python3 deps = -r{toxinidir}/test-requirements.txt commands = bandit -r cloudkitty -n5 -x cloudkitty/tests/* -ll [testenv:cover] -basepython = python3 setenv = VIRTUAL_ENV={envdir} PYTHON=coverage run --source cloudkitty --parallel-mode @@ -45,20 +42,16 @@ commands = coverage report [testenv:genconfig] -basepython = python3 commands = oslo-config-generator --config-file etc/oslo-config-generator/cloudkitty.conf [testenv:genpolicy] -basepython = python3 commands = oslopolicy-sample-generator --config-file=etc/oslo-policy-generator/cloudkitty.conf [testenv:docs] -basepython = python3 commands = python setup.py build_sphinx [testenv:pdf-docs] -basepython = python3 envdir = {toxworkdir}/docs whitelist_externals = make @@ -67,7 +60,6 @@ commands = make -C doc/build/pdf [testenv:venv] -basepython = python3 commands = {posargs} [flake8] @@ -82,11 +74,9 @@ import_exceptions = cloudkitty.i18n local-check-factory = cloudkitty.hacking.checks.factory [testenv:releasenotes] -basepython = python3 commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html [testenv:lower-constraints] -basepython = python3 deps = -c{toxinidir}/lower-constraints.txt -r{toxinidir}/test-requirements.txt