<div dir="ltr">Hello Jeremy,<div><br></div><div>Thanks for the reply. Others are attempting to fix here <a href="https://review.opendev.org/c/openstack/magnum/+/767228">https://review.opendev.org/c/openstack/magnum/+/767228</a></div><div>Not sure why only magnum is affected by this. I'll point them here.</div><div><br></div><div>Thanks,</div><div>Spyros</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Dec 8, 2020 at 6:13 PM Jeremy Stanley <<a href="mailto:fungi@yuggoth.org">fungi@yuggoth.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 2020-12-08 13:36:09 +0100 (+0100), Spyros Trigazis wrote:<br>
> openstack-tox-lower-constraints fails for bashate and coverage.<br>
> (Maybe more, I bumped bashate and it failed for coverage. I don;t<br>
> want to waste more resources on our CI)<br>
> eg <a href="https://review.opendev.org/c/openstack/magnum/+/765881" rel="noreferrer" target="_blank">https://review.opendev.org/c/openstack/magnum/+/765881</a><br>
> <a href="https://review.opendev.org/c/openstack/magnum/+/765979" rel="noreferrer" target="_blank">https://review.opendev.org/c/openstack/magnum/+/765979</a><br>
> <br>
> Do we miss something?<br>
<br>
Pip 20.3.0, released 8 days ago, turned on a new and much more<br>
thorough dependency resolver. Earlier versions of pip did not try<br>
particularly hard to make sure the dependencies claimed by packages<br>
were all satisfied. Virtualenv 20.2.2 released yesterday and<br>
increased the version of pip it's vendoring to a version which uses<br>
the new solver as well. These changes mean that latent version<br>
conflicts are now being correctly identified as bugs, and these jobs<br>
will do a far better job of actually confirming the declared<br>
versions of dependencies are able to be tested.<br>
<br>
One thing which looks really weird and completely contradictory to<br>
me is that your lower-constraints job on change 765881 is applying<br>
both upper and lower constraints lists to the pip install command.<br>
Maybe the lower constraints list is expected to override the earlier<br>
upper constraints, but is that really going to represent a<br>
compatible set? That aside, trying to reproduce locally I run into<br>
yet a third error:<br>
<br>
    Could not find a version that satisfies the requirement<br>
        warlock!=1.3.0,<2,>=1.0.1 (from python-glanceclient)<br>
<br>
And indeed, python-glanceclient insists warlock 1.3.0 should be<br>
skipped, while magnum's lower-constraints.txt says you must install<br>
warlock==1.3.0 so that's a clear contradiction as well.<br>
<br>
My recommendation is to work on reproducing this locally first and<br>
play a bit of whack-a-mole with the entries in your<br>
lower-constraints.txt to find versions of things which will actually<br>
be coinstallable with current versions of pip. You don't need to run<br>
the full tox testenv, just try installing your constrainted deps<br>
into a venv with upgraded pip like so:<br>
<br>
    python3.8 -m venv foo<br>
    foo/bin/pip install -U pip<br>
    foo/bin/pip install -c lower-constraints.txt \<br>
        -r test-requirements.txt -r requirements.txt<br>
<br>
You'll also likely want to delete and recreate the venv each time<br>
you try, since pip will now also try to take the requirements of<br>
already installed packages into account, and that might further<br>
change the behavior you see. Hope that helps!<br>
-- <br>
Jeremy Stanley<br>
</blockquote></div>