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? 

_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to