Repoze Notes
Wed, 16 Apr 2008
repoze.zope2 Updates
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[0] 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-2.10.5.0) instead of 2.10.4.2 and
various other updated repoze libraries.
-Chris
posted at: 22:15 | permanent link to this entry
