I've not checked the exact problem in kolla, but an example of the problems triggered by this is
failure during installing bunch of xstatic-* libraries for horizon
---
2026-02-09 06:18:16.431558 | controller | × Getting requirements to build wheel did not run successfully.
2026-02-09 06:18:16.431562 | controller | │ exit code: 1
2026-02-09 06:18:16.431576 | controller | ╰─> [23 lines of output]
2026-02-09 06:18:16.431580 | controller | Traceback (most recent call last):
2026-02-09 06:18:16.431589 | controller | File "/opt/stack/data/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
2026-02-09 06:18:16.431594 | controller | main()
2026-02-09 06:18:16.431606 | controller | File "/opt/stack/data/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main
2026-02-09 06:18:16.431610 | controller | json_out["return_val"] = hook(**hook_input["kwargs"])
2026-02-09 06:18:16.431623 | controller | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-02-09 06:18:16.431628 | controller | File "/opt/stack/data/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 143, in get_requires_for_build_wheel
2026-02-09 06:18:16.431640 | controller | return hook(config_settings)
2026-02-09 06:18:16.431644 | controller | ^^^^^^^^^^^^^^^^^^^^^
2026-02-09 06:18:16.431648 | controller | File "/tmp/pip-build-env-_mvl8qsh/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 333, in get_requires_for_build_wheel
2026-02-09 06:18:16.431661 | controller | return self._get_build_requires(config_settings, requirements=[])
2026-02-09 06:18:16.431668 | controller | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-02-09 06:18:16.431672 | controller | File "/tmp/pip-build-env-_mvl8qsh/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 301, in _get_build_requires
2026-02-09 06:18:16.431676 | controller | self.run_setup()
2026-02-09 06:18:16.431689 | controller | File "/tmp/pip-build-env-_mvl8qsh/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 520, in run_setup
2026-02-09 06:18:16.431693 | controller | super().run_setup(setup_script=setup_script)
2026-02-09 06:18:16.431697 | controller | File "/tmp/pip-build-env-_mvl8qsh/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 317, in run_setup
2026-02-09 06:18:16.431710 | controller | exec(code, locals())
2026-02-09 06:18:16.431714 | controller | File "<string>", line 1, in <module>
2026-02-09 06:18:16.431727 | controller | File "/tmp/pip-install-2pd_mk_v/xstatic-angular-schema-form_a23b90a319e14f1fb57c9d4525797f23/xstatic/__init__.py", line 1, in <module>
2026-02-09 06:18:16.431731 | controller | __import__('pkg_resources').declare_namespace(__name__)
2026-02-09 06:18:16.431735 | controller | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-02-09 06:18:16.431747 | controller | ModuleNotFoundError: No module named 'pkg_resources'
2026-02-09 06:18:16.431751 | controller | [end of output]
2026-02-09 06:18:16.431755 | controller |
---
The tricky part is that it uses pkg_resources to declare namespace packages,
which can't be directly replaced by importlib.
In the past I attempted to re-implement it using namespace packages explained
in the below article but didn't get it working correctly... (due to interaction
with pbr, as far as I remember).
https://packaging.python.org/en/latest/guides/packaging-namespace-packages/
On 2/9/26 7:35 PM, Sean Mooney wrote:
On 09/02/2026 07:49, Michael Still wrote:
Hey all,
I've just noticed that setuptools v82.0.0 released todayish and breaks a bunch of Kolla builds (and probably other things) by removing pkg_resources. https://setuptools.pypa.io/en/stable/history.html#v82-0-0 has further details of the release.
setuptools doesn't seem to be listed in upper-constraints, perhaps because it's often provided as a distro package?
for ordering reasons setuptools cant be listed in upper-constraitns
historically we have used pip and setup tools to mange the creation of our virutal environemtn an dtox inherited setup tools form the envionment that it was run in
most project have adapated to the pkg_resources removal as we were expecting it to happen in october last year but this has been deprecated for removal for 2+ years
so we tried to get ahead of it.
in many cases the replacement is to use https://docs.python.org/3/library/importlib.metadata.html and https://docs.python.org/3/library/importlib.resources.html#module-importlib.resources
i do not see kolla in https://codesearch.opendev.org/?q=pkg_resources&i=nope&literal=nope&files=&excludeFiles=&repos=
what part of the ci broke? was it the stabel jobs? codeseach is just looking at master.
Michael