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
