<?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/"
		>
<channel>
	<title>Comments on: A Few Corrections To &#8220;On Packaging&#8221;</title>
	<atom:link href="http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/</link>
	<description></description>
	<lastBuildDate>Fri, 06 May 2011 07:16:39 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Lennart Regebro</title>
		<link>http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/comment-page-1/#comment-183434</link>
		<dc:creator>Lennart Regebro</dc:creator>
		<pubDate>Mon, 29 Nov 2010 14:00:56 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/#comment-183434</guid>
		<description>Standard library, yes. But much of the modules above is available for Python 3 as well.

It&#039;s perfectly viable to run different versions of both Python and web applications on one machine. No problems at all, in fact, if you know what you are doing. I like virtual machines, but use them more to separate customers than web servers. :-)</description>
		<content:encoded><![CDATA[<p>Standard library, yes. But much of the modules above is available for Python 3 as well.</p>

<p>It&#8217;s perfectly viable to run different versions of both Python and web applications on one machine. No problems at all, in fact, if you know what you are doing. I like virtual machines, but use them more to separate customers than web servers. :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dries Desmet</title>
		<link>http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/comment-page-1/#comment-183424</link>
		<dc:creator>Dries Desmet</dc:creator>
		<pubDate>Mon, 29 Nov 2010 09:52:09 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/#comment-183424</guid>
		<description>This is all very interesting. Last post was from february 2009. I would like to know if any progress was made in light of python 3. If i&#039;m not mistaken, still only distutils is in the standard library.
Another interesting idea would be to look at this in the era of virtualization. Web applications running in different versions on the same machine, is that still viable? Shouldn&#039;t they at least be running on a different virtual host?</description>
		<content:encoded><![CDATA[<p>This is all very interesting. Last post was from february 2009. I would like to know if any progress was made in light of python 3. If i&#8217;m not mistaken, still only distutils is in the standard library.
Another interesting idea would be to look at this in the era of virtualization. Web applications running in different versions on the same machine, is that still viable? Shouldn&#8217;t they at least be running on a different virtual host?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Merwok</title>
		<link>http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/comment-page-1/#comment-78537</link>
		<dc:creator>Merwok</dc:creator>
		<pubDate>Mon, 09 Feb 2009 06:31:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/#comment-78537</guid>
		<description>Quick thoughts:

1. Debian Python packaging toolchains reuse Distutils. As a Python developper, I want to write a setup.py; Debian wants a makefile. Well, the debian/rules makefile uses the setup.py script with appropriate command-line options. (Dependencies in the Python system would be a must though, for now they are in a Debian-specific file.) See, no conflict between the two systems.

2. Integrating PyPI and APT isn’t just a technical issue: Debian packages are DFSG-free. (Of course, Debian means “main”-only.) I am totally in favor of decentralisation for VCS for instance, but I like the centralized control of the freeness of software allowed by using Debian archives.

3. APT can work with local repositories (i.e. lines starting with “deb file:///” in the sources.list file). A local repository (or an HTTP one, for that matter) is really a bunch of deb packages and a few meta-files. Automation can be done with the help of mini-dinstall, pbuilder, dnotify, *-buildpackage. (After all, pip is “just” automation of such things ;)

Well, I know my points only work if you’re already happily using a deb-based system. I don’t know whether and how Python developpers should compensate Windows flaws. And if you like setup.py develop, I don’t know how much coding would be required to automate these steps using a local APT repository, but that would be worth trying.

Cheers, Merwok</description>
		<content:encoded><![CDATA[<p>Quick thoughts:</p>

<ol>
<li><p>Debian Python packaging toolchains reuse Distutils. As a Python developper, I want to write a setup.py; Debian wants a makefile. Well, the debian/rules makefile uses the setup.py script with appropriate command-line options. (Dependencies in the Python system would be a must though, for now they are in a Debian-specific file.) See, no conflict between the two systems.</p></li>
<li><p>Integrating PyPI and APT isn’t just a technical issue: Debian packages are DFSG-free. (Of course, Debian means “main”-only.) I am totally in favor of decentralisation for VCS for instance, but I like the centralized control of the freeness of software allowed by using Debian archives.</p></li>
<li><p>APT can work with local repositories (i.e. lines starting with “deb file:///” in the sources.list file). A local repository (or an HTTP one, for that matter) is really a bunch of deb packages and a few meta-files. Automation can be done with the help of mini-dinstall, pbuilder, dnotify, *-buildpackage. (After all, pip is “just” automation of such things ;)</p></li>
</ol>

<p>Well, I know my points only work if you’re already happily using a deb-based system. I don’t know whether and how Python developpers should compensate Windows flaws. And if you like setup.py develop, I don’t know how much coding would be required to automate these steps using a local APT repository, but that would be worth trying.</p>

<p>Cheers, Merwok</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Guy Kloss</title>
		<link>http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/comment-page-1/#comment-72798</link>
		<dc:creator>Guy Kloss</dc:creator>
		<pubDate>Tue, 20 Jan 2009 01:07:14 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/#comment-72798</guid>
		<description>I&#039;ve got the feeling that one thing has totally been neglected. One of the origins that makes the clash between the two types of administrators (and their needs) so severe:

Python is a general purpose language. But here everybody just seems to be talking about web development!

In web development you&#039;ve got to distinguish the users from the consumers. The consumers do not do any administration, that&#039;s only the users who are often/mostly also the administrators of that server/host/machine. There one can much more easily get away with pulling up an alternative management system in parallel to the distribution&#039;s own system without doing any major harm.

But with most other applications of Python it&#039;s a bit different. Whenever you use Python for system administrative tools (Ubuntu has got quite a few already), for libraries/bindings to libraries, or for application level (excluding web applications) it&#039;s all a different ball game. In all these cases the system&#039;s package management becomes *much* more important than Python&#039;s own attempts to cater for the developer and/or web admin needs.

Boiling down to this: I can fully understand both sides. Unfortunately there&#039;s quite some clash between them as described. The challenges ahead would be now to find a Good Solution (TM) that is well suitable to bridge the gap and cater for the non-web needs. Maybe even some sort of a PyPI mirror that offers eggs as pre-rolled .deb/.rpm packages for different distributions.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve got the feeling that one thing has totally been neglected. One of the origins that makes the clash between the two types of administrators (and their needs) so severe:</p>

<p>Python is a general purpose language. But here everybody just seems to be talking about web development!</p>

<p>In web development you&#8217;ve got to distinguish the users from the consumers. The consumers do not do any administration, that&#8217;s only the users who are often/mostly also the administrators of that server/host/machine. There one can much more easily get away with pulling up an alternative management system in parallel to the distribution&#8217;s own system without doing any major harm.</p>

<p>But with most other applications of Python it&#8217;s a bit different. Whenever you use Python for system administrative tools (Ubuntu has got quite a few already), for libraries/bindings to libraries, or for application level (excluding web applications) it&#8217;s all a different ball game. In all these cases the system&#8217;s package management becomes <em>much</em> more important than Python&#8217;s own attempts to cater for the developer and/or web admin needs.</p>

<p>Boiling down to this: I can fully understand both sides. Unfortunately there&#8217;s quite some clash between them as described. The challenges ahead would be now to find a Good Solution (TM) that is well suitable to bridge the gap and cater for the non-web needs. Maybe even some sort of a PyPI mirror that offers eggs as pre-rolled .deb/.rpm packages for different distributions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jorge Vargas</title>
		<link>http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/comment-page-1/#comment-72164</link>
		<dc:creator>Jorge Vargas</dc:creator>
		<pubDate>Fri, 16 Jan 2009 11:11:56 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/#comment-72164</guid>
		<description>sorry for the long overdue response. 

jorge: Distributions handle the CherryPy2/3 issue with various means. last I checked in Debian they have an explicit Conflict so that CherryPy3 and Turbogears-1 apps cannot be installed together on the same box.

    so either kill off all the TG1 community of the CP3 community, that isn&#039;t really nice. How do you handle zope2/zope3? now let&#039;s go to the small details. 
    MY app needs version 2.3.1 of library X, your app needs 2.3.2 yet for some unknown issue they are incompatible. WHy do I have to choose which system to use?

In Fedora we’ve made use of the multiple version functionality of setuptools (and run up against limitations in its design) so that you can have both versions of CherryPy installed at the same time.

    That&#039;s great but keep in mind a package needs to be fairly popular for this to work (GTK,python,etc) what about something less known by the public 
    like pylons0.9.6/0.9.7 (and yes apps in .6 wont run out of the box on .7).

Note that for a distribution POV, we’d love to have a versioning scheme that works flawlessly. Debian, where the idea of doing compatible python modules was rejected, versions each of their C library packages so you can have separate versions. Fedora, which doesn’t like to do them for maintainability reasons (what do we do when a security issue arises in CherryPy2 and the devs say, “CP2 is no longer supported, we’re only releasing a security fix for CherryPy3″?), will do compat packages like the CherryPy2 package when the value for keeping the apps outweighs the maintainance costs. ATM, only strategies like psycopg use (changing the module name from psycopg to psycopg2 on a major, API changing update) work 100%. The setuptools method has promise, though… if only it would mature a bit more.

    Well that is a risk some people have to take, and is why not all applications are packaged, because I totally agree that the maintainer of a package 
    should be it&#039;s developer. Not several people over several OS&#039;s monkeypatching it to work on their OS, because it&#039;s important yet the original author is 
    gone. Now this particular problem is not related to packager it&#039;s related to developers, if TG1 refuses to die. Even after CP people say no more fixes for 
    CP2, then it&#039;s their responsibility to maintain CP2.</description>
		<content:encoded><![CDATA[<p>sorry for the long overdue response. </p>

<p>jorge: Distributions handle the CherryPy2/3 issue with various means. last I checked in Debian they have an explicit Conflict so that CherryPy3 and Turbogears-1 apps cannot be installed together on the same box.</p>

<pre><code>so either kill off all the TG1 community of the CP3 community, that isn't really nice. How do you handle zope2/zope3? now let's go to the small details. 
MY app needs version 2.3.1 of library X, your app needs 2.3.2 yet for some unknown issue they are incompatible. WHy do I have to choose which system to use?
</code></pre>

<p>In Fedora we’ve made use of the multiple version functionality of setuptools (and run up against limitations in its design) so that you can have both versions of CherryPy installed at the same time.</p>

<pre><code>That's great but keep in mind a package needs to be fairly popular for this to work (GTK,python,etc) what about something less known by the public 
like pylons0.9.6/0.9.7 (and yes apps in .6 wont run out of the box on .7).
</code></pre>

<p>Note that for a distribution POV, we’d love to have a versioning scheme that works flawlessly. Debian, where the idea of doing compatible python modules was rejected, versions each of their C library packages so you can have separate versions. Fedora, which doesn’t like to do them for maintainability reasons (what do we do when a security issue arises in CherryPy2 and the devs say, “CP2 is no longer supported, we’re only releasing a security fix for CherryPy3″?), will do compat packages like the CherryPy2 package when the value for keeping the apps outweighs the maintainance costs. ATM, only strategies like psycopg use (changing the module name from psycopg to psycopg2 on a major, API changing update) work 100%. The setuptools method has promise, though… if only it would mature a bit more.</p>

<pre><code>Well that is a risk some people have to take, and is why not all applications are packaged, because I totally agree that the maintainer of a package 
should be it's developer. Not several people over several OS's monkeypatching it to work on their OS, because it's important yet the original author is 
gone. Now this particular problem is not related to packager it's related to developers, if TG1 refuses to die. Even after CP people say no more fixes for 
CP2, then it's their responsibility to maintain CP2.
</code></pre>
]]></content:encoded>
	</item>
	<item>
		<title>By: Web Developer</title>
		<link>http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/comment-page-1/#comment-67690</link>
		<dc:creator>Web Developer</dc:creator>
		<pubDate>Mon, 29 Dec 2008 19:07:13 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/#comment-67690</guid>
		<description>I think there is a problem with coding in your blog. I&#039;m not able to see a part of the text from its left side.</description>
		<content:encoded><![CDATA[<p>I think there is a problem with coding in your blog. I&#8217;m not able to see a part of the text from its left side.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yap Sok Ann</title>
		<link>http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/comment-page-1/#comment-64446</link>
		<dc:creator>Yap Sok Ann</dc:creator>
		<pubDate>Fri, 19 Dec 2008 01:11:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/#comment-64446</guid>
		<description>This is why Gentoo portage comes with a deployment tool called webapp-config.

Let&#039;s say you install trac using portage with `emerge =trac-0.11.2`, the files will just be placed into `/usr/share/webapps/trac/0.11.2/`. You will then use webapp-config to deploy it to the desired web server(s) or vhost(s).

It is far from perfect (e.g. doesn&#039;t support virtualenv, doesn&#039;t support nginx), but at least it partially solves the problem where more than one copy and/or more than one version of a webapp are required to be running on the same machine.

Btw, it is also &quot;backward-compatible&quot; with other less capable packaging tools, such that you can configure it to auto-deploy to your localhost whenever you emerge a webapp package, if you only need just one copy and one version of that webapp.

Anyway, to get anything done at work, we just use a combination of virtualenv, custom distcmds, and a local eggbasket. A *great language and platform independent package manager that can work throughout the development and deployment lifecycle* would certainly be very welcome :)</description>
		<content:encoded><![CDATA[<p>This is why Gentoo portage comes with a deployment tool called webapp-config.</p>

<p>Let&#8217;s say you install trac using portage with <code>emerge =trac-0.11.2</code>, the files will just be placed into <code>/usr/share/webapps/trac/0.11.2/</code>. You will then use webapp-config to deploy it to the desired web server(s) or vhost(s).</p>

<p>It is far from perfect (e.g. doesn&#8217;t support virtualenv, doesn&#8217;t support nginx), but at least it partially solves the problem where more than one copy and/or more than one version of a webapp are required to be running on the same machine.</p>

<p>Btw, it is also &#8220;backward-compatible&#8221; with other less capable packaging tools, such that you can configure it to auto-deploy to your localhost whenever you emerge a webapp package, if you only need just one copy and one version of that webapp.</p>

<p>Anyway, to get anything done at work, we just use a combination of virtualenv, custom distcmds, and a local eggbasket. A <em>great language and platform independent package manager that can work throughout the development and deployment lifecycle</em> would certainly be very welcome :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Carlos Ribeiro</title>
		<link>http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/comment-page-1/#comment-64380</link>
		<dc:creator>Carlos Ribeiro</dc:creator>
		<pubDate>Thu, 18 Dec 2008 10:06:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/#comment-64380</guid>
		<description>The worldviews are very different indeed. It&#039;s a complex problem that has many roots.

1) Distributions are an attempt to freeze the world in a one entirely self consistent image. Packager&#039;s priorities are completeness (no broken dependencies), self consistency, and stability. That&#039;s why they prefer to package the latest stable version. But many times, the stable version of one particular program depends on the unstable version of a library (that&#039;s only the first problem).

2) Packagers are also concerned about space, due to disk and bandwidth concerns. That means eliminating redundancy. Most packagers hate the idea of having multiple versions of a single library &quot;just because&quot; one app needs it. 

3) Last but not least, packagers are concerned about security. Again, having multiple versions of a library tends to make their work harder due to the potential combinations and security threats.

That&#039;s not a problem for conventional applications, because most applications evolve slowly, and even when that&#039;s not the case, most users do not need the latest upgrades - unless there&#039;s a security issue, which are addressed by minimal patches that only fix the problem and do not add any functionality (so dependencies keep relatively unchanged).

Development is about bringing new functionality at the fastest pace possible. It means that:

- Developers are comfortable about using the latest libraries, even if they are not considered stable (and that leads to problem #1 mentioned above).

- Developers need a completely different environment to work than the one recommended  to run the final application.

To make things more confusing, the world is not black and white. There&#039;s a middle ground between the two. Trac, for instance - most of the times I can work with a older version, so I don&#039;t mind installing the packaged one. And it will work out of the box for most users. But for other packages, it&#039;s much harder to come up with a sensible installation  out of a generic package.

One of my particular gripes is with documentation. Take some package (for example, Twiki or Plone). Install it and try to customize it, following the instructions on the original website. Most of the times*, there are no instructions on how to install the &quot;packaged version&quot;, and some of the instructions that apply to the &quot;tgz version&quot; do not make sense or are not applicable to the packaged one. Locations differ, some of the parameters are already customized, and that just makes life more difficult for the users.

(*) In some cases the instructions are there but are incomplete or out of date.</description>
		<content:encoded><![CDATA[<p>The worldviews are very different indeed. It&#8217;s a complex problem that has many roots.</p>

<p>1) Distributions are an attempt to freeze the world in a one entirely self consistent image. Packager&#8217;s priorities are completeness (no broken dependencies), self consistency, and stability. That&#8217;s why they prefer to package the latest stable version. But many times, the stable version of one particular program depends on the unstable version of a library (that&#8217;s only the first problem).</p>

<p>2) Packagers are also concerned about space, due to disk and bandwidth concerns. That means eliminating redundancy. Most packagers hate the idea of having multiple versions of a single library &#8220;just because&#8221; one app needs it. </p>

<p>3) Last but not least, packagers are concerned about security. Again, having multiple versions of a library tends to make their work harder due to the potential combinations and security threats.</p>

<p>That&#8217;s not a problem for conventional applications, because most applications evolve slowly, and even when that&#8217;s not the case, most users do not need the latest upgrades &#8211; unless there&#8217;s a security issue, which are addressed by minimal patches that only fix the problem and do not add any functionality (so dependencies keep relatively unchanged).</p>

<p>Development is about bringing new functionality at the fastest pace possible. It means that:</p>

<ul>
<li><p>Developers are comfortable about using the latest libraries, even if they are not considered stable (and that leads to problem #1 mentioned above).</p></li>
<li><p>Developers need a completely different environment to work than the one recommended  to run the final application.</p></li>
</ul>

<p>To make things more confusing, the world is not black and white. There&#8217;s a middle ground between the two. Trac, for instance &#8211; most of the times I can work with a older version, so I don&#8217;t mind installing the packaged one. And it will work out of the box for most users. But for other packages, it&#8217;s much harder to come up with a sensible installation  out of a generic package.</p>

<p>One of my particular gripes is with documentation. Take some package (for example, Twiki or Plone). Install it and try to customize it, following the instructions on the original website. Most of the times*, there are no instructions on how to install the &#8220;packaged version&#8221;, and some of the instructions that apply to the &#8220;tgz version&#8221; do not make sense or are not applicable to the packaged one. Locations differ, some of the parameters are already customized, and that just makes life more difficult for the users.</p>

<p>(*) In some cases the instructions are there but are incomplete or out of date.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Beck</title>
		<link>http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/comment-page-1/#comment-64008</link>
		<dc:creator>Brian Beck</dc:creator>
		<pubDate>Wed, 17 Dec 2008 04:17:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/#comment-64008</guid>
		<description>* Marius said: &quot;It’s also seductively convenient for deployment, although it places a rather large burden on the sysadmin to manually keep watch for security issues in hundreds of little libraries scattered in several isolated environments, and to backport the fix to all the different versions that are being used.&quot;

* Rudd-O said: &quot;Marius: CORRECT!&quot;

This as an admission that the packaging tools are NOT adequate for developer needs.  Why does having isolated environments preclude simple administration?  If the package management tools were in charge of managing environments, then they would know where to check for installed package versions, even if I had hundreds scattered about my home directory.</description>
		<content:encoded><![CDATA[<ul>
<li><p>Marius said: &#8220;It’s also seductively convenient for deployment, although it places a rather large burden on the sysadmin to manually keep watch for security issues in hundreds of little libraries scattered in several isolated environments, and to backport the fix to all the different versions that are being used.&#8221;</p></li>
<li><p>Rudd-O said: &#8220;Marius: CORRECT!&#8221;</p></li>
</ul>

<p>This as an admission that the packaging tools are NOT adequate for developer needs.  Why does having isolated environments preclude simple administration?  If the package management tools were in charge of managing environments, then they would know where to check for installed package versions, even if I had hundreds scattered about my home directory.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Bicking</title>
		<link>http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/comment-page-1/#comment-63814</link>
		<dc:creator>Ian Bicking</dc:creator>
		<pubDate>Tue, 16 Dec 2008 18:46:42 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2008/12/14/a-few-corrections-to-on-packaging/#comment-63814</guid>
		<description>I should say that I think packaging Trac (ideally with a package that includes nearly all its dependencies) seems quite reasonable.  That is an &quot;application&quot; in a way that makes sense.  Though even then it is difficult, as shown by Plone -- but because Plone involves lots of plugins/products (and while Plone moves along at a reasonably slow place, the plugins do not), packaging just doesn&#039;t keep up, and people end up reverting to methods better supported by upstream developers.  It *could* work, but I think it doesn&#039;t work because there&#039;s intermediaries.  Only if Plone itself had the infrastructure set up to create and distribute its own RPM or deb packages (and packages for any plugin anyone wants to make available) would it be a working system.  And though Trac is more interesting in its base state than Plone, it will suffer the same problems.

There&#039;s no reason Trac or any other application needs to depend on separately packaged Python libraries, and I do think that&#039;s specifically problematic.  But if `yum install mysite` doesn&#039;t involve any dependencies (except for very conservative packages) then that could work pretty well.  I&#039;d still be pretty worried about migrations, though... but arguably developers should work harder at making data migration work with less interaction.  Having specific support for data migration (mostly meaning clear policies for how backup and migration and reverts should work) would also be an improvement for people creating packages.

Of course it&#039;s also common for web developers to have two versions of the exact same application simultaneously deployed on a single box.  I find the way Linux package managers deal with versions to simply be... dumb.  As in not-technically-advanced-in-a-way-that-actively-hurts.  There&#039;s also problems about the development build process being very different from the deployment process, which leads to bugs in one or the other.  These bugs cause a lot of social problems, as they aggravate the already difficult relationship between sysadmin and developer (a relationship that can be difficult even when they are the same person ;).

What we need is a great language *and* platform independent package manager that can work throughout the development and deployment lifecycle.  I know of no such thing at the moment.  (I thought [rpath](http://www.rpath.com/corp/) might be like that, but from what I can tell it is not.)</description>
		<content:encoded><![CDATA[<p>I should say that I think packaging Trac (ideally with a package that includes nearly all its dependencies) seems quite reasonable.  That is an &#8220;application&#8221; in a way that makes sense.  Though even then it is difficult, as shown by Plone &#8212; but because Plone involves lots of plugins/products (and while Plone moves along at a reasonably slow place, the plugins do not), packaging just doesn&#8217;t keep up, and people end up reverting to methods better supported by upstream developers.  It <em>could</em> work, but I think it doesn&#8217;t work because there&#8217;s intermediaries.  Only if Plone itself had the infrastructure set up to create and distribute its own RPM or deb packages (and packages for any plugin anyone wants to make available) would it be a working system.  And though Trac is more interesting in its base state than Plone, it will suffer the same problems.</p>

<p>There&#8217;s no reason Trac or any other application needs to depend on separately packaged Python libraries, and I do think that&#8217;s specifically problematic.  But if <code>yum install mysite</code> doesn&#8217;t involve any dependencies (except for very conservative packages) then that could work pretty well.  I&#8217;d still be pretty worried about migrations, though&#8230; but arguably developers should work harder at making data migration work with less interaction.  Having specific support for data migration (mostly meaning clear policies for how backup and migration and reverts should work) would also be an improvement for people creating packages.</p>

<p>Of course it&#8217;s also common for web developers to have two versions of the exact same application simultaneously deployed on a single box.  I find the way Linux package managers deal with versions to simply be&#8230; dumb.  As in not-technically-advanced-in-a-way-that-actively-hurts.  There&#8217;s also problems about the development build process being very different from the deployment process, which leads to bugs in one or the other.  These bugs cause a lot of social problems, as they aggravate the already difficult relationship between sysadmin and developer (a relationship that can be difficult even when they are the same person ;).</p>

<p>What we need is a great language <em>and</em> platform independent package manager that can work throughout the development and deployment lifecycle.  I know of no such thing at the moment.  (I thought <a href="http://www.rpath.com/corp/">rpath</a> might be like that, but from what I can tell it is not.)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.526 seconds -->

