Michael Merickel
2017-05-01 e78aa24cda85368c3507c145e1e604e7335778dc
commit | author | age
b38bbf 1 unreleased
MM 2 ==========
bdb8e0 3
fa8a9d 4 Major Features
MM 5 --------------
6
7 - The file format used by all ``p*`` command line scripts such as ``pserve``
8   and ``pshell``, as well as the ``pyramid.paster.bootstrap`` function
9   is now replaceable thanks to a new dependency on
f454b8 10   `plaster <http://docs.pylonsproject.org/projects/plaster/en/latest/>`_.
fa8a9d 11
MM 12   For now, Pyramid is still shipping with integrated support for the
13   PasteDeploy INI format by depending on the ``plaster_pastedeploy`` binding.
14
15   See https://github.com/Pylons/pyramid/pull/2985
5f4649 16
4c3971 17 - Added an execution policy hook to the request pipeline. An execution
MM 18   policy has the ability to control creation and execution of the request
f454b8 19   objects before they enter the rest of the pipeline. This means for a single
fa8a9d 20   request environ the policy may create more than one request object.
MM 21
22   The first library to use this feature is
23   `pyramid_retry
f454b8 24   <http://docs.pylonsproject.org/projects/pyramid-retry/en/latest/>`_.
fa8a9d 25
MM 26   See https://github.com/Pylons/pyramid/pull/2964
27
28 Features
29 --------
4c3971 30
839dbf 31 - Support an ``open_url`` config setting in the ``pserve`` section of the
MM 32   config file. This url is used to open a web browser when ``pserve --browser``
33   is invoked. When this setting is unavailable the ``pserve`` script will
34   attempt to guess the port the server is using from the
35   ``server:<server_name>`` section of the config file but there is no
36   requirement that the server is being run in this format so it may fail.
37   See https://github.com/Pylons/pyramid/pull/2984
38
bd1cce 39 - The threadlocals are now available inside any function invoked via
MM 40   ``config.include``. This means the only config-time code that cannot rely
41   on threadlocals is code executed from non-actions inside the main. This
42   can be alleviated by invoking ``config.begin()`` and ``config.end()``
43   appropriately. See https://github.com/Pylons/pyramid/pull/2989
44
682a9b 45 - A new CSRF implementation, ``pyramid.csrf.SessionCSRFStoragePolicy``,
MM 46   has been added which delegates all CSRF generation to the current session,
47   following the old API for this. A ``pyramid.csrf.get_csrf_token()`` api is now
48   available in template global scope, to make it easy for template developers
49   to get the current CSRF token without adding it to Python code.
50   See https://github.com/Pylons/pyramid/pull/2854 and
51   https://github.com/Pylons/pyramid/pull/3019
a2c7c7 52
87af11 53 - The ``pyramid.config.Configurator`` can now be used as a context manager
MM 54   which will automatically push/pop threadlocals (similar to
55   ``config.begin()`` and ``config.end()``). It will also automatically perform
56   a ``config.commit()`` and thus it is only recommended to be used at the
57   top-level of your app. See https://github.com/Pylons/pyramid/pull/2874
a2c7c7 58
1cf132 59 Bug Fixes
BJR 60 ---------
45f882 61
564b63 62 - HTTPException's accepts a detail kwarg that may be used to pass additional
BJR 63   details to the exception. You may now pass objects so long as they have a
169155 64   valid __str__ method. See https://github.com/Pylons/pyramid/pull/2951
MM 65
66 - Fix a reference cycle causing memory leaks in which the registry
67   would keep a ``Configurator`` instance alive even after the configurator
68   was discarded. Another fix was also added for the ``global_registries``
69   object in which the registry was stored in a closure preventing it from
70   being deallocated. See https://github.com/Pylons/pyramid/pull/2967
564b63 71
38294e 72 - Fix a bug directly invoking ``pyramid.scripts.pserve.main`` with the
MM 73   ``--reload`` option in which ``sys.argv`` is always used in the subprocess
74   instead of the supplied ``argv``.
75   See https://github.com/Pylons/pyramid/pull/2962
76
1cf132 77 Deprecations
BJR 78 ------------
cb98a9 79
b38bbf 80 Backward Incompatibilities
MM 81 --------------------------
d2f0fe 82
d9c20d 83 Documentation Changes
MM 84 ---------------------
a2c7c7 85
MW 86 - Retrieving CSRF token from the session has been deprecated, in favor of
87   equivalent methods in :mod:`pyramid.csrf`.
88   See https://github.com/Pylons/pyramid/pull/2854