At 10:19 AM 5/29/2010 +0200, Tarek Ziadé wrote:
I was not thinking about this proposal. If this what Guido proposed at the summit, then I misunderstood.
I don't know what he proposed at the summit - I'm referring to the bootstrap script he wrote that actually does this. It was a couple years ago on Python-Dev, IIRC.
The problem with the feature you describe (bootstrap embed in the archive itself) is that we imply that the packager chooses himself an installer and forces the end-user to use it when he installs the software. This means that the end user might end up with several installers installed for the same Python.
So? It's not like they're going to accidentally run 'easy_install' when they meant to type 'pip', or vice versa. ;-)
It also implies that the developer provides a smart setup.py script that embeds that bootstrap, and runs some code.
Only if they need something beyond what the distutils provide.
It will also allow distributions to be "dumb" envelopes with static metadata that are the same all the time, no matter which tool created them, and eventually remove setup.py in favor of statically described metadata using PEP 345.
For packages with complex build requirements or distutils extensions (e.g. numpy), this is unlikely to happen any time soon. Conversely, for packages where this *is* the case, the current distutils is adequate, and having a bootstrapper that can install them would be a win.
Today, for instance, if an installer wants to install a distribution based on setuptools, it has to run the "egg_info" command to extract the metadata, on the target system.
It's a good thing Guido loaned me the time machine so I could go back to 2005 and fix that one, then: http://svn.python.org/view/sandbox/trunk/setuptools/setuptools/command/sdist.py?view=diff&r1=41093&r2=41094 Five years should be long enough ago that by now all the setuptools-based source distributions on PyPI today will already have the metadata you need... so when you go back and try again to build your new installer today, it will already be there for you to use. Just download any random setuptools-based sdist from PyPI and run "tar -tzf" or "unzip -v" on it to see! For that matter, it's long enough ago that you should also have the fix already retroactively included in Distribute as well, so you should probably even be able to look at one of Distribute's own source distributions and see that it now contains the metadata you require. ;-)