Open
Description
What's the problem this feature will solve?
Puting together some packages that have by default incompatible constraints.
Indeed:
- constraints are often meant by the package maintainer as:
. "accepting complains on this known/focus set of package",
. you're on your own support if you deviate, but not necessarly bad. - packages rarely focus on the same versions of complementary packages.
==> The new resolver may create more problems than solutions, when trying to build an environment with a large set of package.
Describe the solution you'd like
Be able to ignore voluntary some constraints
Wish:
- we can put some "relax" rule to over-rule too strict packages (for our need), because we know what we want:
pip install Spyder --relax relaxrules.r
, with relax file below meaning:
. if you want PyQt5, it must be 5.14.x
. if you want Jedi, it must be >=0.16
PyQt5~=5.14
Jedi>=0.16
Alternative Solutions
Today:
- I have to manually recompile from source "too strict" packages, to workaround this,
- or I would have to build one virtualenv per package,
- or I would only be able to use a specific Python distribution, with much older packages and Python version.
Additional context
Maintaining WinPython
** Current pip check **
- datasette 0.39 has requirement Jinja2~=2.10.3, but you have jinja2 2.11.2.
- astroid 2.3.3 has requirement wrapt==1.11.*, but you have wrapt 1.12.1.
** Current workaround **
- Spyder manually recompiled to accept :
. PyQt5-5.14.2 (as pip doesn't have a "long term support" of PyQt5-5.12, so the fresher version is safer)
other wishes:
- a basic GUI on Pip (tkinter or web) would still be nice, to have a better view of all the coming version conflicts.