summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxuanyandong <xuanyandong@inspur.com>2019-10-26 14:31:46 +0800
committerBrian Rosmaita <rosmaita.fossdev@gmail.com>2020-01-16 08:34:30 -0500
commit658de38c20e028898fe0641de2e18686703f7b70 (patch)
treeefa0d7d9f08ddd06966926310d796a0104e74a92
parentd240091c32c033b25c2a805b1fd66468429c221c (diff)
downloadpython-cinderclient-658de38c20e028898fe0641de2e18686703f7b70.tar.gz
Drop support for python 2
Also adds support for py3.6 and py3.7 check and gate jobs. Co-authored-by: xuanyandong <xuanyandong@inspur.com> Co-authored-by: Brian Rosmaita <rosmaita.fossdev@gmail.com> Closes-bug: #1853372 Change-Id: Ia978b692ade23ee6482957f41b17cb879c96fea7
-rw-r--r--.zuul.yaml39
-rw-r--r--doc/requirements.txt3
-rw-r--r--playbooks/python-cinderclient-functional.yaml2
-rw-r--r--releasenotes/notes/drop-python2-support-d3a1bedc75445edc.yaml7
-rw-r--r--setup.cfg2
-rw-r--r--tox.ini31
6 files changed, 63 insertions, 21 deletions
diff --git a/.zuul.yaml b/.zuul.yaml
index 594163a..351b922 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -1,5 +1,6 @@
- job:
- name: python-cinderclient-functional
+ name: python-cinderclient-functional-base
+ abstract: true
parent: devstack
run: playbooks/python-cinderclient-functional.yaml
post-run: playbooks/post.yaml
@@ -12,19 +13,47 @@
USE_PYTHON3: true
VOLUME_BACKING_FILE_SIZE: 16G
+- job:
+ name: python-cinderclient-functional-py36
+ parent: python-cinderclient-functional-base
+ vars:
+ python_version: 3.6
+ tox_envlist: functional-py36
+
+- job:
+ name: python-cinderclient-functional-py37
+ parent: python-cinderclient-functional-base
+ # Just to be clear what's going on here: which python is used by
+ # tox is controlled by tox.ini. But, that python needs to
+ # actually be available on the node running the job in order for
+ # the job to succeed. At this point, we can assume that 3.6 will
+ # be available everywhere (this is guaranteed by openstack-infra).
+ # But 3.7 is still problematic (don't ask me why). So for this
+ # job that we want running in py3.7, we need to (a) specify a
+ # nodeset for which py3.7 is available, and (b) tell the job to
+ # make sure it's available (i.e., install it if necessary).
+ # (a) is handled by the 'nodeset' specification below.
+ # (b) is handled by the setting the 'python_version' variable
+ # below, although by itself that doesn't do anything: it also
+ # requires that the 'ensure-python' role is included in the
+ # job playbook.
+ nodeset: openstack-single-node-bionic
+ vars:
+ python_version: 3.7
+ tox_envlist: functional-py37
+
- project:
templates:
- check-requirements
- - lib-forward-testing
- lib-forward-testing-python3
- openstack-cover-jobs
- openstack-lower-constraints-jobs
- - openstack-python-jobs
- - openstack-python3-train-jobs
+ - openstack-python3-ussuri-jobs
- publish-openstack-docs-pti
- release-notes-jobs-python3
check:
jobs:
- - python-cinderclient-functional
+ - python-cinderclient-functional-py36
+ - python-cinderclient-functional-py37
- openstack-tox-pylint:
voting: false
diff --git a/doc/requirements.txt b/doc/requirements.txt
index bf81d84..f0f258f 100644
--- a/doc/requirements.txt
+++ b/doc/requirements.txt
@@ -4,5 +4,4 @@
# These are needed for docs generation
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
diff --git a/playbooks/python-cinderclient-functional.yaml b/playbooks/python-cinderclient-functional.yaml
index ea7d2db..dec94d0 100644
--- a/playbooks/python-cinderclient-functional.yaml
+++ b/playbooks/python-cinderclient-functional.yaml
@@ -1,5 +1,6 @@
- hosts: all
roles:
+ - ensure-python
- run-devstack
# Run bindep and test-setup after devstack so that they won't interfere
- role: bindep
@@ -9,6 +10,5 @@
- get-os-environment
- ensure-tox
- role: tox
- tox_envlist: functional
tox_install_siblings: false
environment: "{{ os_env_vars }}"
diff --git a/releasenotes/notes/drop-python2-support-d3a1bedc75445edc.yaml b/releasenotes/notes/drop-python2-support-d3a1bedc75445edc.yaml
new file mode 100644
index 0000000..23ee4d5
--- /dev/null
+++ b/releasenotes/notes/drop-python2-support-d3a1bedc75445edc.yaml
@@ -0,0 +1,7 @@
+---
+upgrade:
+ - |
+ Python 2.7 support has been dropped. Beginning with release 6.0.0,
+ the minimum version of Python supported by python-cinderclient is
+ Python 3.6. The last version of python-cinderclient to support
+ Python 2.7 is the 5.x series from the Train release.
diff --git a/setup.cfg b/setup.cfg
index ed9e19e..3c66ddb 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -15,8 +15,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/tox.ini b/tox.ini
index bfc523f..7153e47 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,10 +1,15 @@
[tox]
distribute = False
-envlist = py27,py37,pep8
-minversion = 2.0
+envlist = py36,py37,pep8
+minversion = 3.1.0
skipsdist = True
+skip_missing_interpreters = true
+# this allows tox to infer the base python from the environment name
+# and override any basepython configured in this file
+ignore_basepython_conflict=true
[testenv]
+basepython = python3
usedevelop = True
install_command = pip install {opts} {packages}
setenv =
@@ -25,11 +30,9 @@ commands = find . -type f -name "*.pyc" -delete
whitelist_externals = find
[testenv:pep8]
-basepython = python3
commands = flake8
[testenv:pylint]
-basepython = python3
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
@@ -38,11 +41,9 @@ commands = bash tools/lintstack.sh
whitelist_externals = bash
[testenv:venv]
-basepython = python3
commands = {posargs}
[testenv:cover]
-basepython = python3
setenv =
{[testenv]setenv}
PYTHON=coverage run --source cinderclient --parallel-mode
@@ -53,7 +54,6 @@ commands =
coverage xml -o cover/coverage.xml
[testenv:docs]
-basepython = python3
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
@@ -61,7 +61,6 @@ deps =
commands = sphinx-build -W -b html doc/source doc/build/html
[testenv:pdf-docs]
-basepython = python3
deps =
{[testenv:docs]deps}
commands =
@@ -73,7 +72,6 @@ whitelist_externals =
cp
[testenv:releasenotes]
-basepython = python3
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
@@ -81,24 +79,35 @@ deps =
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:functional]
-basepython = python3
commands = stestr run {posargs}
setenv =
{[testenv]setenv}
OS_TEST_PATH = ./cinderclient/tests/functional
OS_VOLUME_API_VERSION = 3
+ # must define this here so it can be inherited by the -py3* environments
+ OS_CINDERCLIENT_EXEC_DIR = {envdir}/bin
+
# The OS_CACERT environment variable should be passed to the test
# environments to specify a CA bundle file to use in verifying a
# TLS (https) server certificate.
passenv = OS_*
+[testenv:functional-py36]
+setenv = {[testenv:functional]setenv}
+passenv = {[testenv:functional]passenv}
+commands = {[testenv:functional]commands}
+
+[testenv:functional-py37]
+setenv = {[testenv:functional]setenv}
+passenv = {[testenv:functional]passenv}
+commands = {[testenv:functional]commands}
+
[flake8]
show-source = True
ignore = H404,H405,E122,E123,E128,E251
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
[testenv:lower-constraints]
-basepython = python3
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt