[Stable-Only] Pin setuptools

setuptools 82.0.0 dropped support for the legacy 'pkg_resources'
library. While most users of this (including the all important pbr
library) have been updated to remove references to 'pkg_resources' on
current master, this is not true for historical releases. Pin the
setuptools version used on these historic branches and disable build
isolation to work around this.

Change-Id: Icf07fa246b3532f939d20e3cbea32cc0b7b439ed
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This commit is contained in:
Stephen Finucane
2026-02-09 11:41:14 +00:00
parent 89c4c949d3
commit 1dee5d0cde
3 changed files with 11 additions and 2 deletions

View File

@@ -41,7 +41,9 @@ function setup_devstack_virtualenv {
# This package is currently installed via the distro and not
# available on pypi.
$PYTHON -m venv --system-site-packages "${DEVSTACK_VENV}"
pip_install -U pip setuptools[core]
# NOTE(stephenfin) stable-only change to pin setuptools to the last
# version to support pkg_resources
pip_install -U pip 'setuptools[core]<82.0.0'
fi
if [[ ":$PATH:" != *":$DEVSTACK_VENV/bin:"* ]] ; then
export PATH="$DEVSTACK_VENV/bin:$PATH"
@@ -203,6 +205,9 @@ function pip_install {
cmd_pip="$cmd_pip install"
# Always apply constraints
cmd_pip="$cmd_pip -c $REQUIREMENTS_DIR/upper-constraints.txt"
# NOTE(stephenfin): stable-only change to disable build-isolation so that
# we can pin setuptools on these old branches
cmd_pip="$cmd_pip --no-build-isolation"
$xtrace

View File

@@ -31,7 +31,9 @@ function install_infra {
local PIP_VIRTUAL_ENV="$REQUIREMENTS_DIR/.venv"
[ ! -d $PIP_VIRTUAL_ENV ] && ${VIRTUALENV_CMD} $PIP_VIRTUAL_ENV
# We don't care about testing git pbr in the requirements venv.
PIP_VIRTUAL_ENV=$PIP_VIRTUAL_ENV pip_install -U pbr setuptools[core]
# NOTE(stephenfin) stable-only change to pin setuptools to the last version
# to support pkg_resources
PIP_VIRTUAL_ENV=$PIP_VIRTUAL_ENV pip_install -U pbr 'setuptools[core]<82.0.0'
PIP_VIRTUAL_ENV=$PIP_VIRTUAL_ENV pip_install $REQUIREMENTS_DIR
# Unset the PIP_VIRTUAL_ENV so that PBR does not end up trapped

View File

@@ -37,6 +37,8 @@ commands = bash -c "find {toxinidir} \
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2025.2}
-r{toxinidir}/doc/requirements.txt
# NOTE(stephenfin): pin setuptools to the last version to support pkg_resources
setuptools<82.0.0
allowlist_externals = bash
setenv =
TOP_DIR={toxinidir}