summaryrefslogtreecommitdiff
path: root/CHANGES.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGES.txt')
-rw-r--r--CHANGES.txt106
1 files changed, 94 insertions, 12 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index 04f5a7d05..b7be0aea0 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -9,23 +9,85 @@ Bug Fixes
Instead of trying to resolve the view, if it cannot, it will now just print
``<unknown>``.
+- The `self` argument was included in new methods of the ``ISession`` interface
+ signature, causing ``pyramid_beaker`` tests to fail (jkrebs).
+
+- Readd ``pyramid.traversal.model_path_tuple`` as an alias for
+ ``pyramid.traversal.resource_path_tuple`` for backwards compatibility.
+
Features
--------
+- Add a new API ``pyramid.url.current_route_url``, which computes a URL based
+ on the "current" route (if any) and its matchdict values.
+
- ``config.add_view`` now accepts a ``decorator`` keyword argument, a callable
which will decorate the view callable before it is added to the registry.
-- ``config.add_view`` now accepts a ``view_mapper`` keyword argument, which
- should be a class which implements the new
- ``pyramid.interfaces.IViewMapperFactory`` interface. Use of an alternate
- view mapper allows objects that are meant to be used as view callables to
- have an arbitrary argument list and an arbitrary result. This feature will
- be used by Pyramid extension developers, not by "civilians".
-
-- If a handler class provides an __action_decorator__ attribute (usually a
- classmethod or staticmethod), use that as the decorator for each view
+- If a handler class provides an ``__action_decorator__`` attribute (usually
+ a classmethod or staticmethod), use that as the decorator for each view
registration for that handler.
+- The ``pyramid.interfaces.IAuthenticationPolicy`` interface now specifies an
+ ``unauthenticated_userid`` method. This method supports an important
+ optimization required by people who are using persistent storages which do
+ not support object caching and whom want to create a "user object" as a
+ request attribute.
+
+- A new API has been added to the ``pyramid.security`` module named
+ ``unauthenticated_userid``. This API function calls the
+ ``unauthenticated_userid`` method of the effective security policy.
+
+- An ``unauthenticated_userid`` method has been added to the dummy
+ authentication policy returned by
+ ``pyramid.config.Configurator.testing_securitypolicy``. It returns the
+ same thing as that the dummy authentication policy's
+ ``authenticated_userid`` method.
+
+- The class ``pyramid.authentication.AuthTktCookieHelper`` is now an API.
+ This class can be used by third-party authentication policy developers to
+ help in the mechanics of authentication cookie-setting.
+
+- New constructor argument to Configurator: ``default_view_mapper``. Useful
+ to create systems that have alternate view calling conventions. A view
+ mapper allows objects that are meant to be used as view callables to have
+ an arbitrary argument list and an arbitrary result. The object passed as
+ ``default_view_mapper`` should implement the
+ ``pyramid.interfaces.IViewMapperFactory`` interface.
+
+- add a ``set_view_mapper`` API to Configurator. Has
+ the same result as passing ``default_view_mapper`` to the Configurator
+ constructor.
+
+- ``config.add_view`` now accepts a ``mapper`` keyword argument, which should
+ either be ``None``, a string representing a Python dotted name, or an
+ object which is an ``IViewMapperFactory``. This feature is not useful for
+ "civilians", only for extension writers.
+
+- Allow static renderer provided during view registration to be overridden at
+ request time via a request attribute named ``override_renderer``, which
+ should be the name of a previously registered renderer. Useful to provide
+ "omnipresent" RPC using existing rendered views.
+
+- Instances of ``pyramid.testing.DummyRequest`` now have a ``session``
+ object, which is mostly a dictionary, but also implements the other session
+ API methods for flash and CSRF.
+
+Backwards Incompatibilities
+---------------------------
+
+- Since the ``pyramid.interfaces.IAuthenticationPolicy`` interface now
+ specifies that a policy implementation must implement an
+ ``unauthenticated_userid`` method, all third-party custom authentication
+ policies now must implement this method. It, however, will only be called
+ when the global function named ``pyramid.security.unauthenticated_userid``
+ is invoked, so if you're not invoking that, you will not notice any issues.
+
+- ``pyramid.interfaces.ISession.get_csrf_token`` now mandates that an
+ implementation should return a *new* token if one doesn't already exist in
+ the session (previously it would return None). The internal sessioning
+ implementation has been changed.
+
Documentation
-------------
@@ -33,24 +95,44 @@ Documentation
removed from the tutorials section. It was moved to the
``pyramid_tutorials`` Github repository.
+- The "Resource Location and View Lookup" chapter has been replaced with a
+ variant of Rob Miller's "Much Ado About Traversal" (originally published at
+ http://blog.nonsequitarian.org/2010/much-ado-about-traversal/).
+
+- Many minor wording tweaks and refactorings (merged Casey Duncan's docs
+ fork, in which he is working on general editing).
+
+- Added (weak) description of new view mapper feature to Hooks narrative
+ chapter.
+
Internals
---------
- The "view derivation" code is now factored into a set of classes rather
than a large number of standalone functions (a side effect of the
- ``view_mapper`` refactoring).
+ view mapper refactoring).
- The ``pyramid.renderer.RendererHelper`` class has grown a ``render_view``
method, which is used by the default view mapper (a side effect of the
- ``view_mapper`` refactoring).
+ view mapper refactoring).
- The object passed as ``renderer`` to the "view deriver" is now an instance
of ``pyramid.renderers.RendererHelper`` rather than a dictionary (a side
- effect of ``view_mapper`` refactoring).
+ effect of view mapper refactoring).
- The class used as the "page template" in ``pyramid.chameleon_text`` was
removed, in preference to using a Chameleon-inbuilt version.
+- A view callable wrapper registered in the registry now contains an
+ ``__original_view__`` attribute which references the original view callable
+ (or class).
+
+- The (non-API) method of all internal authentication policy implementations
+ previously named ``_get_userid`` is now named ``unauthenticated_userid``,
+ promoted to an API method. If you were overriding this method, you'll now
+ need to override it as ``unauthenticated_userid`` instead.
+
+- Remove (non-API) function of config.py named _map_view.
1.0a8 (2010-12-27)
==================