On Sep 24, 2008, at 0:27 AM, David Cournapeau wrote:
If you look at the ruby gem page, you have one link for a specification; I have not done it, and maybe I would realize I were wrong by trying it, but I got the impression I could generate gems myself from the specification. Can I do that with eggs ?
How about this: http://peak.telecommunity.com/DevCenter/EggFormats
There is also the problem that by making some things easy but effectively "magic", when it breaks, you don't know how to fix.
I agree that this is a problem. People interested in improving it should read Philip J. Eby's post "setuptools: past, present, future" from 2006: http://mail.python.org/pipermail/python-dev/2006-April/064145.html Since then we've made a great step forward by having the distutils in Python 2.5 and newer automatically produce .egg-info files. Then, we made another step forward when we persuaded Linux distributions like Debian and Red Hat to stop deleting those .egg- info files. ;-) In my opinion the next step forward at this layer of basic compatibility is to formalize setuptools's "requirements" syntax (mainly install_requires, but also setup_requires, test_requires, and extras_require) as a standard part of Python. Note that I am not saying anything about the implementation of how requirements get satisfied, which we've already failed to agree on for a Python standard, only that if developers want to write down "My package depends on package XYZ" in their package's meta-data, that they can do so in a single, standard syntax so that all of the new crop of packaging tools can read what they wrote. Of course, this standard syntax should be compatible with the most widely-used current implementation -- setuptools/easy_install. This is an opportunity to standardize some basic metadata, not to innovate and not to standardize anything harder and more implementation- specific than simple dependency declaration. Regards, Zooko --- http://allmydata.org -- Tahoe, the Least-Authority Filesystem http://allmydata.com -- back up all your files for $5/month