<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Is there a point to distributing .egg files?</title>
	<atom:link href="http://philikon.wordpress.com/2008/06/26/is-there-a-point-to-distributing-egg-files/feed/" rel="self" type="application/rss+xml" />
	<link>http://philikon.wordpress.com/2008/06/26/is-there-a-point-to-distributing-egg-files/</link>
	<description>Philipp on software and other interesting things</description>
	<lastBuildDate>Thu, 01 Oct 2009 18:05:34 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Chris Galvan</title>
		<link>http://philikon.wordpress.com/2008/06/26/is-there-a-point-to-distributing-egg-files/#comment-279</link>
		<dc:creator>Chris Galvan</dc:creator>
		<pubDate>Sat, 27 Dec 2008 06:18:30 +0000</pubDate>
		<guid isPermaLink="false">http://philikon.wordpress.com/?p=11#comment-279</guid>
		<description>@Ryan:  I&#039;m not sure exactly what problem you are explaining :)  Using setuptools, you can have the same namespaces in different eggs and they won&#039;t overlap(overrule) eachother, if this is what you are afraid of.  Instead, the namespace would be extended to contain the contents from each egg.

Was this the problem you were describing or am I way off? :)</description>
		<content:encoded><![CDATA[<p>@Ryan:  I&#8217;m not sure exactly what problem you are explaining <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Using setuptools, you can have the same namespaces in different eggs and they won&#8217;t overlap(overrule) eachother, if this is what you are afraid of.  Instead, the namespace would be extended to contain the contents from each egg.</p>
<p>Was this the problem you were describing or am I way off? <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin Ryan</title>
		<link>http://philikon.wordpress.com/2008/06/26/is-there-a-point-to-distributing-egg-files/#comment-161</link>
		<dc:creator>Justin Ryan</dc:creator>
		<pubDate>Sun, 21 Sep 2008 21:07:56 +0000</pubDate>
		<guid isPermaLink="false">http://philikon.wordpress.com/?p=11#comment-161</guid>
		<description>Whups, there should have been a comma after __init__.py above, and a lower &#039;s&#039; on surely.</description>
		<content:encoded><![CDATA[<p>Whups, there should have been a comma after __init__.py above, and a lower &#8217;s&#8217; on surely.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin Ryan</title>
		<link>http://philikon.wordpress.com/2008/06/26/is-there-a-point-to-distributing-egg-files/#comment-160</link>
		<dc:creator>Justin Ryan</dc:creator>
		<pubDate>Sun, 21 Sep 2008 21:06:57 +0000</pubDate>
		<guid isPermaLink="false">http://philikon.wordpress.com/?p=11#comment-160</guid>
		<description>Has anyone considered that the whole idea of eggs as deployment is a bit of a mess as well?  I haven&#039;t profiled, but a lot more work must be happening to traverse more numerous, deep directory structures, many of whom are mirrors of each other, confusing the always-beautiful packages-are-directories meme that makes Python so easy to deal with at a large scale, or should.

When you have a package like plone.* or zope.* which has 5, 10, 20 subpackages depending on how many levels you look at, and each of those has its&#039; own entire tree with a &#039;zope&#039; or &#039;plone&#039; subdirectory and some boilerplate __init__.py.  Surely there must be some overhead to reconciling these mirrored or, depending on how you look at it, overlapping namespaces.

I agree that, eggs or sdist, it&#039;s nice to have a simple, atomic package representing a given bit of functionality which may work on its&#039; own or at least without *all* of the packages from the master, but it seems that omelettes are ideal for deployment, once you&#039;ve selected the packages.

What we do now in a typical buildout is akin to extracting each package for a gnu/linux system, and symlinking its&#039; contents into place, and symlinking the contents into another place.

Who&#039;s with me!? ;)</description>
		<content:encoded><![CDATA[<p>Has anyone considered that the whole idea of eggs as deployment is a bit of a mess as well?  I haven&#8217;t profiled, but a lot more work must be happening to traverse more numerous, deep directory structures, many of whom are mirrors of each other, confusing the always-beautiful packages-are-directories meme that makes Python so easy to deal with at a large scale, or should.</p>
<p>When you have a package like plone.* or zope.* which has 5, 10, 20 subpackages depending on how many levels you look at, and each of those has its&#8217; own entire tree with a &#8216;zope&#8217; or &#8216;plone&#8217; subdirectory and some boilerplate __init__.py.  Surely there must be some overhead to reconciling these mirrored or, depending on how you look at it, overlapping namespaces.</p>
<p>I agree that, eggs or sdist, it&#8217;s nice to have a simple, atomic package representing a given bit of functionality which may work on its&#8217; own or at least without *all* of the packages from the master, but it seems that omelettes are ideal for deployment, once you&#8217;ve selected the packages.</p>
<p>What we do now in a typical buildout is akin to extracting each package for a gnu/linux system, and symlinking its&#8217; contents into place, and symlinking the contents into another place.</p>
<p>Who&#8217;s with me!? <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Galvan</title>
		<link>http://philikon.wordpress.com/2008/06/26/is-there-a-point-to-distributing-egg-files/#comment-49</link>
		<dc:creator>Chris Galvan</dc:creator>
		<pubDate>Fri, 27 Jun 2008 15:22:19 +0000</pubDate>
		<guid isPermaLink="false">http://philikon.wordpress.com/?p=11#comment-49</guid>
		<description>@philikon: Yes, that is a more difficult issue to solve and to account for specific compile-time settings in the egg identifiers could clutter the egg names pretty quickly :)

In order to circumvent these issues, we (Enthought) ship a fully built version of Python with our extra packages included that can be installed along-side existing Python installations without conflicts.  You can then get updates to these packages from our egg repositories, which have all been built against a Python installation that will be compatible with the end-users&#039;.

While this doesn&#039;t solve the issue you mentioned for user&#039;s who simply want to install a few select packages within their current installation, it does solve our large-scale distribution problem.</description>
		<content:encoded><![CDATA[<p>@philikon: Yes, that is a more difficult issue to solve and to account for specific compile-time settings in the egg identifiers could clutter the egg names pretty quickly <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In order to circumvent these issues, we (Enthought) ship a fully built version of Python with our extra packages included that can be installed along-side existing Python installations without conflicts.  You can then get updates to these packages from our egg repositories, which have all been built against a Python installation that will be compatible with the end-users&#8217;.</p>
<p>While this doesn&#8217;t solve the issue you mentioned for user&#8217;s who simply want to install a few select packages within their current installation, it does solve our large-scale distribution problem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: philikon</title>
		<link>http://philikon.wordpress.com/2008/06/26/is-there-a-point-to-distributing-egg-files/#comment-48</link>
		<dc:creator>philikon</dc:creator>
		<pubDate>Fri, 27 Jun 2008 14:52:42 +0000</pubDate>
		<guid isPermaLink="false">http://philikon.wordpress.com/?p=11#comment-48</guid>
		<description>@Chris: That&#039;s interesting, though my experience with  Linux binaries has been far more problematic just rpath problems. For instance, some Linux distributions compile their Python with the UCS4 setting for unicode, some with UCS2 or whatever it is. As far as I can tell, there&#039;s no way to work around that and the egg identifier doesn&#039;t account for this compile-time setting.</description>
		<content:encoded><![CDATA[<p>@Chris: That&#8217;s interesting, though my experience with  Linux binaries has been far more problematic just rpath problems. For instance, some Linux distributions compile their Python with the UCS4 setting for unicode, some with UCS2 or whatever it is. As far as I can tell, there&#8217;s no way to work around that and the egg identifier doesn&#8217;t account for this compile-time setting.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Galvan</title>
		<link>http://philikon.wordpress.com/2008/06/26/is-there-a-point-to-distributing-egg-files/#comment-47</link>
		<dc:creator>Chris Galvan</dc:creator>
		<pubDate>Fri, 27 Jun 2008 14:35:11 +0000</pubDate>
		<guid isPermaLink="false">http://philikon.wordpress.com/?p=11#comment-47</guid>
		<description>Without any additional modifications, yes eggs do not lend themselves as a distribution mechanism, but there is a potential there that has not been realized by most people.  The main obstacle is binary compatibility, but this can be overcome with post-install scripts that fix up the rpaths and mach-o headers, for Linux flavors and Mac OS X respectively, of the binaries inside the eggs.  

As an example, hdf5&#039;s extensions are linked against zlib libraries and you can&#039;t be certain what version of zlib an end-user may have on their system.  However, if you ship the zlib runtime libraries with the egg and then fix up the rpaths(or mach-o headers) to point inside the egg, you have a self-contained egg that will work regardless of the end-user&#039;s installed version of zlib.

The company I work for (Enthought) uses eggs on a large-scale of distribution and so far it has worked on Windows, 2 flavors of Linux and Mac OS X.  There are already tools in place that can be used to modify rpath&#039;s and mach-o headers in order to deliver dynamically-linked binaries.  For Linux, there is a tool called chrpath and for OS X there is macholib.

There is definitely more potential in eggs than is currently credited towards them, as I have seen them successfully used as a distribution mechanism across a range of platforms.  Some changes would need to be made in setuptools though in order for everyone to take advantage of them.</description>
		<content:encoded><![CDATA[<p>Without any additional modifications, yes eggs do not lend themselves as a distribution mechanism, but there is a potential there that has not been realized by most people.  The main obstacle is binary compatibility, but this can be overcome with post-install scripts that fix up the rpaths and mach-o headers, for Linux flavors and Mac OS X respectively, of the binaries inside the eggs.  </p>
<p>As an example, hdf5&#8217;s extensions are linked against zlib libraries and you can&#8217;t be certain what version of zlib an end-user may have on their system.  However, if you ship the zlib runtime libraries with the egg and then fix up the rpaths(or mach-o headers) to point inside the egg, you have a self-contained egg that will work regardless of the end-user&#8217;s installed version of zlib.</p>
<p>The company I work for (Enthought) uses eggs on a large-scale of distribution and so far it has worked on Windows, 2 flavors of Linux and Mac OS X.  There are already tools in place that can be used to modify rpath&#8217;s and mach-o headers in order to deliver dynamically-linked binaries.  For Linux, there is a tool called chrpath and for OS X there is macholib.</p>
<p>There is definitely more potential in eggs than is currently credited towards them, as I have seen them successfully used as a distribution mechanism across a range of platforms.  Some changes would need to be made in setuptools though in order for everyone to take advantage of them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martin Aspeli</title>
		<link>http://philikon.wordpress.com/2008/06/26/is-there-a-point-to-distributing-egg-files/#comment-46</link>
		<dc:creator>Martin Aspeli</dc:creator>
		<pubDate>Fri, 27 Jun 2008 10:54:24 +0000</pubDate>
		<guid isPermaLink="false">http://philikon.wordpress.com/?p=11#comment-46</guid>
		<description>I hadn&#039;t appreciated this before and am guilty of uploading many a .egg file. I&#039;ll stop, though. :)

To PJE&#039;s point, JAR files are also the main distribution mechanism in Java land, so I think the analogy there could cause some confusion. WAR and EAR files are more of a deployment concern for web apps, but will contain many libraries and other files, like templates and configuration files, so that&#039;s not a perfect analogy either.

Cheers,
Martin</description>
		<content:encoded><![CDATA[<p>I hadn&#8217;t appreciated this before and am guilty of uploading many a .egg file. I&#8217;ll stop, though. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>To PJE&#8217;s point, JAR files are also the main distribution mechanism in Java land, so I think the analogy there could cause some confusion. WAR and EAR files are more of a deployment concern for web apps, but will contain many libraries and other files, like templates and configuration files, so that&#8217;s not a perfect analogy either.</p>
<p>Cheers,<br />
Martin</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brandon Craig Rhodes</title>
		<link>http://philikon.wordpress.com/2008/06/26/is-there-a-point-to-distributing-egg-files/#comment-45</link>
		<dc:creator>Brandon Craig Rhodes</dc:creator>
		<pubDate>Fri, 27 Jun 2008 02:30:39 +0000</pubDate>
		<guid isPermaLink="false">http://philikon.wordpress.com/?p=11#comment-45</guid>
		<description>Many users of my PyEphem module seem not to have their &quot;python2.4-dev&quot; package, or whatever their distribution calls it, installed; and might not even have the right compiler installed for building extensions to Python, in addition.  My impression had been that, merely by having Python on their system, it is possible for them to install &quot;setuptools&quot; and then &quot;easy_install&quot; my package — and, if I&#039;ve provided a binary egg, that&#039;s all they need to do.  Lacking the binary egg, they&#039;ve got to figure out how to install the Python development suite for whatever operating system they are using, which is way beyond the knowledge of lots of people who just want to try writing astronomy code in this new language they&#039;re heard of called &quot;Python&quot;.

Maybe you&#039;re thinking of a population that&#039;s more developer-heavy?</description>
		<content:encoded><![CDATA[<p>Many users of my PyEphem module seem not to have their &#8220;python2.4-dev&#8221; package, or whatever their distribution calls it, installed; and might not even have the right compiler installed for building extensions to Python, in addition.  My impression had been that, merely by having Python on their system, it is possible for them to install &#8220;setuptools&#8221; and then &#8220;easy_install&#8221; my package — and, if I&#8217;ve provided a binary egg, that&#8217;s all they need to do.  Lacking the binary egg, they&#8217;ve got to figure out how to install the Python development suite for whatever operating system they are using, which is way beyond the knowledge of lots of people who just want to try writing astronomy code in this new language they&#8217;re heard of called &#8220;Python&#8221;.</p>
<p>Maybe you&#8217;re thinking of a population that&#8217;s more developer-heavy?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brodie Rao</title>
		<link>http://philikon.wordpress.com/2008/06/26/is-there-a-point-to-distributing-egg-files/#comment-44</link>
		<dc:creator>Brodie Rao</dc:creator>
		<pubDate>Fri, 27 Jun 2008 02:01:42 +0000</pubDate>
		<guid isPermaLink="false">http://philikon.wordpress.com/?p=11#comment-44</guid>
		<description>I always use sdist when uploading to PyPI, and I&#039;ve personally stopped explicitly supporting setuptools in my setup.py scripts. While I love using easy_install myself, I prefer to have a more consistent user experience in terms of installation, and I was basically completely turned off to it when I discovered that it &quot;sandboxes&quot; setup scripts, not allowing them to write outside of the package&#039;s path/egg.

I don&#039;t think it&#039;s worth the trouble to support, it doesn&#039;t provide that many compelling features on the package maintainer&#039;s end, and you can still usually just easy_install any source distribution anyway.

Now what I&#039;d really like to see is an easy_install that doesn&#039;t use setuptools and just searches and downloads from PyPI.</description>
		<content:encoded><![CDATA[<p>I always use sdist when uploading to PyPI, and I&#8217;ve personally stopped explicitly supporting setuptools in my setup.py scripts. While I love using easy_install myself, I prefer to have a more consistent user experience in terms of installation, and I was basically completely turned off to it when I discovered that it &#8220;sandboxes&#8221; setup scripts, not allowing them to write outside of the package&#8217;s path/egg.</p>
<p>I don&#8217;t think it&#8217;s worth the trouble to support, it doesn&#8217;t provide that many compelling features on the package maintainer&#8217;s end, and you can still usually just easy_install any source distribution anyway.</p>
<p>Now what I&#8217;d really like to see is an easy_install that doesn&#8217;t use setuptools and just searches and downloads from PyPI.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: philikon</title>
		<link>http://philikon.wordpress.com/2008/06/26/is-there-a-point-to-distributing-egg-files/#comment-42</link>
		<dc:creator>philikon</dc:creator>
		<pubDate>Thu, 26 Jun 2008 19:33:58 +0000</pubDate>
		<guid isPermaLink="false">http://philikon.wordpress.com/?p=11#comment-42</guid>
		<description>@Marius: Since regular Windows binary eggs are marked with the &#039;win32&#039; platform, I imagine that those for Windows on 64bit would be marked with &#039;win64&#039; or something along those lines. Also, I would expect that &#039;win32&#039; eggs would work on a Windows 64bit platform.</description>
		<content:encoded><![CDATA[<p>@Marius: Since regular Windows binary eggs are marked with the &#8216;win32&#8242; platform, I imagine that those for Windows on 64bit would be marked with &#8216;win64&#8242; or something along those lines. Also, I would expect that &#8216;win32&#8242; eggs would work on a Windows 64bit platform.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
