Open cinderlib for zed development

NOTE: don't use this patch as an example of "open cinderlib for
xxx development" because it's happening *after* cinder and os-brick
stable/zed have been cut (normally, it would happen before).

In this patch we:
- Switch tox.ini to using stable/zed instead of stable/yoga for
  requirements, cinder, and os-brick
- update .zuul.yaml to use jobs specified by the
  openstack-python3-zed-template
- add a cinderlib-os-brick-src-tempest-lvm-lio-barbican-zed job to
  .zuul.yaml
- update tox.ini to support the current supported python runtimes
  for unit and functional tests plus python 3.10
- update requirements.txt to use only Zed release cinder and os-brick
- update setup.cfg to reflect the Zed supported python runtimes

Co-authored-by: Brian Rosmaita <rosmaita.fossdev@gmail.com>
Co-authored-by: Takashi Kajinami <tkajinam@redhat.com>

Change-Id: I6482088acfaf4c6de436d1a12195e96b3334e906
This commit is contained in:
Brian Rosmaita 2022-07-06 09:35:51 -04:00
parent 728b933bf2
commit def0c7faa2
4 changed files with 45 additions and 49 deletions

View File

@ -6,57 +6,70 @@
check:
jobs:
- openstack-tox-pep8
- cinderlib-tox-py36
- cinderlib-tox-py38
- cinderlib-tox-py39
- cinderlib-tox-py310:
voting: false
- cinderlib-lvm-functional
- cinderlib-ceph-functional
- cinderlib-os-brick-src-tempest-lvm-lio-barbican-yoga
- cinderlib-os-brick-src-tempest-lvm-lio-barbican-zed
gate:
jobs:
- openstack-tox-pep8
- cinderlib-tox-py36
- cinderlib-tox-py38
- cinderlib-tox-py39
- cinderlib-lvm-functional
- cinderlib-ceph-functional
- cinderlib-os-brick-src-tempest-lvm-lio-barbican-yoga
- cinderlib-os-brick-src-tempest-lvm-lio-barbican-zed
post:
jobs:
- publish-openstack-python-branch-tarball
- job:
name: cinderlib-tox-py36
parent: openstack-tox-py36
name: cinderlib-tox-py38
parent: openstack-tox-py38
required-projects:
- name: openstack/os-brick
override-checkout: stable/yoga
override-checkout: stable/zed
- name: openstack/cinder
override-checkout: stable/yoga
override-checkout: stable/zed
- name: openstack/requirements
override-checkout: stable/yoga
override-checkout: stable/zed
- job:
name: cinderlib-tox-py39
parent: openstack-tox-py39
required-projects:
- name: openstack/os-brick
override-checkout: stable/yoga
override-checkout: stable/zed
- name: openstack/cinder
override-checkout: stable/yoga
override-checkout: stable/zed
- name: openstack/requirements
override-checkout: stable/yoga
override-checkout: stable/zed
- job:
name: cinderlib-tox-py310
parent: openstack-tox-py310
required-projects:
- name: openstack/os-brick
override-checkout: stable/zed
- name: openstack/cinder
override-checkout: stable/zed
- name: openstack/requirements
override-checkout: stable/zed
- job:
name: cinderlib-functional
parent: openstack-tox-functional-with-sudo
required-projects:
- name: openstack/os-brick
override-checkout: stable/yoga
override-checkout: stable/zed
- name: openstack/cinder
override-checkout: stable/yoga
override-checkout: stable/zed
- name: openstack/requirements
override-checkout: stable/yoga
override-checkout: stable/zed
pre-run: playbooks/required-projects-bindeps.yaml
irrelevant-files:
- ^.*\.rst$
@ -67,7 +80,7 @@
name: cinderlib-lvm-functional
parent: cinderlib-functional
pre-run: playbooks/setup-lvm.yaml
nodeset: centos-8-stream
nodeset: centos-9-stream
vars:
tox_environment:
# Workaround for https://github.com/pypa/pip/issues/6264
@ -83,7 +96,7 @@
name: cinderlib-ceph-functional
parent: cinderlib-functional
pre-run: playbooks/setup-ceph.yaml
# TODO: move back to centos-8 as soon as Ceph packages are available
# TODO: move back to centos as soon as Ceph packages are available
nodeset: ubuntu-focal
vars:
tox_environment:
@ -94,7 +107,7 @@
NOSE_WITH_XUNIT: 1
- job:
name: cinderlib-os-brick-src-tempest-lvm-lio-barbican-yoga
name: cinderlib-os-brick-src-tempest-lvm-lio-barbican-zed
parent: os-brick-src-tempest-lvm-lio-barbican
description: |
Use this job during the phase when cinderlib master is still
@ -102,7 +115,7 @@
cinderlib master and cinder master are the development branches
for the *same* release, you should use the parent job directly
in the check and gate, above.
override-checkout: stable/yoga
# NOTE: while the cinderlib stable/yoga branch does not exist,
override-checkout: stable/zed
# NOTE: while the cinderlib stable/zed branch does not exist,
# zuul will fall back to using cinderlib master, which is the
# behavior we want.

