summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@plope.com>2011-08-21 00:23:00 -0400
committerChris McDonough <chrism@plope.com>2011-08-21 00:23:00 -0400
commita8c81dbd55b1e06dd2da1b598670dc27a73ce8b1 (patch)
tree23b6cf9e33ff7a67c53944ce0509353ab614c246
parentcccc9182e145b5ab329beae4fe05f63e1ce76d4b (diff)
downloadpyramid-a8c81dbd55b1e06dd2da1b598670dc27a73ce8b1.tar.gz
pyramid-a8c81dbd55b1e06dd2da1b598670dc27a73ce8b1.tar.bz2
pyramid-a8c81dbd55b1e06dd2da1b598670dc27a73ce8b1.zip
add a whatsnew-1.2 doc
-rw-r--r--docs/index.rst1
-rw-r--r--docs/narr/environment.rst4
-rw-r--r--docs/whatsnew-1.2.rst211
3 files changed, 216 insertions, 0 deletions
diff --git a/docs/index.rst b/docs/index.rst
index 8ffc7b4fe..0c8b44e76 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -24,6 +24,7 @@ Front Matter
.. toctree::
:maxdepth: 1
+ whatsnew-1.2
whatsnew-1.1
whatsnew-1.0
diff --git a/docs/narr/environment.rst b/docs/narr/environment.rst
index 2f5555840..352912a81 100644
--- a/docs/narr/environment.rst
+++ b/docs/narr/environment.rst
@@ -185,6 +185,8 @@ The value supplied here is used as the default locale name when a
| | |
+---------------------------------+-----------------------------------+
+.. _including_packages:
+
Including Packages
------------------
@@ -287,6 +289,8 @@ Is equivalent to using the following statements in your configuration code:
It is fine to use both or either form.
+.. _explicit_tween_config:
+
Explicit Tween Configuration
----------------------------
diff --git a/docs/whatsnew-1.2.rst b/docs/whatsnew-1.2.rst
new file mode 100644
index 000000000..dee4487d3
--- /dev/null
+++ b/docs/whatsnew-1.2.rst
@@ -0,0 +1,211 @@
+What's New In Pyramid 1.2
+=========================
+
+This article explains the new features in :app:`Pyramid` version 1.2 as
+compared to its predecessor, :app:`Pyramid` 1.1. It also documents backwards
+incompatibilities between the two versions and deprecations added to Pyramid
+1.2, as well as software dependency changes and notable documentation
+additions.
+
+Major Feature Additions
+-----------------------
+
+The major feature additions in Pyramid 1.2 follow.
+
+``route_prefix`` Argument to include
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The :meth:`pyramid.config.Configurator.include` method now accepts a
+``route_prefix`` argument. This argument allows you to compose URL dispatch
+applications together from disparate packages. See :ref:`route_prefix` for
+more information.
+
+Tweens
+~~~~~~
+
+A :term:`tween` is used to wrap the Pyramid router's primary request handling
+function. This is a feature that can be used by Pyramid framework
+extensions, to provide, for example, view timing support and can provide a
+convenient place to hang bookkeeping code. Tweens are is a little like
+:term:`WSGI` middleware, but have access to Pyramid functionality such as
+renderers and a full-featured request object.
+
+To support this feature, a new configurator directive exists named
+:meth:`pyramid.config.Configurator.add_tween`. This directive adds a
+"tween".
+
+Tweens are further described in :ref:`registering_tweens`.
+
+A new paster command now exists: ``paster ptweens``. This command prints the
+current tween configuration for an application. See the section entitled
+:ref:`displaying_tweens` for more info.
+
+Scaffolding Changes
+~~~~~~~~~~~~~~~~~~~
+
+- All scaffolds now use the ``pyramid_tm`` package rather than the
+ ``repoze.tm2`` middleware to manage transaction management.
+
+- The ZODB scaffold now uses the ``pyramid_zodbconn`` package rather than the
+ ``repoze.zodbconn`` package to provide ZODB integration.
+
+- All scaffolds now use the ``pyramid_debugtoolbar`` package rather than the
+ ``WebError`` package to provide interactive debugging features.
+
+- Projects created via a scaffold no longer depend on the ``WebError``
+ package at all; configuration in the ``production.ini`` file which used to
+ require its ``error_catcher`` middleware has been removed. Configuring
+ error catching / email sending is now the domain of the ``pyramid_exclog``
+ package (see https://docs.pylonsproject.org/projects/pyramid_exclog/dev/).
+
+Minor Feature Additions
+-----------------------
+
+- The ``[pshell]`` section in an ini configuration file now treats a
+ ``setup`` key as a dotted name that points to a callable that is passed the
+ bootstrap environment. It can mutate the environment as necessary during a
+ ``paster pshell`` session. This feature is described in
+ :ref:`writing_a_script`.
+
+- A new configuration setting named ``pyramid.includes`` is now available.
+ It is described in :ref:`including_packages`.
+
+- Added a :data:`pyramid.security.NO_PERMISSION_REQUIRED` constant for use in
+ ``permission=`` statements to view configuration. This constant has a
+ value of the string ``__no_permission_required__``. This string value was
+ previously referred to in documentation; now the documentation uses the
+ constant.
+
+- Added a decorator-based way to configure a response adapter:
+ :class:`pyramid.response.response_adapter`. This decorator has the same
+ use as :meth:`pyramid.config.Configurator.add_response_adapter` but it's
+ declarative.
+
+- The :class:`pyramid.events.BeforeRender` event now has an attribute named
+ ``rendering_val``. This can be used to introspect the value returned by a
+ view in a BeforeRender subscriber.
+
+- The Pyramid debug logger now uses the standard logging configuration
+ (usually set up by Paste as part of startup). This means that output from
+ e.g. ``debug_notfound``, ``debug_authorization``, etc. will go to the
+ normal logging channels. The logger name of the debug logger will be the
+ package name of the *caller* of the Configurator's constructor.
+
+- A new attribute is available on request objects: ``exc_info``. Its value
+ will be ``None`` until an exception is caught by the Pyramid router, after
+ which it will be the result of ``sys.exc_info()``.
+
+- :class:`pyramid.testing.DummyRequest` now implements the
+ ``add_finished_callback`` and ``add_response_callback`` methods implemented
+ by :class:`pyramid.request.Request`.
+
+- New methods of the :class:`pyramid.config.Configurator` class:
+ :meth:`~pyramid.config.Configurator.set_authentication_policy` and
+ :meth:`~pyramid.config.Configurator.set_authorization_policy`. These are
+ meant to be consumed mostly by add-on authors who wish to offer packages
+ which register security policies.
+
+- New Configurator method:
+ :meth:`pyramid.config.Configurator.set_root_factory`, which can set the
+ root factory after the Configurator has been constructed.
+
+- Pyramid no longer eagerly commits some default configuration statements at
+ :term:`Configurator` construction time, which permits values passed in as
+ constructor arguments (e.g. ``authentication_policy`` and
+ ``authorization_policy``) to override the same settings obtained via the
+ :meth:`pyramid.config.Configurator.include` method.
+
+- Better Mako rendering exceptions; the template line which caused the error
+ is now shown when a Mako rendering raises an exception.
+
+- New request methods: :meth:`~pyramid.request.Request.current_route_url`,
+ :meth:`~pyramid.request.Request.current_route_path`, and
+ :meth:`~pyramid.request.Request.static_path`.
+
+- New functions in the :mod:`pyramid.url` module:
+ :func:`~pyramid.url.current_route_path` and
+ :func:`~pyramid.url.static_path`.
+
+- The :meth:`pyramid.request.Request.static_url` API (and its brethren
+ :meth:`pyramid.request.Request.static_path`,
+ :func:`pyramid.url.static_url`, and :func:`pyramid.url.static_path`) now
+ accept an asbolute filename as a "path" argument. This will generate a URL
+ to an asset as long as the filename is in a directory which was previously
+ registered as a static view. Previously, trying to generate a URL to an
+ asset using an absolute file path would raise a ValueError.
+
+- The :class:`~pyramid.authentication.RemoteUserAuthenticationPolicy`,
+ :class:`~pyramid.authentication.AuthTktAuthenticationPolicy`, and
+ :class:`~pyramid.authentication.SessionAuthenticationPolicy` constructors
+ now accept an additional keyword argument named ``debug``. By default,
+ this keyword argument is ``False``. When it is ``True``, debug information
+ will be sent to the Pyramid debug logger (usually on stderr) when the
+ ``authenticated_userid`` or ``effective_principals`` method is called on
+ any of these policies. The output produced can be useful when trying to
+ diagnose authentication-related problems.
+
+Deprecations
+------------
+
+- All Pyramid-related :term:`deployment settings` (e.g. ``debug_all``,
+ ``debug_notfound``) are now meant to be prefixed with the prefix
+ ``pyramid.``. For example: ``debug_all`` -> ``pyramid.debug_all``. The
+ old non-prefixed settings will continue to work indefinitely but supplying
+ them may print a deprecation warning. All scaffolds and tutorials have
+ been changed to use prefixed settings.
+
+- The :term:`deployment settings` dictionary now raises a deprecation warning
+ when you attempt to access its values via ``__getattr__`` instead of via
+ ``__getitem__``.
+
+Backwards Incompatibilities
+---------------------------
+
+- If a string is passed as the ``debug_logger`` parameter to a
+ :term:`Configurator`, that string is considered to be the name of a global
+ Python logger rather than a dotted name to an instance of a logger.
+
+- The :meth:`pyramid.config.Configurator.include` method now accepts only a
+ single ``callable`` argument. A *sequence* of callables used to be
+ permitted. If you are passing more than one ``callable`` to
+ :meth:`pyramid.config.Configurator.include`, it will break. You now must
+ now instead make a separate call to the method for each callable.
+
+Documentation Enhancements
+--------------------------
+
+- Narrative and API documentation which used the ``route_url``,
+ ``route_path``, ``resource_url``, ``static_url``, and ``current_route_url``
+ functions in the :mod:`pyramid.url` package have now been changed to use
+ eponymous methods of the request instead.
+
+- Added a section entitled :ref:`route_prefix` to the "URL Dispatch"
+ narrative documentation chapter.
+
+- Added a new module to the API docs: :mod:`pyramid.tweens`.
+
+- Added a :ref:`registering_tweens` section to the "Hooks" narrative chapter.
+
+- Added a :ref:`displaying_tweens` section to the "Command-Line Pyramid"
+ narrative chapter.
+
+- Added documentation for :ref:`explicit_tween_config` and
+ :ref:`including_packages` to the "Environment Variables and ``.ini`` Files
+ Settings" chapter.
+
+- Added a :ref:`logging_chapter` chapter to the narrative docs.
+
+- All tutorials now use - The ``route_url``, ``route_path``,
+ ``resource_url``, ``static_url``, and ``current_route_url`` methods of the
+ :class:`pyramid.request.Request` rather than the function variants imported
+ from ``pyramid.url``.
+
+- The ZODB wiki tutorial now uses the ``pyramid_zodbconn`` package rather
+ than the ``repoze.zodbconn`` package to provide ZODB integration.
+
+Dependency Changes
+------------------
+
+- Pyramid now relies on PasteScript >= 1.7.4. This version contains a
+ feature important for allowing flexible logging configuration.
+