From def0c7faa22d93e52cc31c9b2c3ff0ac46cccb8d Mon Sep 17 00:00:00 2001 From: Brian Rosmaita Date: Wed, 6 Jul 2022 09:35:51 -0400 Subject: [PATCH] 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 Co-authored-by: Takashi Kajinami Change-Id: I6482088acfaf4c6de436d1a12195e96b3334e906 --- .zuul.yaml | 53 ++++++++++++++++++++++++++++++------------------ requirements.txt | 8 ++++---- setup.cfg | 4 +--- tox.ini | 29 +++++++------------------- 4 files changed, 45 insertions(+), 49 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index f4b4409..0f65d3c 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -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. diff --git a/requirements.txt b/requirements.txt index 816b5f4..6ba00a4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -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 diff --git a/setup.cfg b/setup.cfg index f37b973..d265b7f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -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 diff --git a/tox.ini b/tox.ini index 8a067cf..946f4a7 100644 --- a/tox.ini +++ b/tox.ini @@ -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 =