[Distutils] (How) do setuptools/distribute/pip handle circular dependencies?

Daniel Holth dholth at gmail.com
Sat Nov 10 13:30:12 CET 2012


The new metadata keeps setup-requires-dist separate, and test and doc
dependencies are well-known extra names. The granularity is preserved.
On Nov 10, 2012 6:52 AM, "Vinay Sajip" <vinay_sajip at yahoo.co.uk> wrote:

> Carl Meyer <carl <at> oddbird.net> writes:
>
> > already satisfied. In pip this happens here:
> > https://github.com/pypa/pip/blob/develop/pip/req.py#L1091
> >
> > More generally, I wouldn't really recommend pip's dependency resolution
> > logic as a model for new Python code in this area. There are some not
> > uncommon cases that it handles poorly; see
> > https://github.com/pypa/pip/issues/174 and
> > http://bugs.python.org/issue8927. (To be fair to pip, these cases aren't
> > trivial when you have to download and unpack an sdist before you can
>
> Thanks for the pointers.
>
> > find out anything about its dependencies, but I'd hope that with the new
> > metadata PEPs Python packaging code could get a bit smarter in this
> area.)
>
> AFAICT, the proposed metadata PEP changes don't offer the same requirement
> granularity as setuptools / distribute (for example, 'Requires-Dist' as
> against
> 'install_requires', 'setup_requires', 'test_requires').
>
> Anyway, I'll take a look at the issue you mentioned and see how the
> dependency
> code in distlib stacks up. Currently, it keeps the requirements distinct
> for
> 'install', 'setup' and 'test'. The distinctions seem reasonable in theory,
> though I'm not sure how useful they are in practice.
>
> In the case I was quoting, the circular dependency wasn't being treated as
> any
> kind of conflict - I just came across cycles when testing topological
> sorting of
> dependency graphs, and was curious about them.
>
> Regards,
>
> Vinay Sajip
>
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG at python.org
> http://mail.python.org/mailman/listinfo/distutils-sig
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20121110/f9489cbe/attachment.html>


More information about the Distutils-SIG mailing list