Hi all!

After a very interesting and enlightening discussion with Sean and Clark on IRC (thanks!),
we were able to test and verify that the issue is related to the latest released version
of virtualenv, v2.0.29, that embeds pip 2.20, apparently the real offender here.
I submitted a bug to virtualenv [1] for that, the fix is included in pip 2.20.1.
The bump in virtualenv is already up [2] and merged and a new version has been
released, v2.0.30 [3], that should solve this issue.

[1] https://github.com/pypa/virtualenv/issues/1914
[2] https://github.com/pypa/virtualenv/pull/1915
[3] https://pypi.org/project/virtualenv/20.0.30/

A si biri,

Riccardo


On Tue, Aug 4, 2020 at 3:26 PM Jeremy Stanley <fungi@yuggoth.org> wrote:
On 2020-08-04 14:11:03 +0100 (+0100), Sean Mooney wrote:
[...]
> so if i understand the workaound correclty we woudl add -c
> {env:CONSTRAINTS_OPT} to install_command so "install_command = pip
> install -U {opts} {packages} -c {env:CONSTRAINTS_OPT}" in our case
> and then for the lower contriats jobs in stead of
>
> deps =
>   -c{toxinidir}/lower-constraints.txt
>   -r{toxinidir}/requirements.txt
>   -r{toxinidir}/test-requirements.txt
>   -r{toxinidir}/doc/requirements.txt
>
> we would do
>
> setenv =
>  CONSTRAINTS_OPT=-c{toxinidir}/lower-constraints.txt
> deps =
>   -r{toxinidir}/requirements.txt
>   -r{toxinidir}/test-requirements.txt
>   -r{toxinidir}/doc/requirements.txt
>
> that way we can keep the same install command for both but use the
> correct constrint file.
[...]

Yep, Sean McGinnis is trying a variant of that in
https://review.opendev.org/744698 now to see if it alters tox's
behavior like we expect.
--
Jeremy Stanley