repoze.bfg 1.3a12 has been released.  It is a minor feature release.

You may install it via:

   easy_install -i http://dist.repoze.org/bfg/1.3/simple repoze.bfg

Or via PyPI.

The docs at http://docs.repoze.org/bfg/1.3 have been updated.

The changelog follows.

1.3a12 (2010-09-08)
===================

Bug Fixes
---------

- Fix a bug in ``repoze.bfg.url.static_url`` URL generation: if two
  resource specifications were used to create two separate static
  views, but they shared a common prefix, it was possible that
  ``static_url`` would generate an incorrect URL.

- Fix another bug in ``repoze.bfg.static_url`` URL generation: too
  many slashes in generated URL.

- Prevent a race condition which could result in a ``RuntimeError``
  when rendering a Chameleon template that has not already been
  rendered once.  This would usually occur directly after a restart,
  when more than one person or thread is trying to execute the same
  view at the same time: https://bugs.launchpad.net/karl3/+bug/621364

Features
--------

- The argument to ``repoze.bfg.configuration.Configurator.add_route``
  which was previously called ``path`` is now called ``pattern`` for
  better explicability.  For backwards compatibility purposes, passing
  a keyword argument named ``path`` to ``add_route`` will still work
  indefinitely.

- The ``path`` attribute to the ZCML ``route`` directive is now named
  ``pattern`` for better explicability.  The older ``path`` attribute
  will continue to work indefinitely.

Documentation
-------------

- All narrative, API, and tutorial docs which referred to a route
  pattern as a ``path`` have now been updated to refer to them as a
  ``pattern``.

- The ``repoze.bfg.interfaces`` API documentation page is now rendered
  via ``repoze.sphinx.autointerface``.

- The URL Dispatch narrative chapter now refers to the ``interfaces``
  chapter to explain the API of an ``IRoute`` object.

Paster Templates
----------------

- The routesalchemy template has been updated to use ``pattern`` in
  its route declarations rather than ``path``.

Dependencies
------------

- ``tests_require`` now includes ``repoze.sphinx.autointerface`` as a
  dependency.

Internal
--------

- Add an API to the ``Configurator`` named ``get_routes_mapper``.
  This returns an object implementing the ``IRoutesMapper`` interface.

- The ``repoze.bfg.urldispatch.RoutesMapper`` object now has a
  ``get_route`` method which returns a single Route object or
  ``None``.

- A new interface ``repoze.bfg.interfaces.IRoute`` was added.  The
  ``repoze.bfg.urldispatch.Route`` object implements this interface.

- The canonical attribute for accessing the routing pattern from a
  route object is now ``pattern`` rather than ``path``.

- Use ``hash()`` rather than ``id()`` when computing the "phash" of a
  custom route/view predicate in order to allow the custom predicate
  some control over which predicates are "equal".

- Use ``response.headerlist.append`` instead of
  ``response.headers.add`` in
  ``repoze.bfg.request.add_global_response_headers`` in case the
  response is not a WebOb response.

- The ``repoze.bfg.urldispatch.Route`` constructor (not an API) now
  accepts a different ordering of arguments.  Previously it was
  ``(pattern, name, factory=None, predicates=())``.  It is now
  ``(name, pattern, factory=None, predicates=())``.  This is in
  support of consistency with ``configurator.add_route``.

- The ``repoze.bfg.urldispatch.RoutesMapper.connect`` method (not an
  API) now accepts a different ordering of arguments.  Previously it
  was ``(pattern, name, factory=None, predicates=())``.  It is now
  ``(name, pattern, factory=None, predicates=())``.  This is in
  support of consistency with ``configurator.add_route``.


_______________________________________________
Repoze-dev mailing list
Repoze-dev@lists.repoze.org
http://lists.repoze.org/listinfo/repoze-dev

Reply via email to