summaryrefslogtreecommitdiff
path: root/CHANGES.txt
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-05-01 08:02:55 +0000
committerChris McDonough <chrism@agendaless.com>2009-05-01 08:02:55 +0000
commita7a6d7568546dcc88d836653cce8e69916f1e442 (patch)
treecebbe72e3192d49bb4432454fa8cd46228d47cbe /CHANGES.txt
parentc857492756ba39f44a15572341dbdfa076bcb644 (diff)
downloadpyramid-a7a6d7568546dcc88d836653cce8e69916f1e442.tar.gz
pyramid-a7a6d7568546dcc88d836653cce8e69916f1e442.tar.bz2
pyramid-a7a6d7568546dcc88d836653cce8e69916f1e442.zip
- The ``repoze.bfg.location.LocationProxy`` class and the
``repoze.bfg.location.ClassAndInstanceDescr`` class have both been removed in order to be able to eventually shed a dependency on ``zope.proxy``. Neither of these classes was ever an API. - In all previous releases, the ``repoze.bfg.location.locate`` function worked like so: if a model did not explicitly provide the ``repoze.bfg.interfaces.ILocation`` interface, ``locate`` returned a ``LocationProxy`` object representing ``model`` with its ``__parent__`` attribute assigned to ``parent`` and a ``__name__`` attribute assigned to ``__name__``. In this release, the ``repoze.bfg.location.locate`` function simply jams the ``__name__`` and ``__parent__`` attributes on to the supplied model unconditionally, no matter if the object implements ILocation or not, and it never returns a proxy. This was done because the LocationProxy behavior has now moved into an add-on package (``repoze.bfg.traversalwrapper``), in order to eventually be able to shed a dependency on ``zope.proxy``. - In all previous releases, by default, if traversal was used (as opposed to URL-dispatch), and the root object supplied the``repoze.bfg.interfaces.ILocation`` interface, but the children returned via its ``__getitem__`` returned an object that did not implement the same interface, :mod:`repoze.bfg` provided some implicit help during traversal. This traversal feature wrapped subobjects from the root (and thereafter) that did not implement ``ILocation`` in proxies which automatically provided them with a ``__name__`` and ``__parent__`` attribute based on the name being traversed and the previous object traversed. This feature has now been removed from the base ``repoze.bfg`` package for purposes of eventually shedding a dependency on ``zope.proxy``. In order to re-enable the wrapper behavior for older applications which cannot be changed, register the "traversalwrapper" ``ModelGraphTraverser`` as the traversal policy, rather than the default ``ModelGraphTraverser``. To use this feature, you will need to install the ``repoze.bfg.traversalwrapper`` package (an add-on package, available at http://svn.repoze.org/repoze.bfg.traversalwrapper) Then change your application's ``configure.zcml`` to include the following stanza: <adapter factory="repoze.bfg.traversalwrapper.ModelGraphTraverser" provides="repoze.bfg.interfaces.ITraverserFactory" for="*" /> When this ITraverserFactory is used instead of the default, no object in the graph (even the root object) must supply a ``__name__`` or ``__parent__`` attribute. Even if subobjects returned from the root *do* implement the ILocation interface, these will still be wrapped in proxies that override the object's "real" ``__parent__`` and ``__name__`` attributes. See also changes to the "Models" chapter of the documentation (in the "Location-Aware Model Instances") section.
Diffstat (limited to 'CHANGES.txt')
-rw-r--r--CHANGES.txt63
1 files changed, 44 insertions, 19 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index e8371c661..e51c238b4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -9,13 +9,17 @@ Index-Related
been superseded by a new index location
(`http://dist.repoze.org/bfg/current/simple
<http://dist.repoze.org/bfg/current/simple>`_). The installation
- documentation has been updated. The "lemonade" index still exists,
- but it is not guaranteed to have the latest BFG software in it, nor
- will it be maintained in the future.
+ documentation has been updated as well as the ``setup.cfg`` file in
+ this package. The "lemonade" index still exists, but it is not
+ guaranteed to have the latest BFG software in it, nor will it be
+ maintained in the future.
Features
--------
+- The "paster create" templates have been modified to use links to the
+ new "bfg.repoze.org" and "docs.repoze.org" websites.
+
- Added better documentation for virtual hosting at a URL prefix
within the virtual hosting docs chapter.
@@ -78,6 +82,25 @@ Features
Backwards Incompatibilities
---------------------------
+- The ``repoze.bfg.location.LocationProxy`` class and the
+ ``repoze.bfg.location.ClassAndInstanceDescr`` class have both been
+ removed in order to be able to eventually shed a dependency on
+ ``zope.proxy``. Neither of these classes was ever an API.
+
+- In all previous releases, the ``repoze.bfg.location.locate``
+ function worked like so: if a model did not explicitly provide the
+ ``repoze.bfg.interfaces.ILocation`` interface, ``locate`` returned a
+ ``LocationProxy`` object representing ``model`` with its
+ ``__parent__`` attribute assigned to ``parent`` and a ``__name__``
+ attribute assigned to ``__name__``. In this release, the
+ ``repoze.bfg.location.locate`` function simply jams the ``__name__``
+ and ``__parent__`` attributes on to the supplied model
+ unconditionally, no matter if the object implements ILocation or
+ not, and it never returns a proxy. This was done because the
+ LocationProxy behavior has now moved into an add-on package
+ (``repoze.bfg.traversalwrapper``), in order to eventually be able to
+ shed a dependency on ``zope.proxy``.
+
- In all previous releases, by default, if traversal was used (as
opposed to URL-dispatch), and the root object supplied
the``repoze.bfg.interfaces.ILocation`` interface, but the children
@@ -88,28 +111,30 @@ Backwards Incompatibilities
``ILocation`` in proxies which automatically provided them with a
``__name__`` and ``__parent__`` attribute based on the name being
traversed and the previous object traversed. This feature has now
- been disabled in the default configuration for purposes of speed and
- understandability.
-
- In order to re-enable the ILocation wrapper behavior for older
- applications which cannot be changed, register the
- ``WrappingModelGraphTraverser`` as the traversal policy, rather than
- the default ``ModelGraphTraverser``. To use this feature, your
- application will need to have the following in its
- ``configure.zcml``::
+ been removed from the base ``repoze.bfg`` package for purposes of
+ eventually shedding a dependency on ``zope.proxy``.
+
+ In order to re-enable the wrapper behavior for older applications
+ which cannot be changed, register the "traversalwrapper"
+ ``ModelGraphTraverser`` as the traversal policy, rather than the
+ default ``ModelGraphTraverser``. To use this feature, you will need
+ to install the ``repoze.bfg.traversalwrapper`` package (an add-on
+ package, available at
+ http://svn.repoze.org/repoze.bfg.traversalwrapper) Then change your
+ application's ``configure.zcml`` to include the following stanza:
<adapter
- factory="repoze.bfg.traversal.WrappingModelGraphTraverser"
+ factory="repoze.bfg.traversalwrapper.ModelGraphTraverser"
provides="repoze.bfg.interfaces.ITraverserFactory"
for="*"
/>
- When this ITraverserFactory is used, no object in the graph (even
- the root object) must supply a ``__name__`` or ``__parent__``
- attribute. Even if subobjects returned from the root *do*
- implement the ILocation interface, these will still be wrapped in
- proxies that override the object's "real" ``__parent__`` and
- ``__name__`` attributes.
+ When this ITraverserFactory is used instead of the default, no
+ object in the graph (even the root object) must supply a
+ ``__name__`` or ``__parent__`` attribute. Even if subobjects
+ returned from the root *do* implement the ILocation interface,
+ these will still be wrapped in proxies that override the object's
+ "real" ``__parent__`` and ``__name__`` attributes.
See also changes to the "Models" chapter of the documentation (in
the "Location-Aware Model Instances") section.