platformdirs>=3 was introduced into openstacksdk by the fix b34de32a5 [1], it only exists in openstack sdk master branch.
but python-ironicclient is using openstacksdk>=0.18.0, charm-nova-cloud-controller will call zaza.openstack then call python-ioricclient, and python3.6 doesn't have platformdirs>=3, so any releases using openstack-tox-py36 like U, V, W, X will throw the following exception.
ERROR: Could not find a version that satisfies the requirement platformdirs>=3 (from openstacksdk>=0.18.0->python-ironicclient->zaza.openstack->-r /home/zuul/src/opendev.org/openstack/charm-nova-cloud-controller/test-requirements.txt (line 37)) (from versions: 2.0.0a1, 2.0.0a2, 2.0.0a3, 2.0.0, 2.0.2, 2.1.0, 2.2.0, 2.3.0, 2.4.0)
ERROR: No matching distribution found for platformdirs>=3 (from openstacksdk>=0.18.0->python-ironicclient->zaza.openstack->-r /home/zuul/src/opendev.org/openstack/charm-nova-cloud-controller/test-requirements.txt (line 37))
You can see lot of CI failure from this page [2], all failed CIs are using openstack-tox-py36
Only ussuri needs to test against py36, to support bionic-ussuri. victoria, wallaby, xena+ are focal only (py38).
We can pin openstacksdk < 2.0 to stop this issue. It probably needs pinning for everything < master as 2.0 'only' came out on Oct 19, which is after the bobcat/2023.2 release.
We should actually be quite strict and pin aggressively using pip-compile. However, I expect that that will come with a world of pain as we'll have incompatible pinning through the libraries (especially zaza vs zaza-openstack-tests). Thus pinning for zaza and zaza-openstack-tests will need to be done in concert.
platformdirs>=3 was introduced into openstacksdk by the fix b34de32a5 [1], it only exists in openstack sdk master branch.
but python-ironicclient is using openstacksdk>=0.18.0, charm-nova-cloud-controller will call zaza.openstack then call python-ioricclient, and python3.6 doesn't have platformdirs>=3, so any releases using openstack-tox-py36 like U, V, W, X will throw the following exception.
ERROR: Could not find a version that satisfies the requirement platformdirs>=3 (from openstacksdk>=0.18.0->python-ironicclient->zaza.openstack->-r /home/zuul/src/opendev.org/openstack/charm-nova-cloud-controller/test-requirements.txt (line 37)) (from versions: 2.0.0a1, 2.0.0a2, 2.0.0a3, 2.0.0, 2.0.2, 2.1.0, 2.2.0, 2.3.0, 2.4.0) ERROR: No matching distribution found for platformdirs>=3 (from openstacksdk>=0.18.0->python-ironicclient->zaza.openstack->-r /home/zuul/src/opendev.org/openstack/charm-nova-cloud-controller/test-requirements.txt (line 37))
You can see lot of CI failure from this page [2], all failed CIs are using openstack-tox-py36
[1] https://github.com/openstack/openstacksdk/blob/master/requirements.txt [2] https://review.opendev.org/q/topic:bug%252F2021550