50e3c06ec2
There are two problems with dbcounter installation on Jammy. The first is straightforward. We have to use `py_modules` instead of `modules` to specify the source file. I don't know how this works on other distros but the docs [0] seem to clearly indicate py_modules does this. The second issue is quite an issue and requires story time. When pip/setuptools insteall editable installs (as is done for many of the openstack projects) it creates an easy-install.pth file that tells the python interpreter to add the source dirs of those repos to the python path. Normally these paths are appended to your sys.path. Pip's isolated build env relies on the assumption that these paths are appeneded to the path when it santizes sys.path to create the isolated environemnt. However, when SETUPTOOLS_SYS_PATH_TECHNIQUE is set to rewrite the paths are not appended and are inserted in the middle. This breaks pip's isolated build env which broke dbcounter installations. We fix this by not setting SETUPTOOLS_SYS_PATH_TECHNIQUE to rewrite. Upstream indicates the reason we set this half a decade ago has since been fixed properly. The reason Jammy and nothing else breaks is that python3.10 is the first python version to use pip's isolated build envs by default. I've locally fiddled with a patch to pip [1] to try and fix this behavior even when rewrite is set. I don't plan to push this upstream but it helps to illustrate where the problem lies. If someone else would like to upstream this feel free. Finally this change makes the jammy platform job voting again and adds it to the gate to ensure we don't regress again. [0] https://docs.python.org/3/distutils/sourcedist.html#specifying-the-files-to-distribute [1] https://paste.opendev.org/show/bqVAuhgMtVtfYupZK5J6/ Change-Id: I237f5663b0f8b060f6df130de04e17e2b1695f8a |
||
---|---|---|
.. | ||
dbcounter | ||
build_venv.sh | ||
create_userrc.sh | ||
create-stack-user.sh | ||
debug_function.sh | ||
discover_hosts.sh | ||
dstat.sh | ||
fixup_stuff.sh | ||
generate-devstack-plugins-list.py | ||
generate-devstack-plugins-list.sh | ||
get-stats.py | ||
image_list.sh | ||
info.sh | ||
install_pip.sh | ||
install_prereqs.sh | ||
make_cert.sh | ||
memory_tracker.sh | ||
mlock_report.py | ||
outfilter.py | ||
ping_neutron.sh | ||
update_clouds_yaml.py | ||
upload_image.sh | ||
verify-ipv6-only-deployments.sh | ||
worlddump.py |