I've been asked to ping the list when I made a new releases of repoze.bfg.  So
here's the first ping.

I've released repoze.bfg 0.6.3.  It's in the
http://dist.repoze.org/lemonade/dev/simple index.   It's a fairly major release
but it should present no backwards compatibility problems.  The major
highlights: URL dispatch overhaul, new paster template look and feel, the
functionality of repoze.bfg.convention has been merged, request and response
factory hooks, and documentation updates are on http://static.repoze.org/bfgdocs
 . The changelog for the release follows.

0.6.3 (2009-01-19)

Bug Fixes

- Readd ``root_policy`` attribute on Router object (as a property
  which returns the IRootFactory utility).  It was inadvertently
  removed in 0.6.2.  Code in the wild depended upon its presence
  (esp. scripts and "debug" helpers).


- URL-dispatch has been overhauled: it is no longer necessary to
  manually create a RoutesMapper in your application's entry point
  callable in order to use URL-dispatch (aka `Routes
  <http://routes.groovie.org>`_).  A new ``route`` directive has been
  added to the available list of ZCML directives.  Each ``route``
  directive inserted into your application's ``configure.zcml``
  establishes a Routes mapper connection.  If any ``route``
  declarations are made via ZCML within a particular application, the
  ``get_root`` callable passed in to ``repoze.bfg.router.make_app``
  will automatically be wrapped in the equivalent of a RoutesMapper.
  Additionally, the new ``route`` directive allows the specification
  of a ``context_interfaces`` attribute for a route, this will be used
  to tag the manufactured routes context with specific interfaces when
  a route specifying a ``context_interfaces`` attribute is matched.

- A new interface ``repoze.bfg.interfaces.IContextNotFound`` was
  added.  This interface is attached to a "dummy" context generated
  when Routes cannot find a match and there is no "fallback" get_root
  callable that uses traversal.

- The ``bfg_starter`` and ``bfg_zodb`` "paster create" templates now
  contain images and CSS which are displayed when the default page is
  displayed after initial project generation.

- Allow the ``repoze.bfg.view.static`` helper to be passed a relative
  ``root_path`` name; it will be considered relative to the file in
  which it was called.

- The functionality of ``repoze.bfg.convention`` has been merged into
  the core.  Applications which make use of ``repoze.bfg.convention``
  will continue to work indefinitely, but it is recommended that apps
  stop depending upon it.  To do so, substitute imports of
  ``repoze.bfg.convention.bfg_view`` with imports of
  ``repoze.bfg.view.bfg_view``, and change the stanza in ZCML from
  ``<convention package=".">`` to ``<scan package=".">``.  As a result
  of the merge, bfg has grown a new dependency: ``martian``.

- View functions which use the pushpage decorator are now pickleable
  (meaning their use won't prevent a ``configure.zcml.cache`` file
  from being written to disk).

- Instead of invariably using ``webob.Request`` as the "request
  factory" (e.g. in the ``Router`` class) and ``webob.Response`` and
  the "response factory" (e.g. in ``render_template_to_response``),
  allow both to be overridden via a ZCML utility hook.  See the "Using
  ZCML Hooks" chapter of the documentation for more information.


- The class ``repoze.bfg.urldispatch.RoutesContext`` has been renamed
  to ``repoze.bfg.urldispatch.DefaultRoutesContext``.  The class
  should be imported by the new name as necessary (although in reality
  it probably shouldn't be imported from anywhere except internally
  within BFG, as it's not part of the API).

Implementation Changes

- The ``repoze.bfg.wsgi.wsgiapp`` decorator now uses
  ``webob.Request.get_response`` to do its work rather than relying on
  homegrown WSGI code.

- The ``repoze.bfg.view.static`` helper now uses
  ``webob.Request.get_response`` to do its work rather than relying on
  homegrown WSGI code.

- The ``repoze.bfg.urldispatch.RoutesModelTraverser`` class has been
  moved to ``repoze.bfg.traversal.RoutesModelTraverser``.

- The ``repoze.bfg.registry.makeRegistry`` function was renamed to
  ``repoze.bfg.registry.populateRegistry`` and now accepts a
  ``registry`` argument (which should be an instance of

Documentation Additions

- Updated narrative urldispatch chapter with changes required by
  ``<route..>`` ZCML directive.

- Add a section on "Using BFG Security With URL Dispatch" into the
  urldispatch chapter of the documentation.

- Better documentation of security policy implementations that ship
  with repoze.bfg.

- Added a "Using ZPT Macros in repoze.bfg" section to the narrative
  templating chapter.

Repoze-dev mailing list

Reply via email to