From 7eaa8648cd4965a2fd5826cb064c8372f34a95c8 Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Mon, 3 Feb 2020 20:05:16 +0100 Subject: [PATCH] [ussuri][goal] Drop python 2.7 support and testing OpenStack is dropping the py2.7 support in ussuri cycle. 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 Switch to using modern sphinx-build. Remove cruft from setup.cfg Drop non-voting jobs from gate queue. Change-Id: I2cc764bd3de8130aa25868b57b2e89341c71617e --- .zuul.yaml | 6 ----- lower-constraints.txt | 1 - .../drop-python-2-7-73d3113c69d724d6.yaml | 5 ++++ setup.cfg | 18 +++----------- setup.py | 10 +------- test-requirements.txt | 3 +-- tox.ini | 24 ++++++++----------- 7 files changed, 20 insertions(+), 47 deletions(-) create mode 100644 releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml diff --git a/.zuul.yaml b/.zuul.yaml index 39fc353..d653cf9 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -1,27 +1,21 @@ - project: templates: - check-requirements - - lib-forward-testing - lib-forward-testing-python3 - openstack-cover-jobs - openstack-lower-constraints-jobs - - openstack-python-jobs - openstack-python3-ussuri-jobs - periodic-stable-jobs - publish-openstack-docs-pti - release-notes-jobs-python3 check: jobs: - - openstack-tox-functional - openstack-tox-functional-py36 - tempest-smoke-py3-osprofiler-redis - tempest-smoke-py3-osprofiler-sqlalchemy gate: jobs: - - openstack-tox-functional - openstack-tox-functional-py36 - - tempest-smoke-py3-osprofiler-redis - - tempest-smoke-py3-osprofiler-sqlalchemy - job: name: tempest-smoke-py3-osprofiler-redis diff --git a/lower-constraints.txt b/lower-constraints.txt index 481b456..ffd70a2 100644 --- a/lower-constraints.txt +++ b/lower-constraints.txt @@ -2,7 +2,6 @@ coverage===4.0 ddt===1.0.1 dulwich===0.15.0 elasticsearch===2.0.0 -futures===3.0.0 jaeger-client==3.8.0 mock===2.0.0 netaddr===0.7.18 diff --git a/releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml b/releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml new file mode 100644 index 0000000..0554c61 --- /dev/null +++ b/releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml @@ -0,0 +1,5 @@ +--- +upgrade: + - | + Python 2.7 support has been dropped. The minimum version of Python now + supported by osprofiler is Python 3.6. diff --git a/setup.cfg b/setup.cfg index 6030a25..22b42ae 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/osprofiler/latest/ +python-requires = >=3.6 classifier = Environment :: OpenStack Intended Audience :: Developers @@ -13,30 +14,20 @@ 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 = osprofiler -[global] -setup-hooks = - pbr.hooks.setup_hook - [extras] oslo_config = oslo.config>=5.2.0 # Apache-2.0 -[build_sphinx] -all_files = 1 -build-dir = doc/build -source-dir = doc/source -warning-is-error = 1 - [entry_points] oslo.config.opts = osprofiler = osprofiler.opts:list_opts @@ -44,6 +35,3 @@ console_scripts = osprofiler = osprofiler.cmd.shell:main paste.filter_factory = osprofiler = osprofiler.web:WsgiMiddleware.factory - -[wheel] -universal = 1 diff --git a/setup.py b/setup.py index ddd1771..a7c1710 100644 --- a/setup.py +++ b/setup.py @@ -14,14 +14,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>=1.8'], + setup_requires=['pbr>=2.0'], pbr=True) diff --git a/test-requirements.txt b/test-requirements.txt index 9153e9e..33a3fb3 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,4 +1,4 @@ -hacking>=0.12.0,!=0.13.0,<0.14 # Apache-2.0 +hacking>=2.0,<=2.1 # Apache-2.0 coverage>=4.0 # Apache-2.0 ddt>=1.0.1 # MIT @@ -25,4 +25,3 @@ reno>=2.5.0 # Apache-2.0 # For Jaeger Tracing jaeger-client>=3.8.0 # Apache-2.0 -futures>=3.0.0;python_version=='2.7' or python_version=='2.6' # PSF diff --git a/tox.ini b/tox.ini index 8601286..aee1fcc 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,12 @@ [tox] -minversion = 2.0 -skipsdist = True -envlist = py27,py37,pep8 +minversion = 3.1.0 +# Needed to create ChangeLog for docs building +skipsdist = False +envlist = py37,pep8 +ignore_basepython_conflict = True [testenv] +basepython = python3 setenv = VIRTUAL_ENV={envdir} LANG=en_US.UTF-8 LANGUAGE=en_US:en @@ -12,13 +15,11 @@ deps = -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt -install_command = pip install -U {opts} {packages} usedevelop = True commands = stestr run --slowest {posargs} distribute = false [testenv:functional] -basepython = python2.7 setenv = {[testenv]setenv} OS_TEST_PATH=./osprofiler/tests/functional deps = @@ -28,10 +29,10 @@ deps = [testenv:functional-py36] basepython = python3.6 setenv = {[testenv:functional]setenv} -deps = {[testenv:functional]deps} +deps = + {[testenv:functional]deps} [testenv:pep8] -basepython = python3 commands = flake8 # Run security linter @@ -39,11 +40,9 @@ commands = distribute = false [testenv:venv] -basepython = python3 commands = {posargs} [testenv:cover] -basepython = python3 setenv = PYTHON=coverage run --source osprofiler --parallel-mode commands = @@ -53,11 +52,10 @@ commands = coverage xml -o cover/coverage.xml [testenv:docs] -basepython = python3 -commands = python setup.py build_sphinx +commands = + sphinx-build -W --keep-going -b html -d doc/build/doctrees doc/source doc/build/html [testenv:bandit] -basepython = python3 commands = bandit -r osprofiler -n5 [flake8] @@ -69,11 +67,9 @@ exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,tools,setup.py,build,releasen local-check-factory = osprofiler.hacking.checks.factory [testenv:releasenotes] -basepython = python3 commands = sphinx-build -a -E -W -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