On Tue, Sep 30, 2008 at 10:51 AM, Phillip J. Eby email@example.com wrote:
At 12:25 PM 9/30/2008 -0400, A.M. Kuchling wrote:
On Tue, Sep 30, 2008 at 10:41:11AM -0500, Ian Bicking wrote:
FWIW, pyinstall can collect all the packages before installing any of them. You do have to download all packages, though, as that's the only way to get the metadata.
Does the DOAP output for a package not contain enough metadata?
Nope. And it can't possibly do so, unless it contains dependency data for every possible variation of the package. For example, a package might dynamically declare dependency on ctypes, depending on whether you're installing it for Python 2.4 or Python 2.5. (Dependencies can also be platform-specific and build-option-specific, as well as Python-version-specific.)
Not to mention the DOAP vocabulary lacks a way to describe dependency information. This is planned but it has to be well thought out because of all the variations Philip mentions.
The good news is much of this dependency info is already in existence in Linux distributions. Take a Gentoo ebuild, for example. It has separate run-time, build-time and test dependency info, dependencies based on enabled features, and dependencies based on the version of Python used.
Ebuilds also have metadata mapping the PyPI name to the Gentoo package name, so it'll be easy enough to create a database with all this info.