repoze.bfg 1.1a4 has been released.  It's a bugfix and cleanup release that has 
some minor backwards incompatibilities with previous 1.1a releases.

It can be installed via:

easy_install -i repoze.bfg

The docs have been updated and are available from  Some new sections exist in the documentation 
which explain how to set up ZEO, how to set up sessioning, and how to run BFG 
under mod_wsgi.

The changelog follows.

1.1a4 (2009-09-23)

Bug Fixes

- On 64-bit Linux systems, views that were members of a multiview
   (orderings of views with predicates) were not evaluated in the
   proper order.  Symptom: in a configuration that had two views with
   the same name but one with a ``request_method=POST`` predicate and
   one without, the one without the predicate would be called
   unconditionally (even if the request was a POST request).  Thanks
   much to Sebastien Douche for providing the buildbots that pointed
   this out.


- Added a tutorial which explains how to use ``repoze.session``
   (ZODB-based sessions) in a ZODB-based repoze.bfg app.

- Added a tutorial which explains how to add ZEO to a ZODB-based
   ``repoze.bfg`` application.

- Added a tutorial which explains how to run a ``repoze.bfg``
   application under `mod_wsgi <>`_.
   See "Running a repoze.bfg Application under mod_wsgi" in the
   tutorials section of the documentation.


- Add a ``repoze.bfg.url.static_url`` API which is capable of
   generating URLs to static resources defined by the ``<static>`` ZCML
   directive.  See the "Views" narrative chapter's section titled
   "Generating Static Resource URLs" for more information.

- Add a ``string`` renderer.  This renderer converts a non-Response
   return value of any view callble into a string.  It is documented in
   the "Views" narrative chapter.

- Give the ``route`` ZCML directive the ``view_attr`` and
   ``view_renderer`` parameters (bring up to speed with 1.1a3
   features).  These can also be spelled as ``attr`` and ``renderer``.

Backwards Incompatibilities

- An object implementing the ``IRenderer`` interface (and
   ``ITemplateRenderer`, which is a subclass of ``IRenderer``) must now
   accept an extra ``system`` argument in its ``__call__`` method
   implementation.  Values computed by the system (as opposed to by the
   view) are passed by the system in the ``system`` parameter, which
   will always be a dictionary.  Keys in the dictionary include:
   ``view`` (the view object that returned the value),
   ``renderer_name`` (the template name or simple name of the
   renderer), ``context`` (the context object passed to the view), and
   ``request`` (the request object passed to the view).  Previously
   only ITemplateRenderers received system arguments as elements inside
   the main ``value`` dictionary.


- The way ``bfg_view`` declarations are scanned for has been modified.
   This should have no external effects.

- Speed: do not register an ITraverserFactory in configure.zcml;
   instead rely on queryAdapter and a manual default to

- Speed: do not register an IContextURL in configure.zcml; instead
   rely on queryAdapter and a manual default to TraversalContextURL.

- General speed microimprovements for helloworld benchmark: replace
   try/excepts with statements which use 'in' keyword.

Repoze-dev mailing list

Reply via email to