Files
Thomas Bechtold fddba460b9 Fix and modernize CI for current testing runtimes
The gate has been broken for some time. The project still used the
2021-era openstack-python3-wallaby-jobs template (py36/py38) and pinned
hacking 3.1.0, whose flake8 crashes under a modern importlib.metadata
("'EntryPoints' object has no attribute 'get'"). The unit test jobs also
did not install the runtime dependencies.

Modernize the test setup so the branchless master is tested against the
runtimes of the currently supported releases (2025.1, 2025.2, 2026.1):

* .zuul.yaml: drop the wallaby template and list the unit test jobs
  explicitly -- pep8 plus py310/py312/py313, which spans the tested
  runtimes of 2025.2 and 2026.1 (py310 min .. py313 max) and the upper
  end of 2025.1. py39 (the 2025.1 minimum) is omitted because the
  dependencies pinned in the master upper-constraints (e.g. castellan)
  already require Python >= 3.10.
* tox.ini: bump minversion for modern tox, install with the
  upper-constraints file (as the rest of OpenStack does), install
  requirements.txt so the runtime deps are present, fix the
  copy/pasted "cinder" coverage source, and rename whitelist_externals
  to allowlist_externals.
* test-requirements.txt: bump hacking to 6.1.0 so pep8 runs again and
  drop the now-unused mock and python-subunit entries.
* tests: import mock from unittest rather than the third-party module
  (required by the newer hacking, H216).
* setup.cfg: advertise Python 3.9-3.13, set python_requires, and drop
  the obsolete universal-wheel section and the deprecated
  description-file key.

Unit tests (48) and pep8 pass locally under Python 3.13 with the master
upper-constraints applied.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Change-Id: I58892e6e60a59232af3a3ad0148564d8d9bce957
2026-06-08 11:54:43 +02:00

31 lines
1.4 KiB
YAML

- project:
templates:
- check-requirements
# cursive is a branchless library, so a single master branch has to cover
# every still-supported release at once. We list the unit test jobs
# explicitly (rather than using a per-cycle openstack-python3-*-jobs
# template, whose master variant would test the development cycle's
# interpreters -- currently py314 -- instead of the supported releases).
# py311..py313 are the interpreters that are both shared by the tested
# runtimes of 2025.1, 2025.2 and 2026.1 and installable against the master
# upper-constraints. The older minima (py39 for 2025.1, py310 for 2025.2
# and 2026.1) cannot be installed here because dependencies pinned in the
# master upper-constraints already require newer Python (castellan needs
# >= 3.10, cmd2 -- via stestr/cliff -- needs >= 3.11); those interpreters
# are exercised against each release's own constraints at deploy time.
# https://governance.openstack.org/tc/reference/runtimes/
check:
jobs:
- openstack-tox-pep8
- openstack-tox-py311
- openstack-tox-py312
- openstack-tox-py313
- barbican-tempest-plugin-simple-crypto-cursive
gate:
jobs:
- openstack-tox-pep8
- openstack-tox-py311
- openstack-tox-py312
- openstack-tox-py313
- barbican-tempest-plugin-simple-crypto-cursive