-----BEGIN PGP SIGNED MESSAGE-----
Martin Aspeli wrote:
> Tres Seaver wrote:
>> After a question on the repoze list about running Zope 2.12.x behind a
>> WSGI server, I went to try that out. I came up with a minimal .wsgi
>> file to run behind mod_wsgi::
>> $ cat src/Zope2/utilities/skel/bin/zope2.wsgi.in
>> from Zope2.Startup.run import configure
>> from Zope2 import startup
>> # mod_wsgi looks for the special name 'application'.
>> from ZPublisher.WSGIPublisher import publish_module as application
>> which works, mostly, except that all the App.ImageFile stuff, as well as
>> anything else using IStreamIterator, doesn't. Streaming output also
>> doesn't work: I'm not sure what else.
> That's pretty cool. :)
> I think people will be a bit confused about the relationship between
> this and repoze.zope2, though. Maybe we can make a statement about how
> they differ and whether they ought to be consolidated?
repoze.zope2 was written to get pre-eggified, pre-WSGI-aware Zope
(<=2.11.x) deployable using eggs and Paste. 2.12 is eggified, and
speaks a kind of pidgin WSGI; repoze.zope2 is likely still useful,
becuase it is more "fluent" in WSGI. See below for futures.
> As for IStreamIterator, I think it should work to just return the
> iterator as the WSGI body iterator. At least that works in repoze.zope2.
>> I set out to fix these bugs in ZPublisher.WSGIPublisher.WSGIResponse,
>> and was dismayed to find it an untested hack-up of the original Publish
>> module, with an untested subclass of HTTPResponse, itself almost
>> completely test-free. So I went down the rabbit hole, and got nearly
>> 100% coverage of HTTPResponse on my branch, along with cleaning out some
>> decade-old fossils.
> That's really awesome!
>> Remaining work would be to write tests for WSGIResponse, and then tweak
>> it (and HTTPResponse) to make doing the Right Thing(TM) possible for
>> responses which are more than just a single big string.
> Are there any cases other than IStreamIteartor in that case?
response.write() is the other one I know about. Getting it to do the
Right Thing(TM) under WSGI is going to be tricky, I think.
>> Beyond fixing those bugs:
>> - - Document using Zope2 behind mod_wsgi.
>> - - Write a function usable as a PasteDeploy app factory, to allow
>> configuration of Zope2 as the endpoint of a pipeline. Document
>> this feature.
>> - - Supply a stripped-down version of WSGIPublisher, delgating the
>> current implementation's "full stack" behavior (error handling,
>> transaction / retry integration) to middleware. The guts of this
>> can be lifted from repoze.zope2.z2bob. Document using this lighter-
>> weight publisher.
If it gets that far by Zope 2.13, then we can likely retire repoze.zope2.
Tres Seaver +1 540-429-0999 tsea...@palladion.com
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
Zope-Dev maillist - Zope-Dev@zope.org
** No cross posts or HTML encoding! **
(Related lists -