I am about to release repoze.bfg 0.6 to the "lemonade" index.  It has some
backwards incompatibilities, listed below (thus its version number being bumped
from the last revision of 0.5.6 to 0.6).

I've included the changelog information in this post; it has instructions which
should allow you to change an existing BFG application to use repoze.bfg 0.6.
Hopefully it's enough to get existing folks over the hump of making changes to
their code which will allow it to run on the latest version.  If there are any
questions upgrading an existing application, just ask here or on IRC and we'll
get it resolved.

  - Rather than prepare the "stock" implementations of the ZCML
    directives from the ``zope.configuration`` package for use under
    :mod:`repoze.bfg`, :mod:`repoze.bfg` now makes available the
    implementations of directives from the ``repoze.zcml`` package
    (see http://static.repoze.org/zcmldocs).  As a result, the
    :mod:`repoze.bfg` package now depends on the ``repoze.zcml``
    package, and no longer depends directly on the ``zope.component``,
    ``zope.configuration``, ``zope.interface``, or ``zope.proxy``

    The primary reason for this change is to enable us to eventually
    reduce the number of inappropriate :mod:`repoze.bfg` Zope package
    dependencies, as well as to shed features of dependent package
    directives that don't make sense for :mod:`repoze.bfg`.

    Note that currently the set of requirements necessary to use bfg
    has not changed.  This is due to inappropriate Zope package
    requirements in ``chameleon.zpt``, which will hopefully be
    remedied soon.  NOTE: in lemonade index a 1.0b8-repozezcml0
    package exists which does away with these requirements.

  - BFG applications written prior to this release which expect the
    "stock" ``zope.component`` ZCML directive implementations
    (e.g. ``adapter``, ``subscriber``, or ``utility``) to function now
    must either 1) include the ``meta.zcml`` file from
    ``zope.component`` manually (e.g. ``<include
    package="zope.component" file="meta.zcml">``) and include the
    ``zope.security`` package as an ``install_requires`` dependency or
    2) change the ZCML in their applications to use the declarations
    from `repoze.zcml <http://static.repoze.org/zcmldocs/>`_ instead
    of the stock declarations.  ``repoze.zcml`` only makes available
    the ``adapter``, ``subscriber`` and ``utility`` directives.

    In short, if you've got an existing BFG application, after this
    update, if your application won't start due to an import error for
    "zope.security", the fastest way to get it working again is to add
    ``zope.security`` to the "install_requires" of your BFG
    application's ``setup.py``, then add the following ZCML anywhere
    in your application's ``configure.zcml``::

      <include package="zope.component" file="meta.zcml">

    Then re-``setup.py develop`` or reinstall your application.

  - The copies of BFG's ``meta.zcml`` and ``configure.zcml`` were
    removed from the root of the ``repoze.bfg`` package.  In 0.3.6, a
    new package named ``repoze.bfg.includes`` was added, which
    contains the "correct" copies of these ZCML files; the ones that
    were removed were for backwards compatibility purposes.

Repoze-dev mailing list

Reply via email to