[Distutils] Reverse dependencies
Phillip J. Eby
pje at telecommunity.com
Mon May 14 01:45:32 CEST 2007
At 11:30 PM 5/13/2007 +0100, Martin Aspeli wrote:
>I won't pretend to have thought this through to very end, but I don't
>quite understand why this should be so hard, then.
>
>The algorithm would be something like:
>
> - I support platform Plone, version >= 3.0.1 and < 4
> - I am looking for package your.package, version >= 1.0
> - The most recent version that satisfies this is 2.1
> - Version 2.1 declares it supports Plone >=4, can't use that
> - The second-most-recent version that satisfies
> your.package >= 1.0 is 2.0
> - Version 2.0 declares it supports Plone 3.9, okay, we can use that
>
> - Repeat check for Zope
This isn't actually any different than a backtracking dependency
search. The only thing that makes it (potentially) simpler is that
it could simply allow backing off only for immediate dependencies,
rather than backtracking transitive dependencies.
That is, while selecting the "best version available" of a package,
we could check its immediate dependencies for conflict with all known
dependencies, and automatically back off.
Practically speaking, however, it's still considerably more complex
than the existing algorithm -- and still not certain to produce valid results.
>One difference to straight dependencies, by the way, is the case where
>you support (or a package is known to work with) a platform, without
>necessarily needing to depend on it. That may be useful metadata.
Useful for what?
More information about the Distutils-SIG
mailing list