From 24345ce5792b48fba9db15c4c773c2f75ee598a7 Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Mon, 9 Feb 2026 11:41:14 +0000 Subject: [PATCH] [Stable-Only] Pin setuptools setuptools 81.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 to work around this. Conflicts: inc/python NOTE(stephenfin): Conflicts are due to the absence of I74b0f93457f91e7d53d54737d52f67075088faca which we don't want to backport Change-Id: Icf07fa246b3532f939d20e3cbea32cc0b7b439ed Signed-off-by: Stephen Finucane (cherry picked from commit 94e1ba49e924905363869511bbb93446a6cffff3) (cherry picked from commit 84c7dd2354c51f1a72bd3e19633cc313638b87f1) --- inc/python | 3 ++- lib/infra | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/inc/python b/inc/python index 7e4e461951..2735bce83c 100644 --- a/inc/python +++ b/inc/python @@ -45,10 +45,11 @@ function setup_devstack_virtualenv { # versions of pip which removed support for legacy editable installs # [1]. Some services on this stable branch still hadn't migrated to # module-based configuration [2]. This is not an issue since 2025.2. + # We also pin setuptools to the last version to support pkg_resources. # # [1] https://pip.pypa.io/en/stable/news/#v25-3 # [2] https://review.opendev.org/c/openstack/governance/+/902807 - pip_install -U 'pip<25.3' setuptools[core] + pip_install -U 'pip<25.3' 'setuptools[core]<81.0.0' #NOTE(rpittau): workaround for simplejson removal in osc # https://review.opendev.org/c/openstack/python-openstackclient/+/920001 pip_install -U simplejson diff --git a/lib/infra b/lib/infra index f4760c352c..7f262939f8 100644 --- a/lib/infra +++ b/lib/infra @@ -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]<81.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