Support Python 3.10

Add a CI job to run tests on Python 3.10, which is supported
in 2023.2 [0].

As rbd-iscsi-client is on an independent release model, it
still supports Python 3.8, so adjust .zuul.yaml and tox.ini
to use the 2023.1 upper constraints when running py38 tests.

[0] https://governance.openstack.org/tc/reference/runtimes/2023.2.html

Change-Id: I7fa0189dac8d980aa4fd5a7c8bac2f6f84ceb6d5
This commit is contained in:
Brian Rosmaita 2023-04-17 23:02:59 -04:00
parent 3f7eff31e1
commit f56f42dcd8
3 changed files with 25 additions and 5 deletions

View File

@ -12,8 +12,9 @@
jobs: jobs:
- openstack-tox-pep8 - openstack-tox-pep8
- rbd-iscsi-client-py36 - rbd-iscsi-client-py36
- openstack-tox-py38 - rbd-iscsi-client-py38
- openstack-tox-py39 - openstack-tox-py39
- openstack-tox-py310
- rbd-iscsi-client-code-coverage: - rbd-iscsi-client-code-coverage:
voting: false voting: false
@ -21,8 +22,9 @@
jobs: jobs:
- openstack-tox-pep8 - openstack-tox-pep8
- rbd-iscsi-client-py36 - rbd-iscsi-client-py36
- openstack-tox-py38 - rbd-iscsi-client-py38
- openstack-tox-py39 - openstack-tox-py39
- openstack-tox-py310
- job: - job:
name: rbd-iscsi-client-code-coverage name: rbd-iscsi-client-code-coverage
@ -47,3 +49,13 @@
required-projects: required-projects:
- name: openstack/requirements - name: openstack/requirements
override-checkout: stable/yoga override-checkout: stable/yoga
- job:
name: rbd-iscsi-client-py38
parent: openstack-tox-py38
# NOTE: zuul ignores TOX_CONSTRAINTS_FILE and uses upper constraints
# directly from the requirements repo, so we need to tell it to use
# the u-c from a branch that still supports py38
required-projects:
- name: openstack/requirements
override-checkout: stable/2023.1

View File

@ -23,6 +23,7 @@ classifiers =
Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
[global] [global]
setup-hooks = setup-hooks =

13
tox.ini
View File

@ -38,14 +38,21 @@ passenv =
no_proxy no_proxy
NO_PROXY NO_PROXY
[testenv:py36] [testenv:py{36,37}]
# We have to override the tox default py36 testenv because we need to use # The last openstack release to support python 3.6 and 3.7 is yoga, so we
# upper constraints from the last openstack release that supports python 3.6 # need to use the yoga upper constraints
deps = deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/yoga} -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/yoga}
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt -r{toxinidir}/requirements.txt
[testenv:py38]
# The last openstack release to support python 3.8 is 2023.1 (Antelope)
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2023.1}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
[testenv:pep8] [testenv:pep8]
commands = flake8 {posargs} commands = flake8 {posargs}