[Zope-dev] Re: ploneout - Or how using zc.buildout for a common Zope2 project might look like

Ian Bicking ianb at colorstudy.com
Mon Jan 29 14:25:24 EST 2007


Jim Fulton wrote:
>> Similarly, say I had two applications, one in Zope and one in Pylons, 
>> part of the same deployment (possibly interwoven using wsgi). If I 
>> installed elementtree as an egg in buildout.cfg, I'd expect it to be 
>> available to both. If that means patching some of pylon's confg files 
>> or startup scripts to explicitly reference eggs that buildout is 
>> managing, it would mean that I'd need a very specific recipe for 
>> Pylons development that would need to know a lot of detail about how 
>> that sets up its environment
> 
> Yes, depending on how complex Pylon's setup was.  For example, if Pylons
> exposed it's scripts using setuptools entrypoints, you you could install
> them with buildout.

Pylon's doesn't have its own scripts.  Generally an application will 
require Pylons, Pylons requires PasteScript, and PasteScript provides a 
paster script.  A quirk in buildout was that asking for the paster 
script to go in bin/ didn't seem to work unless I specifically was 
installing PasteScript.  Anyway, they all use entry points, so that part 
is fine.

I've considered encouraging each WSGI/PasteDeploy application to ship 
its own script that hides the existence of paster (or any specific 
framework).  But that doesn't seem quite right either, since a WSGI 
application can be (and in production usually is) used as a library in 
addition to a stand-alone application.  At that point it becomes similar 
to a Zope product, or Plone content type, or... well, I guess there's 
limits to the similarity as I try to find analogs.  I guess that's the 
style differences between Zope and... all the other frameworks.  I'm not 
sure what name really describes the difference in pattern.

>> (in the same way, the z2c.recipe.zope2instance recipe knows about how 
>> the zopectl and runzope scripts set their PYTHONPATH and patches them).
> 
> Zope startup scripts are sort of interesting because they
> are instance specific -- combining instance-specific configuration
> with software definition.  This is something that setuptools
> entry points don't handle very will by themselves.  That's
> why buildout has custom script generation facilities that alllow
> definition of extra initialization code and entry point arguments.
> 
> I wouldn't be surprised if Pylons had similar needs.

You just have to give the config file as an argument when you start the 
server, there's nothing setup that binds a script with a config file.  I 
played with a #! setup where the config file became a script, but I 
found it rather hard to work with (there's a lot of problems with how #! 
works across platforms).  So for now it's just always explicit, and if 
you want something else you have to set up your own shell scripts.

-- 
Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org


More information about the Zope-Dev mailing list