4 ms·
They either haven't experience the pain or are oblivious to it. Pip old resolver is borked[0]: > [The new resolver] will reduce inconsistency: it will no longe
by nitely 6y ago
They either haven't experience the pain or are oblivious to it. Pip old resolver is borked[0]:
> [The new resolver] will reduce inconsistency: it will no longer install a combination of packages that is mutually inconsistent. At the moment, it is possible for pip to install a package which does not satisfy the declared requirements of another installed package. For example, right now, pip install "six<1.12" "virtualenv==20.0.2" does the wrong thing, “successfully” installing six==1.11, even though virtualenv==20.0.2 requires six>=1.12.0,<2 (defined here). The new resolver would, instead, outright reject installing anything if it got that input.
[0]: https://pyfound.blogspot.com/2020/03/new-pip-resolver-to-roll-out-this-year.html https://pyfound.blogspot.com/2020/03/new-pip-resolver-to-rol...
- ptx 6y agoThat would probably be caught by the CI, though, wouldn't it? One of the packages would fail to install in a clean venv and the tests would fail.
- ArchOversight 6y agoNot if you used the old version of pip. That is hopefully fixed now with the new resolver.
- ptx 6y agoHm, you're right. I misread it as saying that it would 1) install six, 2) fail to install virtualenv and 3) fail to report an error. But the old resolver actually installs both packages, even though it should just abort.
- kstrauser 6y agoNo, it won't be caught in CI. The old version of pip didn't recognize that as an error condition.
- divbzero 6y agoI haven’t found a compelling need to switch to Poetry, but independent experimentation and competition can be good thing. I wouldn’t be surprised if the new pip resolver was partly inspired by Poetry, similar to how some NPM improvements were motivated by Yarn. [1] [1]: https://javascript.christmas/2019/10 https://javascript.christmas/2019/10