Phillip J. Eby wrote: > 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.
Yes, I think you're right. >> 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? Useful if the above algorithm can be made to work: I have a package which does not directly require Plone (so I don't want this installed as a dependency), say, but which I know works with Plone 3, and not with Plone 2.5 (because of other things changing in Plone). In this case, I can usually signal this to other packages which wants "the version of this package which is known to work with the platform I'm using". Martin _______________________________________________ Distutils-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/distutils-sig
