At 11:26 PM 8/10/2005 +0100, Paul Moore wrote:
Hence my interest in management tools - installers come with a number of benefits "free", as part of the Windows installer architecture - you get an uninstall "command", you can see a listing of installed packages, and you can see the version numbers of those packages. Until I can do the same with eggs, they are a step backwards for me. So that's why I want to build these features.
OK, so given that I have to write some code to bring eggs onto a par with installers, where's the benefit of eggs, *to me*, which would make me want to switch to them in the first place? And that's where I get stalled. I can see lots of benefits to eggs - for example Trac's new feature allowing you to just drop an egg containing a plugin into a predefined directory is really exciting - but they don't apply to my simple requirement to install packages like cx_Oracle, pywin32, ctypes, Cheetah, into my standard Python installation.
So - a question for Phillip. Do you see eggs supplanting bdist_wininst installers on Windows as the standard way of distributing Python packages?
Guardedly, I'd say yes -- once the tools mature, I think they'll become a popular distribution mechanism. (OTOH, EasyInstall already converts bdist_wininst installers to almost-perfect eggs already, so this is sort of moot.) However, the aim is somewhat more at providing a better way for application developers to ship applications, plugins, and needed libraries.
If so, what do you see as the benefit to the end user, which would prompt that switch? *Not* to the package developer, please note
Better applications and packages, because with eggs you can specify dependencies. This means that people will develop smaller more reusable packages rather than reinventing wheels, and the overall ecosystem will improve in software quality. Yeah, I know that's not what you meant, but ultimately it is the real benefit to doing all this. :)
- ultimately a developer can just as easily run python setup.py bdist_wininst as python setup.py bdist_egg, and I doubt that users will switch enthusiastically to using eggs simply because developers switch to only offering them... (Switch maybe, but I doubt the enthusiasm :-))
This is more than just a philosophical issue, in that a lot of the egg infrastructure (development installs, for example) don't seem to me to be relevant to the end user scenario.
Who is an "end user" here? To me, if you're installing stuff into your Python installation, you're obviously a developer. Eggs are especially meant to help install stuff for applications whose users don't even know what Python *is* - i.e., "real" end-users in my book. :) Now, if by "end user" you mean a developer who isn't distributing anything of their own, then yeah, having some egg management tools besides Windows Explorer might be nice. :) For that matter, even if you are doing more sophisticated things with eggs, better management tools would be nice.
So, from my perspective, I don't understand the imperatives which make them useful,
If you look at it from the POV of a non-distributing developer using Windows, then the main benefit is going to be having multiple versions of something installed at the same time. A second benefit is dependency resolution via EasyInstall; i.e. that you can get all the packages something needs to work, without having to track them down one by one. Future additional benefits may include signature checking and the like (as soon as we come up with a signature format).