[Distutils] GSoC 2017 - Working on pip

David Cournapeau cournape at gmail.com
Fri Feb 10 16:03:33 EST 2017


On Fri, Feb 10, 2017 at 3:52 PM, David Cournapeau <cournape at gmail.com>
wrote:

>
>
> On Fri, Feb 10, 2017 at 2:33 PM, Justin Cappos <jcappos at nyu.edu> wrote:
>
>> Yes, don't use a SAT solver.  It requires all metadata from all packages
>> (~30MB uncompressed) and gives hard to predict results in some cases.
>>
>
> I doubt there exists an algorithm where this is not the case.
>
>   Also the lack of fixed dependencies is a substantial problem for a SAT
>> solver.  Overall, we think it makes more sense to use a simple backtracking
>> dependency resolution algorithm.
>>
>
> As soon as you want to deal with version ranges and ensure consistency of
> the installed packages, backtracking stops being simple rather quickly.
>
> I agree lack of fixed dependencies is an issue, but I doubt it is specific
> to a SAT solver. SAT solvers have been used successfully in many cases now:
> composer (php), dnf (Red Hat/Fedora), conda or our own packages manager at
> Enthought in python, 0install.
>
> I would certainly be interested in seeing a proper comparison with other
> algorithms.
>

I don't have experience implementing non SAT dependency solvers, but I
suspect that whatever algorithm you end up using, the "core" is the simple
part, and tweaking heuristics will be the hard, developer-time consuming
part.

David

>
> David
>
>
>> Sebastien Awwad (CCed) has been looking at a bunch of data around the
>> speed and other tradeoffs of the different algos.  Sebastien:  Sometime
>> next week, can you write it up in a way that is suitable for sharing?
>>
>> Justin
>>
>> On Fri, Feb 10, 2017 at 1:59 PM, Wes Turner <wes.turner at gmail.com> wrote:
>>
>>> From the discussion on https://github.com/pypa/pip/is
>>> sues/988#issuecomment-279033079:
>>>
>>>
>>>    - https://github.com/ContinuumIO/pycosat (picosat)
>>>       - https://github.com/ContinuumIO/pycosat/blob/master/pycosat.c (C)
>>>       - https://github.com/ContinuumIO/pycosat/blob/master/picosat.c
>>>       - https://github.com/ContinuumIO/pycosat/tree/master/examples
>>>    - https://github.com/enthought/sat-solver (MiniSat)
>>>       - https://github.com/enthought/sat-solver/tree/master/simplesa
>>>       t/tests
>>>       - https://github.com/enthought/sat-solver/blob/master/requirem
>>>       ents.txt (PyYAML, enum34)
>>>
>>>
>>> Is there a better way than SAT?
>>>
>>> On Fri, Feb 10, 2017 at 12:20 PM, Pradyun Gedam <pradyunsg at gmail.com>
>>> wrote:
>>>
>>>> Yay! Thank you so much for a prompt and positive response! I'm pretty
>>>> excited and looking forward to this.
>>>>
>>>> On Thu, Feb 9, 2017, 20:23 Donald Stufft <donald at stufft.io> wrote:
>>>>
>>>> I’ve never done it before, but I’m happy to provide mentoring on this.
>>>>
>>>> On Feb 8, 2017, at 9:15 PM, Pradyun Gedam <pradyunsg at gmail.com> wrote:
>>>>
>>>> Hello Everyone!
>>>>
>>>> Ralf Gommers suggested that I put this proposal here on this list, for
>>>> feedback and for seeing if anyone would be willing to mentor me. So, here
>>>> it is.
>>>>
>>>> -----
>>>>
>>>> My name is Pradyun Gedam. I'm currently a first year student VIT
>>>> University in India.
>>>>
>>>> I would like to apply for GSoC 2017 under PSF.
>>>>
>>>> I currently have a project in mind - the "pip needs a dependency
>>>> resolver" issue [1]. I would like to take on this specific project but am
>>>> willing to do some other project as well.
>>>>
>>>> For some background, around mid 2016, I started contributing to pip.
>>>> The first issue I tackled was #59 [2] - a request for upgrade command and
>>>> an upgrade-all command that has been open for over 5.5 years. Over the
>>>> months following that, I've have had the opportunity to work with and
>>>> understand multiple parts of pip's codebase while working on this issue and
>>>> a few others. This search on GitHub issues [3] also provides a good summary
>>>> of what work I've done on pip.
>>>>
>>>> [2]: https://github.com/pypa/pip/issues/988
>>>> [2]: https://github.com/pypa/pip/issues/59
>>>> [3]: https://github.com/pypa/pip/issues?q=author%3Apradyunsg
>>>>
>>>> Eagerly-waiting-for-a-response-ly,
>>>> Pradyun Gedam
>>>>
>>>> _______________________________________________
>>>> Distutils-SIG maillist  -  Distutils-SIG at python.org
>>>> https://mail.python.org/mailman/listinfo/distutils-sig
>>>>
>>>>
>>>>
>>>>>>>>
>>>> Donald Stufft
>>>>
>>>>
>>>> _______________________________________________
>>>> Distutils-SIG maillist  -  Distutils-SIG at python.org
>>>> https://mail.python.org/mailman/listinfo/distutils-sig
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Distutils-SIG maillist  -  Distutils-SIG at python.org
>>> https://mail.python.org/mailman/listinfo/distutils-sig
>>>
>>>
>>
>> _______________________________________________
>> Distutils-SIG maillist  -  Distutils-SIG at python.org
>> https://mail.python.org/mailman/listinfo/distutils-sig
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20170210/5ec11558/attachment-0001.html>


More information about the Distutils-SIG mailing list