From 551e8d7a5938f5f44ae3f29d9283e78501d321ab Mon Sep 17 00:00:00 2001 From: Ghanshyam Mann Date: Tue, 4 Feb 2020 09:04:30 -0600 Subject: [PATCH] [ussuri][goal] Drop python 2.7 support and testing OpenStack is dropping the py2.7 support in ussuri cycle. Tempest is ready with python 3 and ok to drop the python 2.7 support. Last Tempest version officially supported for py2.7 is 23.0.0. Now onwards, Tempest will test all stable branch with py3 jobs. tempest-full and other py2 version of jobs definition are kept for stable branch gate. 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 Change-Id: I75868d5c9b6630fe78958ff89e58a0aced09a6b3 --- .zuul.yaml | 55 ++++++------------- doc/requirements.txt | 3 +- doc/source/supported_version.rst | 6 +- .../notes/drop-py-2-7-730baf411876d5d8.yaml | 6 ++ setup.cfg | 5 +- setup.py | 8 --- tox.ini | 2 +- 7 files changed, 32 insertions(+), 53 deletions(-) create mode 100644 releasenotes/notes/drop-py-2-7-730baf411876d5d8.yaml diff --git a/.zuul.yaml b/.zuul.yaml index f749b74ad0..23b5a0039f 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -100,6 +100,7 @@ devstack_localrc: ENABLE_FILE_INJECTION: true ENABLE_VOLUME_MULTIATTACH: true + USE_PYTHON3: False devstack_services: # NOTE(mriedem): Disable the cinder-backup service from tempest-full # since tempest-full is in the integrated-gate project template but @@ -138,6 +139,9 @@ - opendev.org/openstack/oslo.utils - opendev.org/openstack/oslo.versionedobjects - opendev.org/openstack/oslo.vmware + vars: + devstack_localrc: + USE_PYTHON3: True - job: name: tempest-full-parallel @@ -146,11 +150,13 @@ branches: - master description: | - Base integration test with Neutron networking and py27. + Base integration test with Neutron networking. It includes all scenarios as it was in the past. This job runs all scenario tests in parallel! vars: tox_envlist: full-parallel + devstack_localrc: + USE_PYTHON3: True - job: name: tempest-full-py3 @@ -345,6 +351,13 @@ - stable/pike - stable/queens - stable/rocky + vars: + devstack_localrc: + USE_PYTHON3: False + group-vars: + subnode: + devstack_localrc: + USE_PYTHON3: False - job: name: tempest-multinode-full-py3 @@ -425,32 +438,16 @@ devstack_localrc: USE_PYTHON3: true -- job: - name: tempest-full-train - parent: tempest-full - override-checkout: stable/train - - job: name: tempest-full-train-py3 parent: tempest-full-py3 override-checkout: stable/train -- job: - name: tempest-full-stein - parent: tempest-full - override-checkout: stable/stein - - job: name: tempest-full-stein-py3 parent: tempest-full-py3 override-checkout: stable/stein -- job: - name: tempest-full-rocky - parent: tempest-full - nodeset: openstack-single-node-xenial - override-checkout: stable/rocky - - job: name: tempest-full-rocky-py3 parent: tempest-full-py3 @@ -511,12 +508,13 @@ name: tempest-pg-full parent: tempest-full description: | - Base integration test with Neutron networking and py27 and PostgreSQL. + Base integration test with Neutron networking and PostgreSQL. Former name for this job was legacy-tempest-dsvm-neutron-pg-full. vars: devstack_localrc: ENABLE_FILE_INJECTION: true DATABASE_TYPE: postgresql + USE_PYTHON3: True - project-template: name: integrated-gate-networking @@ -600,10 +598,9 @@ - project: templates: - check-requirements - - integrated-gate - integrated-gate-py3 - openstack-cover-jobs - - openstack-python3-train-jobs + - openstack-python3-ussuri-jobs - publish-openstack-docs-pti - release-notes-jobs-python3 check: @@ -639,22 +636,13 @@ - tempest-full-py3-ipv6: voting: false irrelevant-files: *tempest-irrelevant-files - - tempest-full-train: - irrelevant-files: *tempest-irrelevant-files - tempest-full-train-py3: irrelevant-files: *tempest-irrelevant-files - - tempest-full-stein: - irrelevant-files: *tempest-irrelevant-files - tempest-full-stein-py3: irrelevant-files: *tempest-irrelevant-files - - tempest-full-rocky: - irrelevant-files: *tempest-irrelevant-files - voting: false - tempest-full-rocky-py3: irrelevant-files: *tempest-irrelevant-files voting: false - - tempest-multinode-full: - irrelevant-files: *tempest-irrelevant-files - tempest-multinode-full-py3: irrelevant-files: *tempest-irrelevant-files - tempest-tox-plugin-sanity-check: @@ -673,8 +661,6 @@ # tools/ is not here since this relies on a script in tools/. - tempest-ipv6-only: irrelevant-files: *tempest-irrelevant-files-2 - - tempest-slow: - irrelevant-files: *tempest-irrelevant-files - tempest-slow-py3: irrelevant-files: *tempest-irrelevant-files - nova-live-migration: @@ -701,8 +687,6 @@ irrelevant-files: *tempest-irrelevant-files - neutron-tempest-dvr: irrelevant-files: *tempest-irrelevant-files - - tempest-full: - irrelevant-files: *tempest-irrelevant-files - interop-tempest-consistency: irrelevant-files: *tempest-irrelevant-files - tempest-full-test-account-py3: @@ -719,7 +703,7 @@ irrelevant-files: *tempest-irrelevant-files - neutron-grenade-multinode: irrelevant-files: *tempest-irrelevant-files - - tempest-full: + - tempest-full-py3: irrelevant-files: *tempest-irrelevant-files - grenade-py3: irrelevant-files: *tempest-irrelevant-files @@ -747,11 +731,8 @@ irrelevant-files: *tempest-irrelevant-files periodic-stable: jobs: - - tempest-full-train - tempest-full-train-py3 - - tempest-full-stein - tempest-full-stein-py3 - - tempest-full-rocky - tempest-full-rocky-py3 periodic: jobs: diff --git a/doc/requirements.txt b/doc/requirements.txt index 2194dc47ae..9f38ada826 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -3,6 +3,5 @@ # process, which may cause wedges in the gate later. openstackdocstheme>=1.20.0 # Apache-2.0 reno>=2.5.0 # Apache-2.0 -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 +sphinx!=1.6.6,!=1.6.7,!=2.1.0,>=1.6.2 # BSD sphinxcontrib-svg2pdfconverter>=0.1.0 # BSD diff --git a/doc/source/supported_version.rst b/doc/source/supported_version.rst index a97ec5bbeb..4f65fd4a7b 100644 --- a/doc/source/supported_version.rst +++ b/doc/source/supported_version.rst @@ -1,7 +1,7 @@ Supported OpenStack Releases and Python Versions ================================================ -This Document list the officially supported OpenStack releases +This document lists the officially supported OpenStack releases and python versions by Tempest. Compatible OpenStack Releases @@ -24,13 +24,13 @@ For example: OpenStack Stein: Tempest 20.0.0 * https://releases.openstack.org/stein/index.html#stein-tempest How to use Tempest tag on Extended Maintenance stable branch: -* https://review.opendev.org/#/c/681950/ + +* https://review.opendev.org/#/c/705098/ Supported Python Versions ------------------------- Tempest master supports the below python versions: -* Python 2.7 * Python 3.6 * Python 3.7 diff --git a/releasenotes/notes/drop-py-2-7-730baf411876d5d8.yaml b/releasenotes/notes/drop-py-2-7-730baf411876d5d8.yaml new file mode 100644 index 0000000000..a0ac244c43 --- /dev/null +++ b/releasenotes/notes/drop-py-2-7-730baf411876d5d8.yaml @@ -0,0 +1,6 @@ +--- +upgrade: + - | + Python 2.7 support has been dropped. Last release of Tempest + to support python 2.7 is Temepst 23.0.0. The minimum version of Python now + supported by Tempest is Python 3.6. diff --git a/setup.cfg b/setup.cfg index dd30069c2d..52c31dbfc5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -6,6 +6,7 @@ description-file = author = OpenStack author-email = openstack-discuss@lists.openstack.org home-page = https://docs.openstack.org/tempest/latest/ +requires-python = >=3.6 classifier = Intended Audience :: Information Technology Intended Audience :: System Administrators @@ -13,11 +14,11 @@ 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 + Programming Language :: Python :: 3 :: Only + Programming Language :: Python :: Implementation :: CPython [files] packages = diff --git a/setup.py b/setup.py index 566d84432e..f63cc23c52 100644 --- a/setup.py +++ b/setup.py @@ -16,14 +16,6 @@ # THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT import setuptools -# In python < 2.7.4, a lazy loading of package `pbr` will break -# setuptools if some other modules registered functions in `atexit`. -# solution from: http://bugs.python.org/issue15881#msg170215 -try: - import multiprocessing # noqa -except ImportError: - pass - setuptools.setup( setup_requires=['pbr>=2.0.0'], pbr=True) diff --git a/tox.ini b/tox.ini index 401bbfe1f2..64921ef497 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = pep8,py36,py37,py27,bashate,pip-check-reqs +envlist = pep8,py36,py37,bashate,pip-check-reqs minversion = 3.1.1 skipsdist = True ignore_basepython_conflict = True