eggs considered harmful

Robert Kern robert.kern at gmail.com
Thu Jun 21 19:36:55 EDT 2007


Harry George wrote:
> ...at least around here.
> 
> I run a corporate Open Source Software Toolkit, which makes hundreds
> of libraries and apps available to thousands of technical employees.
> The rules are that a) a very few authorized downloaders obtain
> tarballs and put them in a depot and b) other users get tarballs from
> the depot and build from source.
> 
> Historically, python packages played well in this context.  Install
> was a simple download, untar, setup.py build/install.
> 
> Eggs and with other setuptools-inspired install processes break this
> paradigm.  The tarballs are incomplete in the first place.  The builds
> sometimes wander off to the internet looking for more downloads.  The
> installs sometimes wander off to the internet looking for
> compatibility conditions.  (Or rather they try to do so and fail
> because I don't let themn through the firewall.)

Have you considered establishing a policy that these setuptools-using packages
should be installed using the --single-version-externally-managed option to the
install command? This does not check for dependencies.

Alternately, you can provide a company repository of the tarballs and their
depedencies tarballs. Your users can use the easy_install option --find-links to
point to that URL such that they do not have to go outside of the firewall to
install everything.

> These are unacceptable behaviors.  I am therefore dropping ZODB3, and
> am considering dropping TurboGears and ZSI.  If the egg paradigm
> spreads, yet more packages will be dropped (or will never get a chance
> to compete for addition).

I'm sorry to hear that.

> I've asked before, and I'll ask again: If you are doing a Python
> project, please make a self-sufficient tarball available as well.  You
> can have dependencies, as long as they are documented and can be
> obtained by separate manual download. 

Given the options I outlined above, you can easily satisfy these requirements
for the vast majority of setuptools-using packages that are out there. There are
a handful of packages that only distribute the eggs and not the source tarballs,
but those are rare.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco




More information about the Python-list mailing list