[Web-SIG] more comments on Paste Deploy
jtate at rpath.com
Tue Mar 6 03:46:46 CET 2007
On Monday 05 March 2007 16:38:51 Phillip J. Eby wrote:
> At 10:02 AM 3/5/2007 -0500, Jim Fulton wrote:
> >Entry points add *a* mechanism to make those objects a bit more
> >discoverable. Arguably, specifying an application via:
> >eggname#entrypointname doesn't provide much advantage over simply
> >specifying the dotted path to an object in a module.
> Actually, it provides one very important strategic advantage that I don't
> think has been mentioned in this conversation. A configuration format that
> can specify project/version information can be used as a single-file
> deployment spec for an easy_install wrapper or buildout-like tool.
> The advantage of this for virtual hosting providers in particular is
> significant -- if they support the tool, they can support this one-file
> deployment scheme.
> Personally, I don't care for the Paste Deploy syntax -- frankly it's almost
> barbaric. :) But the concept of being able to specify stacks, routes, and
> configuration in a plain text format that includes package information for
> automated deployment is nonetheless an important one.
> A couple years back, I started writing a library to parse a more
> sophisticated, Python-like syntax to do the same sorts of things, but only
> got as far as the parser.
> One discussion was here:
> The basic idea behind the syntax was that assignments are like keyword
> arguments, and non-assignment statements are positional arguments.
> I'm not altogether happy with that syntax either, however, as it has a
> little too much "more than one way to do it", which is one reason I never
> finished the implementation. There is a library that parses it (and does
> other general-purpose Python-like DSL parsing) at:
> ViewSVN: http://svn.eby-sarna.com/SCALE/
> Checkout: svn://svn.eby-sarna.com/svnroot/SCALE/
> Anyway, all that aside, I think it would be fantastic if we could come up
> with some "universal file format" for single-file configuration and
> deployment of applications (including auto-install of all needed eggs),
> that could get stdlib support and ultimately hosting company support. This
> would actually give us a leg up on even PHP for ease-of-deployment.
Doesn't setuptools already give this? easy_install foo.app.egg will install
all of the needed eggs if the dependencies are properly listed.
> So, while a single content format would be nice, we don't even need that in
> order to get a raw deployment system standard. Perhaps I should build this
> hypothetical pydeploy tool into setuptools 0.7?
I don't see there being a lot of demand for this. The use case I'm
considering is the end user developer or administrator deploying one or more
delivered pyhon web applications to a production environment (self hosted,
colo-hosted, or leased server). I think that except for where you have
multiple servers behind a load balancer or something, this is a one time
operation (barring failure cases, etc). Administrators already script this
kind of thing using shell.
Also, in any "enterprise" environment that I'm familiar with, the
automatically download and install software mechanism wouldn't fly.
Administrators want to know everything that goes on a system, and want the
software managed through their patch/package management system.
Philosophical discussions on whether that's good or not seem to be
Those using $4.95 hosting plans are only setting up one server, and will need
something custom to their installation anyway, so "pydeploy" won't help them
either. They'll be trying to install trac, some blogging software and then
an arbitrary image gallery, et. al., but won't have the same selections as
another $4.95 hosting customer. This is the key problem we're trying to
I consider the packaging and delivery problem solved, or at least out of
the scope of this problem.
(919) 851-3984 x2106
 Good enough for most things but better support for stuff outside the egg
is needed: config files (so that the user can tweak them), locale data
(or maybe a pkg_resources wrapper for gettext that loads that data from the
More information about the Web-SIG