From 571e14581d3502b37932b8e7f8c51766cdd001e6 Mon Sep 17 00:00:00 2001 From: Clark Boylan Date: Fri, 6 Jan 2023 09:34:59 -0800 Subject: Run PBR integration on Ubuntu Focal too Python 3.10 on Jammy is not compatible with old pip and setuptools due to collections.abc moves. It is still desireable to test modern PBR functions against these old library versions because old distro installs will often use latest PBR. Update our testing to also run PBR integration testing on Focal selecting appropriate pip and setuptools versions based on the running python version. This should help ensure PBR continues to run on old platforms even as we modernize pip. Change-Id: Ib53f637d5826bb51a348e3e629fbdbabec2a95e0 --- .zuul.yaml | 10 ++++++++++ pbr/tests/test_integration.py | 23 ++++++++++++++++++----- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index 87fccb4..3d0908f 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -104,6 +104,14 @@ vars: pbr_pip_version: 'git+https://github.com/pypa/pip.git#egg=pip' +- job: + name: pbr-installation-openstack-focal + parent: pbr-installation-openstack + nodeset: ubuntu-focal + description: | + Run pbr integration testing on older Ubuntu which allows us + to test compatibility with older versions of pip and setuptools. + - project: templates: - lib-forward-testing @@ -120,6 +128,7 @@ - openstack-tox-py38 - openstack-tox-py39 - pbr-installation-openstack + - pbr-installation-openstack-focal - pbr-installation-openstack-pip-dev - tempest-full: override-checkout: stable/train @@ -133,6 +142,7 @@ - openstack-tox-py38 - openstack-tox-py39 - pbr-installation-openstack + - pbr-installation-openstack-focal - pbr-installation-openstack-pip-dev - tempest-full: override-checkout: stable/train diff --git a/pbr/tests/test_integration.py b/pbr/tests/test_integration.py index 8b5e76a..2f5c0ab 100644 --- a/pbr/tests/test_integration.py +++ b/pbr/tests/test_integration.py @@ -264,16 +264,29 @@ class TestMarkersPip(base.BaseTestCase): allow_fail=False)[0]) -class TestLTSSupport(base.BaseTestCase): - - # These versions come from the versions installed from the 'virtualenv' - # command from the 'python-virtualenv' package. - scenarios = [ +# Handle collections.abc moves in python breaking old pip +# These versions come from the versions installed from the 'virtualenv' +# command from the 'python-virtualenv' package. +if sys.version_info[0:3] < (3, 10, 0): + lts_scenarios = [ + ('Bionic', {'modules': ['pip==9.0.1', 'setuptools==39.0.1']}), + ('Stretch', {'modules': ['pip==9.0.1', 'setuptools==33.1.1']}), + ('EL8', {'modules': ['pip==9.0.3', 'setuptools==39.2.0']}), + ('Buster', {'modules': ['pip==18.1', 'setuptools==40.8.0']}), + ('Focal', {'modules': ['pip==20.0.2', 'setuptools==45.2.0']}), + ] +else: + lts_scenarios = [ ('Bullseye', {'modules': ['pip==20.3.4', 'setuptools==52.0.0']}), ('Focal', {'modules': ['pip==20.0.2', 'setuptools==45.2.0']}), ('Jammy', {'modules': ['pip==22.0.2', 'setuptools==59.6.0']}), ] + +class TestLTSSupport(base.BaseTestCase): + + scenarios = lts_scenarios + @testtools.skipUnless( os.environ.get('PBR_INTEGRATION', None) == '1', 'integration tests not enabled', -- cgit v1.2.1