summaryrefslogtreecommitdiff
path: root/CHANGES.txt
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-10-30 18:56:58 +0000
committerChris McDonough <chrism@agendaless.com>2009-10-30 18:56:58 +0000
commit11644e705834ff65cb8963333855a1db6272ae1e (patch)
tree6730225c3c81d52263f37ceac0876b11a57865ae /CHANGES.txt
parent1b2d8e7326cd1eaa95b3522d985e97642764c7c8 (diff)
downloadpyramid-11644e705834ff65cb8963333855a1db6272ae1e.tar.gz
pyramid-11644e705834ff65cb8963333855a1db6272ae1e.tar.bz2
pyramid-11644e705834ff65cb8963333855a1db6272ae1e.zip
Features
-------- - In previous versions of BFG, the "root factory" (the ``get_root`` callable passed to ``make_app`` or a function pointed to by the ``factory`` attribute of a route) was called with a "bare" WSGI environment. In this version, and going forward, it will be called with a ``request`` object. The request object passed to the factory implements dictionary-like methods in such a way that existing root factory code which expects to be passed an environ will continue to work. Internal -------- - The request implements dictionary-like methods that mutate and query the WSGI environ. This is only for the purpose of backwards compatibility with root factories which expect an ``environ`` rather than a request. - The ``repoze.bfg.request.create_route_request_factory`` function, which returned a request factory was removed in favor of a ``repoze.bfg.request.route_request_interface`` function, which returns an interface. - The ``repoze.bfg.request.Request`` class, which is a subclass of ``webob.Request`` now defines its own ``__setattr__``, ``__getattr__`` and ``__delattr__`` methods, which override the default WebOb behavior. The default WebOb behavior stores attributes of the request in ``self.environ['webob.adhoc_attrs']``, and retrieves them from that dictionary during a ``__getattr__``. This behavior was undesirable for speed and "expectation" reasons. Now attributes of the ``request`` are stored in ``request.__dict__`` (as you otherwise might expect from an object that did not override these methods). - Reverse the order in which the router calls the request factory and the root factory. The request factory is now called first; the resulting request is passed to the root factory. - The ``repoze.bfg.request.request_factory`` function has been removed. Its functionality is no longer required. - The "routes root factory" that wraps the default root factory when there are routes mentioned in the configuration now attaches an interface to the request via ``zope.interface.directlyProvides``. This replaces logic in the (now-gone) ``repoze.bfg.request.request_factory`` function. - The ``route`` and ``view`` ZCML directives now register an interface as a named utility (retrieved from ``repoze.bfg.request.route_request_interface``) rather than a request factory (the previous return value of the now-missing ``repoze.bfg.request.create_route_request_factory``.
Diffstat (limited to 'CHANGES.txt')
-rw-r--r--CHANGES.txt41
1 files changed, 41 insertions, 0 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index c47693284..ca6c501fb 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -10,9 +10,31 @@ Bug Fixes
combination of a predicate value with an ``=`` sign and one without
(e.g. ``a`` vs. ``a=123``).
+Features
+--------
+
+- In previous versions of BFG, the "root factory" (the ``get_root``
+ callable passed to ``make_app`` or a function pointed to by the
+ ``factory`` attribute of a route) was called with a "bare" WSGI
+ environment. In this version, and going forward, it will be called
+ with a ``request`` object. The request object passed to the factory
+ implements dictionary-like methods in such a way that existing root
+ factory code which expects to be passed an environ will continue to
+ work.
+
Internal
--------
+- The request implements dictionary-like methods that mutate and query
+ the WSGI environ. This is only for the purpose of backwards
+ compatibility with root factories which expect an ``environ`` rather
+ than a request.
+
+- The ``repoze.bfg.request.create_route_request_factory`` function,
+ which returned a request factory was removed in favor of a
+ ``repoze.bfg.request.route_request_interface`` function, which
+ returns an interface.
+
- The ``repoze.bfg.request.Request`` class, which is a subclass of
``webob.Request`` now defines its own ``__setattr__``,
``__getattr__`` and ``__delattr__`` methods, which override the
@@ -27,6 +49,25 @@ Internal
- The router no longer calls ``repoze.bfg.traversal._traverse`` and
does its work "inline" (speed).
+- Reverse the order in which the router calls the request factory and
+ the root factory. The request factory is now called first; the
+ resulting request is passed to the root factory.
+
+- The ``repoze.bfg.request.request_factory`` function has been
+ removed. Its functionality is no longer required.
+
+- The "routes root factory" that wraps the default root factory when
+ there are routes mentioned in the configuration now attaches an
+ interface to the request via ``zope.interface.directlyProvides``.
+ This replaces logic in the (now-gone)
+ ``repoze.bfg.request.request_factory`` function.
+
+- The ``route`` and ``view`` ZCML directives now register an interface
+ as a named utility (retrieved from
+ ``repoze.bfg.request.route_request_interface``) rather than a
+ request factory (the previous return value of the now-missing
+ ``repoze.bfg.request.create_route_request_factory``.
+
1.1a8 (2009-10-27)
==================