[Zope-dev] Best way to invoke paster/WSGI apps on cmdline

Hanno Schlichting hannosch at hannosch.eu
Wed Apr 15 19:01:46 EDT 2009


Hi.

Uli Fouquet wrote:
> As Grok is now approaching the 1.0 release we (i.e. some Grok developers
> and me) want to have a 'compliant' way to offer paster-based serving of
> Grok instances.

I'd love to have the same for Plone, but failed to find any canonical
definition of "compliant" the same way you did.

> Here's a short (probably incomplete) list of some 'full-stack'
> paster-capable 'frameworks' and how they invoke paster from the
> commandline (please correct/extend if I am wrong/incomplete here):
> 
>  ================ =================== ============================
>     Framework      Ini-file location        Paster call         
>  ================ =================== ============================
>  grokproject      parts/etc/          bin/paster serve \
>                                          parts/etc/deploy.ini
>  repoze.bfg       <project root>      paster serve MyProject.ini
>  turbogears2      <project root>      paster serve development.ini
>  pylons           <project root>      paster serve development.ini
>  zopeproject      etc/                bin/paster serve \
>                                          etc/deploy.ini
>  z3c.r.paster     parts/<app>/        bin/app

I'll add the current Plone 4 way:

Plone      parts/instance/etc      bin/instance-fg

where instance-fg is a wrapper that calls:

bin/paster serve parts/instance/etc/paste.ini

Another option I considered was the way zopeproject does it. Except that
I still have to give a path to an "instance home" in a zope.conf file,
which either needs to be filled in by buildout or otherwise '..' needs
to be handled correctly for the etc/ case.

> At least it would be nice to have a common approach or 'best practice'
> recommendation when it comes to Zope based paste deploys. It would be
> even nicer to have an approach that is similar also to non-Zope
> environments. We'd like to follow such a convention with `grokproject`
> and learn from other's expericences in that matter.

My conclusion on this so far is: it's a matter of taste for the most
part and there doesn't seem to be any good convincing argument for any
of the variants.

The way I choose it for Plone 4 right now is basically to minimize the
difference to the former invocations. The main reason for the former
state of affairs is however to support multiple ZEO clients inside the
same buildout. I'm not sure if this use-case exists for Paste or if
multiple processes are usually handled by using some form of mod_wsgi
anyways.

Hanno



More information about the Zope-Dev mailing list