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). Features -------- - 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. Deprecations ------------ - 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 ``zope.component.registry.Components``). 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 Repoze-dev@lists.repoze.org http://lists.repoze.org/listinfo/repoze-dev