[Zope-dev] Best way to invoke paster/WSGI apps on cmdline
Christian Theune
ct at gocept.com
Sat Apr 18 04:14:55 EDT 2009
Hi,
On Thu, 2009-04-16 at 01:01 +0200, Hanno Schlichting wrote:
> 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
Some motivators for me, as I saw some of those variants around and some
input with my experience from the buildout business:
- As a Unix-Lover, I do appreciate starting services having a SYSV style
call, which means: (somecommand) start/stop/restart/...
Thus no calls that require me to remember a config file location and
pass it on.
This also means that (somecommand) needs to be configurable as I might
want to deploy multiple buildouts into the same machine having the
deployment options create the service scripts in /etc/init.d and thus
they can't all be called "instance". Having it named "myproject" seems
better to me.
- Also, I do like my autocomplete to leave me with full command name
completions, thus: (somecommand)-ctl
(somecommand)-debug doesn't work well for me: I always have to start
typing again to complete the command *and* give a parameter.
(Remember that I want parameters so I have SYSV compatible init
commands right away)
- In a buildout environment, the use of .in files breaks the flexibility
that the various buildout mechanism deliver to us: extends, variable
inclusion, etc. have to be built again and again and again in the
recipes. We started out with zope3instance recipes that did that but
finally moved away from this.
- Do not make me check in generated things.
- If you'd like people that know things like paster to pick up our
environment easily, I think, that: make it obvious where the
deploy.ini & Co went and as they are generated files, leave a visible
note at the beginning of the file, that states something like:
# NOTE: This file is generated by foo.recipe.paster, it will be
# overwritten. Please apply changes to your buildout configuration
# (located in XXX) instead of changing this file.
> 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.
If your buildout does the right thing, then you should be able to
abstract that complication away leaving only
- a reference to a configuration file
- maybe a working directory change
Christian
--
Christian Theune · ct at gocept.com
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 7 · fax +49 345 1229889 1
Zope and Plone consulting and development
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
Url : http://mail.zope.org/pipermail/zope-dev/attachments/20090418/f6c1c81b/attachment.bin
More information about the Zope-Dev
mailing list