
Hi --
[cc'd to the distutils-sig, since this turns out to deserve a public airing rather than being the private email it started out as]
after *waaay* too long, I've finally gotten around to looking at the "pkginfo" patch to the Distutils you posted back in January. A few comments:
* I'm not convinced a separate PackageInfo class is needed -- the Distribution stuff is the home for package meta-data, and if it gets a bit more complex (eg. dependencies list), I think that's OK. I definitely don't like having two classes (Distribution and PackageInfo) with largely the same info, though.
* I'm leery of doing the fancy stuff, namely required packages and compatible versions. While your data model might well be the Right Thing, it might not, and I don't think this stuff has been sufficiently discussed on the SIG. And I'm also not sure that adding slots for the data without having code to back them up is right, either. On the one hand, it's good to get people in the habit of listing requirements/dependencies, but I don't want to raise false expectations that the Distutils will actually *do* anything with that information. (It will someday, but post-Distutils 1.0/Python 1.6.)
* I find your type-checking machinery in pkginfo.py intriguing, but again I'm not sure if it's appropriate. It's a neat approach to a common problem, but strikes me as over-engineered for this one module. If I'm going to do really thorough type-checking on the attributes of one class, I'd rather do it everywhere.
Anyways, my inclination right now is to take the important stuff from pkginfo.py -- writing the "package info" file -- and graft it into install_info.py. I suppose reading the "package info" file will also be necessary to support an uninstall script. (*Not* an uninstall command, because you don't want to require having the source distribution around in order to uninstall something!)
What say you? [And what say other members of the SIG?]
Greg