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