View File

@ -1,7 +1,7 @@
# restrict cinder to the yoga release only
cinder>=20.0.0.0,<21.0.0 # Apache-2.0
# brick upper bound is controlled by yoga/upper-constraints
os-brick>=5.2.0 # Apache-2.0
# restrict cinder to the zed release only
cinder>=21.0.0.0,<22.0.0 # Apache-2.0
# brick upper bound is controlled by zed/upper-constraints
os-brick>=6.1.0 # Apache-2.0
importlib_metadata>=1.7.0;python_version<'3.8' # Apache-2.0
importlib_resources>=3.2.1;python_version<'3.10' # Apache-2.0

View File

@ -8,7 +8,7 @@ long_description = file: DESCRIPTION.rst
author = OpenStack
author_email = openstack-discuss@lists.openstack.org
url = https://docs.openstack.org/cinderlib/latest/
python_requires = >=3.6
python_requires = >=3.8
classifiers =
Environment :: OpenStack
Intended Audience :: Information Technology
@ -20,8 +20,6 @@ classifiers =
Programming Language :: Python :: Implementation :: CPython
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9

29
tox.ini
View File

@ -17,7 +17,7 @@ setenv = OS_STDOUT_CAPTURE=1
TOX_INI_DIR={toxinidir}
# make sure this is accurate for current development, both here
# and in [testenv:functional]
CINDERLIB_RELEASE=yoga
CINDERLIB_RELEASE=zed
usedevelop=True
# note: cannot set the special local install command here because it is also
@ -31,8 +31,8 @@ usedevelop=True
# NOTE: Functional tests may fail if host is missing bindeps from deps projects
deps =
-r{toxinidir}/test-requirements.txt
git+https://opendev.org/openstack/os-brick@stable/yoga#egg=os-brick
git+https://opendev.org/openstack/cinder@stable/yoga#egg=cinder
git+https://opendev.org/openstack/os-brick@stable/zed#egg=os-brick
git+https://opendev.org/openstack/cinder@stable/zed#egg=cinder
commands =
find . -ignore_readdir_race -type f -name "*.pyc" -delete
@ -51,7 +51,7 @@ allowlist_externals =
find
passenv = *_proxy *_PROXY CINDERLIB_CONSTRAINTS_FILE
[testenv:py{3,36,38,39}]
[testenv:py{3,38,39,310}]
install_command = {toxinidir}/tools/special_install.sh {env:PIP_OPTIONS:} {opts} {packages}
[testenv:functional]
@ -63,7 +63,7 @@ setenv = OS_TEST_PATH=./cinderlib/tests/functional
CL_FTEST_ROOT_HELPER={env:CL_FTEST_ROOT_HELPER:{toxinidir}/tools/virtualenv-sudo.sh}
TOX_INI_DIR={toxinidir}
# make sure this is accurate for current development
CINDERLIB_RELEASE=yoga
CINDERLIB_RELEASE=zed
sitepackages = True
# Not reusing py37's env due to https://github.com/tox-dev/tox/issues/477
@ -82,7 +82,7 @@ allowlist_externals =
{[testenv]allowlist_externals}
stestr
[testenv:functional-py36]
[testenv:functional-py{38,39,310}]
install_command = {[testenv:functional]install_command}
usedevelop=True
passenv =
@ -90,21 +90,6 @@ passenv =
setenv =
{[testenv:functional]setenv}
sitepackages = True
basepython=python3.6
# NOTE: We intentionally do not reuse the unit test's env due to
# https://github.com/tox-dev/tox/issues/477
commands = {[testenv:functional]commands}
allowlist_externals = {[testenv:functional]allowlist_externals}
[testenv:functional-py39]
install_command = {[testenv:functional]install_command}
usedevelop=True
passenv =
{[testenv:functional]passenv}
setenv =
{[testenv:functional]setenv}
sitepackages = True
basepython=python3.9
# NOTE: We intentionally do not reuse the unit test's env due to
# https://github.com/tox-dev/tox/issues/477
commands = {[testenv:functional]commands}
@ -122,7 +107,7 @@ commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasen
# yes, we want the constraint in the install_command, not deps, so that
# https://review.opendev.org/c/openstack/glance/+/839786 does not happen
# to us
install_command = python -m pip install -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/yoga} {opts} {packages}
install_command = python -m pip install -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/zed} {opts} {packages}
deps =
-r{toxinidir}/doc/requirements.txt
commands =