Hi, 

On Apr 10, 2011, at 10:29 PM, Alice Bevan–McGregor wrote:

> However, the package format I describe in that gist does include the source 
> for the dependencies as "snapshotted" during bundling.  If your application 
> is working in development, after snapshotting it /will/ work on sandbox or 
> production deployments.

I wanted to chime in on this one aspect b/c I think the concept is somewhat 
flawed. If your application is working in development and "snapshot" the 
dependencies that is no guarantee that things will work in production. The only 
way to say that snapshot or bundle is guaranteed to work is if you snapshot the 
entire system and make it available as a production system. 

Using a real world example, say you develop your application on OS X and you 
deploy on Ubuntu 8.04 LTS. Right away you are dealing with two different 
operating systems with entirely different system calls. If you use something 
like lxml and simplejson, you have no choice but to repackage or install from 
source on the production server. While it is fair to say that generally you 
could avoid packages that don't use C, both lxml and simplejson are rather 
obvious choices for web development. You could use the json module and 
ElementTree, but if you want more speed (and who doesn't like to go fast!), 
lxml and simplejson are both better options. 

It sounds like Ian doesn't want to have any build steps which I think is a bad 
mantra. A build step lets you prepare things for deployment. A deployment 
package is different than a development package and mixing the two by forcing 
builds on the server or seems like asking for trouble. I'm not saying this is 
what you (Alice) are suggesting, but rather pointing out that as a model, 
depending on virtualenv + pip's bundling capabilities seems slightly flawed. 

Personally, and I don't expect folks to take my opinions very seriously b/c I 
haven't offered any code, what I'd like to see is a simple format that helps 
install and uninstall web applications. I think it should offer hooks for 
running tests, learning basic status and allow simple configuration for typical 
sysadmin needs (logging via syslog, process management, nagios checks, etc.). 
Instead of focusing on what format that should take in terms of packages, it 
seems more effective to spend time defining a standard means of managing WSGI 
apps and piggyback or plain old copy some format like RPMs or dpkg. 

Just my .02. Again, I haven't offered code, so feel free to ignore me. But I do 
hope that if there are others that suspect this model of putting source on the 
server is a problem pipe up. If I were to add a requirement it would be that 
Python web applications help system administrators become more effective. That 
means finding consistent ways of deploying apps that plays well with other 
languages / platforms. After all, keeping a C compiler on a public server is 
rarely a good idea.

Eric

> 
>       — Alice.
> 
> 
> _______________________________________________
> Web-SIG mailing list
> Web-SIG@python.org
> Web SIG: http://www.python.org/sigs/web-sig
> Unsubscribe: http://mail.python.org/mailman/options/web-sig/eric%40ionrock.org

_______________________________________________
Web-SIG mailing list
Web-SIG@python.org
Web SIG: http://www.python.org/sigs/web-sig
Unsubscribe: 
http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com

Reply via email to