)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"836c955458e004e5ea1ef6aa7daaaa88cdd0d56a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"65377079_92b918a3","updated":"2026-05-14 21:44:25.000000000","message":"recheck","commit_id":"f876e838a4225899eaf3a95edec6761ba086cace"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"40fb453137a0237fbf71cd9aa5f26c1ef8e887f7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"94c7dd69_50846314","updated":"2026-05-13 21:40:34.000000000","message":"recheck","commit_id":"f876e838a4225899eaf3a95edec6761ba086cace"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"3d255f0089aea9d677ed39b5c6989f54a80c669a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d0241d37_8744dd2e","updated":"2026-05-15 01:11:30.000000000","message":"recheck","commit_id":"f876e838a4225899eaf3a95edec6761ba086cace"}],"blazar/Dockerfile":[{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"2dce65ceaa76ffa47469979acd8fe6d21c4e9e88","unresolved":true,"context_lines":[{"line_number":49,"context_line":"    fi"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"RUN sed -i \u0027s/include-system-site-packages \u003d false/include-system-site-packages \u003d true/\u0027 \\"},{"line_number":52,"context_line":"      /var/lib/openstack/pyvenv.cfg \\"},{"line_number":53,"context_line":"    \u0026\u0026 find /var/lib/openstack \\( -name \"*.pyc\" -o -name \"__pycache__\" \\) -delete \\"},{"line_number":54,"context_line":"    \u0026\u0026 rm -rf /tmp/* /root/.cache /etc/machine-id"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-dockerfile","patch_set":3,"id":"964a9f76_e32c2801","line":52,"updated":"2026-05-13 17:21:59.000000000","message":"This isn\u0027t necessary and should actually be removed. If you look at the venv_builder, which will generate this file that we copy over, we\u0027re setting this universally. This is necessary so that package builds and runtime both expect to use the system-site-packages.","commit_id":"cea9e3ff85414f6b60afae76b96e23cf736cd4df"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"1ce963f51b47732dfc6d9e86c733f93852b72a18","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    fi"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"RUN sed -i \u0027s/include-system-site-packages \u003d false/include-system-site-packages \u003d true/\u0027 \\"},{"line_number":52,"context_line":"      /var/lib/openstack/pyvenv.cfg \\"},{"line_number":53,"context_line":"    \u0026\u0026 find /var/lib/openstack \\( -name \"*.pyc\" -o -name \"__pycache__\" \\) -delete \\"},{"line_number":54,"context_line":"    \u0026\u0026 rm -rf /tmp/* /root/.cache /etc/machine-id"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-dockerfile","patch_set":3,"id":"db2f132a_b76dea9f","line":52,"in_reply_to":"6ab2a807_f6acdc8f","updated":"2026-05-13 19:14:18.000000000","message":"Yeah the apt problem is real. I\u0027m game for working on this with you as well. My aim is to get to small-ish containers that all the dependencies are there for a reason.","commit_id":"cea9e3ff85414f6b60afae76b96e23cf736cd4df"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"6b02c25b6511d684df16d4fda650f44bccedc688","unresolved":true,"context_lines":[{"line_number":49,"context_line":"    fi"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"RUN sed -i \u0027s/include-system-site-packages \u003d false/include-system-site-packages \u003d true/\u0027 \\"},{"line_number":52,"context_line":"      /var/lib/openstack/pyvenv.cfg \\"},{"line_number":53,"context_line":"    \u0026\u0026 find /var/lib/openstack \\( -name \"*.pyc\" -o -name \"__pycache__\" \\) -delete \\"},{"line_number":54,"context_line":"    \u0026\u0026 rm -rf /tmp/* /root/.cache /etc/machine-id"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-dockerfile","patch_set":3,"id":"a9a5e58e_5819568e","line":52,"in_reply_to":"964a9f76_e32c2801","updated":"2026-05-13 18:48:03.000000000","message":"My assumption was that:\n\nwhen uv pip install resolves dependencies against a venv that has --system-site-packages \u003d true, it considers anything visible via system site-packages as already installed. For top-level requirements you explicitly request, uv installs them anyway. For transitive deps, if they\u0027re already in /usr/lib/python3/dist-packages/, uv treats the requirement as satisfied and skips installing them.\n\nI\u0027ve done some tests. Turned out the assumption was wrong. Indeed the uv installs even transitive deps into venv.\n\nBut still there is a concern that some package hooks can quietly reach for something only available at build time because of an apt package in venv_builder.","commit_id":"cea9e3ff85414f6b60afae76b96e23cf736cd4df"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"d1ce7f1b3d312fa664b12085af518c9f5709e810","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    fi"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"RUN sed -i \u0027s/include-system-site-packages \u003d false/include-system-site-packages \u003d true/\u0027 \\"},{"line_number":52,"context_line":"      /var/lib/openstack/pyvenv.cfg \\"},{"line_number":53,"context_line":"    \u0026\u0026 find /var/lib/openstack \\( -name \"*.pyc\" -o -name \"__pycache__\" \\) -delete \\"},{"line_number":54,"context_line":"    \u0026\u0026 rm -rf /tmp/* /root/.cache /etc/machine-id"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-dockerfile","patch_set":3,"id":"6ab2a807_f6acdc8f","line":52,"in_reply_to":"a9a5e58e_5819568e","updated":"2026-05-13 18:58:11.000000000","message":"Done","commit_id":"cea9e3ff85414f6b60afae76b96e23cf736cd4df"}],"cyborg/Dockerfile":[{"author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"change_message_id":"4d32f607005ef620056c9c9452afd3f4c3b65718","unresolved":true,"context_lines":[{"line_number":28,"context_line":"         --build-constraint /upper-constraints.txt \\"},{"line_number":29,"context_line":"         -c /upper-constraints.txt \\"},{"line_number":30,"context_line":"         /tmp/cyborg \\"},{"line_number":31,"context_line":"         -r /etc/image_info/python_packages.txt \\"},{"line_number":32,"context_line":"    \u0026\u0026 git -C /tmp/cyborg log --oneline -1 \u003e /etc/image_info/project.txt \\"},{"line_number":33,"context_line":"    \u0026\u0026 rm -rf /tmp/cyborg \\"},{"line_number":34,"context_line":"    \u0026\u0026 uv pip freeze \u003e /etc/image_info/pip.txt"}],"source_content_type":"text/x-dockerfile","patch_set":2,"id":"258c6fa5_ef94608d","line":31,"updated":"2026-05-13 11:42:00.000000000","message":"Can the -r option be moved with the other arguments?","commit_id":"373504bd9e17cbce146b3c7d782a2552c293413c"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"76612a487b121cf419d9e8a64eb1803ce3c3ea74","unresolved":false,"context_lines":[{"line_number":28,"context_line":"         --build-constraint /upper-constraints.txt \\"},{"line_number":29,"context_line":"         -c /upper-constraints.txt \\"},{"line_number":30,"context_line":"         /tmp/cyborg \\"},{"line_number":31,"context_line":"         -r /etc/image_info/python_packages.txt \\"},{"line_number":32,"context_line":"    \u0026\u0026 git -C /tmp/cyborg log --oneline -1 \u003e /etc/image_info/project.txt \\"},{"line_number":33,"context_line":"    \u0026\u0026 rm -rf /tmp/cyborg \\"},{"line_number":34,"context_line":"    \u0026\u0026 uv pip freeze \u003e /etc/image_info/pip.txt"}],"source_content_type":"text/x-dockerfile","patch_set":2,"id":"af8b651e_66f44879","line":31,"in_reply_to":"258c6fa5_ef94608d","updated":"2026-05-13 16:22:00.000000000","message":"Done","commit_id":"373504bd9e17cbce146b3c7d782a2552c293413c"}],"venv_builder/Dockerfile":[{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"9e01f9511baddf0810d740d48bedd6c2bb994a91","unresolved":true,"context_lines":[{"line_number":60,"context_line":"# create virtualenv"},{"line_number":61,"context_line":"RUN uv venv /var/lib/openstack \\"},{"line_number":62,"context_line":"    \u0026\u0026 uv pip install --python /var/lib/openstack/bin/python \\"},{"line_number":63,"context_line":"      \"setuptools${SETUPTOOLS_CONSTRAINT}\" wheel"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"# Map REQUIREMENTS_REF to version for constraints URL"},{"line_number":66,"context_line":"# stable/2025.1 -\u003e 2025.1, stable/2025.2 -\u003e 2025.2, stable/2026.1 -\u003e 2026.1, master -\u003e master"}],"source_content_type":"text/x-dockerfile","patch_set":3,"id":"d1958389_861af241","line":63,"updated":"2026-05-13 17:24:15.000000000","message":"We definitely shouldn\u0027t need to do this. setuptools is pulled in by pbr as necessary and this has been fixed as a dependency since at least 2025.1, which is the oldest we\u0027re supporting.","commit_id":"cea9e3ff85414f6b60afae76b96e23cf736cd4df"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"d1ce7f1b3d312fa664b12085af518c9f5709e810","unresolved":false,"context_lines":[{"line_number":60,"context_line":"# create virtualenv"},{"line_number":61,"context_line":"RUN uv venv /var/lib/openstack \\"},{"line_number":62,"context_line":"    \u0026\u0026 uv pip install --python /var/lib/openstack/bin/python \\"},{"line_number":63,"context_line":"      \"setuptools${SETUPTOOLS_CONSTRAINT}\" wheel"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"# Map REQUIREMENTS_REF to version for constraints URL"},{"line_number":66,"context_line":"# stable/2025.1 -\u003e 2025.1, stable/2025.2 -\u003e 2025.2, stable/2026.1 -\u003e 2026.1, master -\u003e master"}],"source_content_type":"text/x-dockerfile","patch_set":3,"id":"f3947810_9adab7e1","line":63,"in_reply_to":"16d9680a_d3478d44","updated":"2026-05-13 18:58:11.000000000","message":"Done","commit_id":"cea9e3ff85414f6b60afae76b96e23cf736cd4df"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"6b02c25b6511d684df16d4fda650f44bccedc688","unresolved":true,"context_lines":[{"line_number":60,"context_line":"# create virtualenv"},{"line_number":61,"context_line":"RUN uv venv /var/lib/openstack \\"},{"line_number":62,"context_line":"    \u0026\u0026 uv pip install --python /var/lib/openstack/bin/python \\"},{"line_number":63,"context_line":"      \"setuptools${SETUPTOOLS_CONSTRAINT}\" wheel"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"# Map REQUIREMENTS_REF to version for constraints URL"},{"line_number":66,"context_line":"# stable/2025.1 -\u003e 2025.1, stable/2025.2 -\u003e 2025.2, stable/2026.1 -\u003e 2026.1, master -\u003e master"}],"source_content_type":"text/x-dockerfile","patch_set":3,"id":"16d9680a_d3478d44","line":63,"in_reply_to":"d1958389_861af241","updated":"2026-05-13 18:48:03.000000000","message":"As I understand using the pbr is not requirement for openstack projects and setuptools can be not in either direct or transitive dependencies. Some old packages just assume the setuptools or pkg_resources is installed.","commit_id":"cea9e3ff85414f6b60afae76b96e23cf736cd4df"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"1ce963f51b47732dfc6d9e86c733f93852b72a18","unresolved":false,"context_lines":[{"line_number":60,"context_line":"# create virtualenv"},{"line_number":61,"context_line":"RUN uv venv /var/lib/openstack \\"},{"line_number":62,"context_line":"    \u0026\u0026 uv pip install --python /var/lib/openstack/bin/python \\"},{"line_number":63,"context_line":"      \"setuptools${SETUPTOOLS_CONSTRAINT}\" wheel"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"# Map REQUIREMENTS_REF to version for constraints URL"},{"line_number":66,"context_line":"# stable/2025.1 -\u003e 2025.1, stable/2025.2 -\u003e 2025.2, stable/2026.1 -\u003e 2026.1, master -\u003e master"}],"source_content_type":"text/x-dockerfile","patch_set":3,"id":"9c15c60b_633ba09b","line":63,"in_reply_to":"f3947810_9adab7e1","updated":"2026-05-13 19:14:18.000000000","message":"pbr is a requirement in every OpenStack package. That\u0027s what I\u0027m working on removing currently. I\u0027m working on removing the usage of setuptools silently in all OpenStack deps before removing pbr as well.","commit_id":"cea9e3ff85414f6b60afae76b96e23cf736cd4df"}]}
