On 27 October 2015 at 21:47, David Cournapeau <courn...@gmail.com> wrote:
> Another simple solution for this particular case is to add conflict rules > between packages that provide the same requirement (that's what php's > composer do IIRC). > > The case of safety against malicious forks is handled quite explicitly in > composer, we may want to look at how they do it when considering solutions > (e.g. https://github.com/composer/composer/issues/2690, though it has > changed a bit since then) > > Adding the provides/conflict concepts to pip resolver will complexify it > quite significantly, both in terms of running time complexity (since at that > point you are solving a NP-complete problem) and in terms of implementation. > But we also know for real cases this is doable, even in pure python > (composer handles all the cases you are mentioning, and is in pure php). We already require a full NP-complete solver because of <, <= and ~ version operators. I haven't adsorbed this proposal enough to comment on the reification aspect yet. I'm worried about provides and conflicts in general, but not from a resolver code perspective - thats a one-ish-time-cost, but instead from a user experience perspective. -Rob -- Robert Collins <rbtcoll...@hp.com> Distinguished Technologist HP Converged Cloud _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig