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
This commit is contained in:
Clark Boylan 2023-01-06 09:34:59 -08:00
parent 61c6a4bcb3
commit 571e14581d
2 changed files with 28 additions and 5 deletions

View File

@ -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

View File

@ -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',