repoze.zope2 (the reimplementation of Zope2's ZPublisher that allows Zope2 to run as a WSGI application) has been updated quietly over the last few months, with the latest release, 0.3.6, posted today. Below is the changelog for the releases performed in March and April of this year. If you haven't already given it a roll, and you're interested in WSGI, you might want to try it out.
0.3.6 (2008-04-16) - "http" exceptions (like Redirect and Unauthorized) weren't handled properly anywhere except in the repoze.zope2 obob helper's 'invoke' step. In-the-wild code uses these exceptions before the published object has been located (e.g. during traverse() or before_traverse()). We now depend on repoze.obob >=0.3 to get extended exception handling behavior, and we implement a 'handle_exception' method on our z2bob helper which will turn Zope2 Unauthorized and Redirect exceptions into their "httpexception" equivalents for consumption by upstream middleware. This was prompted by code found in the wild in Plone's OpenId implementation which raises a redirect during traversal. 0.3.5 (2008-04-16) - "Legacy" virtual hosting (via Virtual Host Monster) did not work properly. Symptom: if you set up proxy-rewrite rules in Apache pointing at the Zope root a repoze.zope2 server running under a separate paster server, and tried to visit the ZMI via the Apache virtualhost's /manage URL, you'd be presented with the VirtualHostMonster ZMI configuration page instead of the ZMI's framed root UI. Reason: the PARENTS item was not set up early enough (it was set up in traverse rather than before_traverse). Since it was depended on by Zope API's which VHM called out to to set the virtual root, this didn't work, and the resulting traversal name stack was incorrect. 0.3.4 (2008-03-24) - Bump ez_setup.py version. - When Zope 2 starts, it potentially writes data to the database during product initialization. When multiple clients talk to the same ZEO storage at startup, they often simultaneously try to write (the same) information to the database concurrently. This causes startup failure due to conflict errors. We now retry product initialization up to five times to work around this issue. 0.3.3 (2008-03-10) - repoze.zope2 now properly respects virtual host directives provided to it by repoze.vhm xheaders middleware >= 0.4. Zope's VHM can still be used as necessary, but is no longer required. 0.3.2 (2008-03-03) - Fix bug reported by Martin Aspeli: repoze.zope2 would choke on large images and files (symptom: broken images when images were large). This was due to the fact that the Zope File- and Image-rendering machinery used HTTPResponse.write, which repoze.zope2's response handling didn't handle properly. We now subclass HTTPResponse (as RepozeHTTPResponse) to solve the issue. 0.3.1 (2008-03-02) - mkzope2instance now: o takes no arguments, only options. '-d' replaces the single argument path. o creates a "log" directory o writes out a zeo.conf into "etc" (unconditionally); you can start a ZEO instance after installation now via 'bin/runzeo -C etc/zeo.conf', after ensuring that the 'address' in the ZEO section is correct. o allows the specification of 'sandbox' (-s) (replaces single-argument instancedir), 'zeo-port' (-z) , 'zope-port' (-p), and 'use-zeo' (-z) options. If 'use-zeo' is specified, the zope.conf that's written will use a ClientStorage by default. o writes a zope.conf with a zodb cache-size of 50000 rather than 10000. - addzope2user, runzope2script, and debugzope2 now respect a "ZOPE_CONF" environment variable, which can be used to specify the zope.conf configuration file to use. - Add a sample
section to the generated zope.conf that can be uncommented if the installer wants to use ZEO instead of FileStorage or vice versa. - Added an (experimental) 'zope2testrunner' script that sets up stuff in the environment before running 'zope.testing.testrunner.run'. It accepts the same arguments as the Zope 3 testrunner. E.g. 'bin/zope2testrunner -m Products.faster'. This also respects the ZOPE_CONF envvar. - Depend on Zope 2.10.5 (zopelib-220.127.116.11) instead of 18.104.22.168 and various other updated repoze libraries.
posted at: 00:00 | permalink