.. _changes_1.8.5:
|
|
1.8.5 (2017-07-13)
|
==================
|
|
- Fix a circular import which made it impossible to import
|
``pyramid.viewderivers`` before ``pyramid.config``.
|
See https://github.com/Pylons/pyramid/pull/3125
|
|
.. _changes_1.8.4:
|
|
1.8.4 (2017-06-11)
|
==================
|
|
Bug Fixes
|
---------
|
|
- Fix a bug in which ``pyramid.security.ALL_PERMISSIONS`` failed to return
|
a valid iterator in its ``__iter__`` implementation.
|
See https://github.com/Pylons/pyramid/pull/3076
|
|
Documentation Changes
|
---------------------
|
|
- Updated pyramid-cookiecutter-starter prompts and description to include Mako.
|
See https://github.com/Pylons/pyramid/pull/2982
|
|
- Added integrity attributes for JavaScripts in cookiecutters, scaffolds, and
|
resulting source files in tutorials.
|
See https://github.com/Pylons/pyramid/issues/2548
|
|
- Update ``cookiecutter`` command to use a checkout for specific branch and
|
shorten it. See https://github.com/Pylons/pyramid/issues/3042
|
|
.. _changes_1.8.3:
|
|
1.8.3 (2017-03-12)
|
==================
|
|
Bug Fixes
|
---------
|
|
- Fix a reference cycle causing memory leaks in which the registry
|
would keep a ``Configurator`` instance alive even after the configurator
|
was discarded. Another fix was also added for the ``global_registries``
|
object in which the registry was stored in a closure preventing it from
|
being deallocated. See https://github.com/Pylons/pyramid/pull/2973
|
|
- Fix a bug directly invoking ``pyramid.scripts.pserve.main`` with the
|
``--reload`` option in which ``sys.argv`` is always used in the subprocess
|
instead of the supplied ``argv``.
|
See https://github.com/Pylons/pyramid/pull/2974
|
|
Documentation Changes
|
---------------------
|
|
- Updated pyramid-cookiecutter-starter prompts and reformat presentation of all
|
cookiecutter prompts. See https://github.com/Pylons/pyramid/pull/2966
|
|
.. _changes_1.8.2:
|
|
1.8.2 (2017-02-20)
|
==================
|
|
- ``HTTPException``'s accepts a detail kwarg that may be used to pass
|
additional details to the exception. You may now pass objects so long as
|
they have a valid ``__str__`` method.
|
See https://github.com/Pylons/pyramid/pull/2951
|
|
- Fix ``Configurator(settings=settings)`` to copy the passed in settings
|
dictionary instead of using it verbatim. This fixes a regression from 1.7
|
introduced via https://github.com/Pylons/pyramid/pull/2823.
|
See https://github.com/Pylons/pyramid/pull/2960
|
|
.. _changes_1.8.1:
|
|
1.8.1 (2017-01-24)
|
==================
|
|
- Restore the ``pyramid.registry.Registry`` signature that forwards extra
|
``*args, **kwargs`` to ``zope.interface.registry.Components`` allowing
|
implementations to specify a custom registry with ``bases``.
|
See https://github.com/Pylons/pyramid/pull/2918
|
|
1.8 (2017-01-21)
|
================
|
|
- No major changes from 1.8b1.
|
|
1.8b1 (2017-01-17)
|
==================
|
|
Features
|
--------
|
|
- Added an ``override`` option to ``config.add_translation_dirs`` to allow
|
later calls to place translation directories at a higher priority than
|
earlier calls. See https://github.com/Pylons/pyramid/pull/2902
|
|
Documentation Changes
|
---------------------
|
|
- Improve registry documentation to discuss uses as a component registry
|
and as a dictionary. See https://github.com/Pylons/pyramid/pull/2893
|
|
- Quick Tour, Quick Tutorial, and most other remaining documentation updated to
|
use cookiecutters instead of pcreate and scaffolds.
|
See https://github.com/Pylons/pyramid/pull/2888 and
|
https://github.com/Pylons/pyramid/pull/2889
|
|
- Fix unittests in wiki2 to work without different dependencies between
|
py2 and py3. See https://github.com/Pylons/pyramid/pull/2899
|
|
- Update Windows documentation to track newer Python 3 improvements to the
|
installer. See https://github.com/Pylons/pyramid/pull/2900
|
|
- Updated the ``mod_wsgi`` tutorial to use cookiecutters and Apache 2.4+.
|
See https://github.com/Pylons/pyramid/pull/2901
|
|
1.8a1 (2016-12-25)
|
==================
|
|
Backward Incompatibilities
|
--------------------------
|
|
- Support for the ``IContextURL`` interface that was deprecated in Pyramid 1.3
|
has been removed. See https://github.com/Pylons/pyramid/pull/2822
|
|
- Following the Pyramid deprecation period (1.6 -> 1.8),
|
daemon support for pserve has been removed. This includes removing the
|
daemon commands (start, stop, restart, status) as well as the following
|
arguments: ``--daemon``, ``--pid-file``, ``--log-file``,
|
``--monitor-restart``, ``--status``, ``--user``, ``--group``,
|
``--stop-daemon``
|
|
To run your server as a daemon you should use a process manager instead of
|
pserve.
|
|
See https://github.com/Pylons/pyramid/pull/2615
|
|
- ``pcreate`` is now interactive by default. You will be prompted if a file
|
already exists with different content. Previously if there were similar
|
files it would silently skip them unless you specified ``--interactive``
|
or ``--overwrite``.
|
See https://github.com/Pylons/pyramid/pull/2775
|
|
- Removed undocumented argument ``cachebust_match`` from
|
``pyramid.static.static_view``. This argument was shipped accidentally
|
in Pyramid 1.6. See https://github.com/Pylons/pyramid/pull/2681
|
|
- Change static view to avoid setting the ``Content-Encoding`` response header
|
to an encoding guessed using Python's ``mimetypes`` module. This was causing
|
clients to decode the content of gzipped files when downloading them. The
|
client would end up with a ``foo.txt.gz`` file on disk that was already
|
decoded, thus should really be ``foo.txt``. Also, the ``Content-Encoding``
|
should only have been used if the client itself broadcast support for the
|
encoding via ``Accept-Encoding`` request headers.
|
See https://github.com/Pylons/pyramid/pull/2810
|
|
- Settings are no longer accessible as attributes on the settings object
|
(e.g. ``request.registry.settings.foo``). This was deprecated in Pyramid 1.2.
|
See https://github.com/Pylons/pyramid/pull/2823
|
|
Features
|
--------
|
|
- Python 3.6 compatibility.
|
https://github.com/Pylons/pyramid/issues/2835
|
|
- ``pcreate`` learned about ``--package-name`` to allow you to create a new
|
project in an existing folder with a different package name than the project
|
name. See https://github.com/Pylons/pyramid/pull/2783
|
|
- The ``_get_credentials`` private method of ``BasicAuthAuthenticationPolicy``
|
has been extracted into standalone function ``extract_http_basic_credentials``
|
in ``pyramid.authentication`` module, this function extracts HTTP Basic
|
credentials from a ``request`` object, and returns them as a named tuple.
|
See https://github.com/Pylons/pyramid/pull/2662
|
|
- Pyramid 1.4 silently dropped a feature of the configurator that has been
|
restored. It's again possible for action discriminators to conflict across
|
different action orders.
|
See https://github.com/Pylons/pyramid/pull/2757
|
|
- ``pyramid.paster.bootstrap`` and its sibling ``pyramid.scripting.prepare``
|
can now be used as context managers to automatically invoke the ``closer``
|
and pop threadlocals off of the stack to prevent memory leaks.
|
See https://github.com/Pylons/pyramid/pull/2760
|
|
- Added ``pyramid.config.Configurator.add_exception_view`` and the
|
``pyramid.view.exception_view_config`` decorator. It is now possible using
|
these methods or via the new ``exception_only=True`` option to ``add_view``
|
to add a view which will only be matched when handling an exception.
|
Previously any exception views were also registered for a traversal
|
context that inherited from the exception class which prevented any
|
exception-only optimizations.
|
See https://github.com/Pylons/pyramid/pull/2660
|
|
- Added the ``exception_only`` boolean to
|
``pyramid.interfaces.IViewDeriverInfo`` which can be used by view derivers
|
to determine if they are wrapping a view which only handles exceptions.
|
This means that it is no longer necessary to perform request-time checks
|
for ``request.exception`` to determine if the view is handling an exception
|
- the pipeline can be optimized at config-time.
|
See https://github.com/Pylons/pyramid/pull/2660
|
|
- ``pserve`` should now work with ``gevent`` and other workers that need
|
to monkeypatch the process, assuming the server and / or the app do so
|
as soon as possible before importing the rest of pyramid.
|
See https://github.com/Pylons/pyramid/pull/2797
|
|
- Pyramid no longer copies the settings object passed to the
|
``pyramid.config.Configurator(settings=)``. The original ``dict`` is kept.
|
See https://github.com/Pylons/pyramid/pull/2823
|
|
- The csrf trusted origins setting may now be a whitespace-separated list of
|
domains. Previously only a python list was allowed. Also, it can now be set
|
using the ``PYRAMID_CSRF_TRUSTED_ORIGINS`` environment variable similar to
|
other settings. See https://github.com/Pylons/pyramid/pull/2823
|
|
- ``pserve --reload`` now uses the
|
`hupper <https://docs.pylonsproject.org/projects/hupper/en/latest/>`_
|
library to monitor file changes. This comes with many improvements:
|
|
- If the `watchdog <http://pythonhosted.org/watchdog/>`_ package is
|
installed then monitoring will be done using inotify instead of
|
cpu and disk-intensive polling.
|
|
- The monitor is now a separate process that will not crash and starts up
|
before any of your code.
|
|
- The monitor will not restart the process after a crash until a file is
|
saved.
|
|
- The monitor works on windows.
|
|
- You can now trigger a reload manually from a pyramid view or any other
|
code via ``hupper.get_reloader().trigger_reload()``. Kind of neat.
|
|
- You can trigger a reload by issuing a ``SIGHUP`` to the monitor process.
|
|
See https://github.com/Pylons/pyramid/pull/2805
|
|
- A new ``[pserve]`` section is supported in your config files with a
|
``watch_files`` key that can configure ``pserve --reload`` to monitor custom
|
file paths. See https://github.com/Pylons/pyramid/pull/2827
|
|
- Allow streaming responses to be made from subclasses of
|
``pyramid.httpexceptions.HTTPException``. Previously the response would
|
be unrolled while testing for a body, making it impossible to stream
|
a response.
|
See https://github.com/Pylons/pyramid/pull/2863
|
|
- Update starter, alchemy and zodb scaffolds to support IPv6 by using the
|
new ``listen`` directives in waitress.
|
See https://github.com/Pylons/pyramid/pull/2853
|
|
- All p* scripts now use argparse instead of optparse. This improves their
|
``--help`` output as well as enabling nicer documentation of their options.
|
See https://github.com/Pylons/pyramid/pull/2864
|
|
- Any deferred configuration action registered via ``config.action`` may now
|
depend on threadlocal state, such as asset overrides, being active when
|
the action is executed.
|
See https://github.com/Pylons/pyramid/pull/2873
|
|
- Asset specifications for directories passed to
|
``config.add_translation_dirs`` now support overriding the entire asset
|
specification, including the folder name. Previously only the package name
|
was supported and the folder would always need to have the same name.
|
See https://github.com/Pylons/pyramid/pull/2873
|
|
- ``config.begin()`` will propagate the current threadlocal request through
|
as long as the registry is the same. For example:
|
|
.. code-block:: python
|
|
request = Request.blank(...)
|
config.begin(request) # pushes a request
|
config.begin() # propagates the previous request through unchanged
|
assert get_current_request() is request
|
|
See https://github.com/Pylons/pyramid/pull/2873
|
|
- Added a new ``callback`` option to ``config.set_default_csrf_options`` which
|
can be used to determine per-request whether CSRF checking should be enabled
|
to allow for a mix authentication methods. Only cookie-based methods
|
generally require CSRF checking.
|
See https://github.com/Pylons/pyramid/pull/2778
|
|
Bug Fixes
|
---------
|
|
- Fixed bug in ``proutes`` such that it now shows the correct view when a
|
class and ``attr`` is involved.
|
See: https://github.com/Pylons/pyramid/pull/2687
|
|
- Fix a ``FutureWarning`` in Python 3.5 when using ``re.split`` on the
|
``format`` setting to the ``proutes`` script.
|
See https://github.com/Pylons/pyramid/pull/2714
|
|
- Fix a ``RuntimeWarning`` emitted by WebOb when using arbitrary objects
|
as the ``userid`` in the ``AuthTktAuthenticationPolicy``. This is now caught
|
by the policy and the object is serialized as a base64 string to avoid
|
the cryptic warning. Since the userid will be read back as a string on
|
subsequent requests a more useful warning is emitted encouraging you to
|
use a primitive type instead.
|
See https://github.com/Pylons/pyramid/pull/2715
|
|
- Pyramid 1.6 introduced the ability for an action to invoke another action.
|
There was a bug in the way that ``config.add_view`` would interact with
|
custom view derivers introduced in Pyramid 1.7 because the view's
|
discriminator cannot be computed until view derivers and view predicates
|
have been created in earlier orders. Invoking an action from another action
|
would trigger an unrolling of the pipeline and would compute discriminators
|
before they were ready. The new behavior respects the ``order`` of the action
|
and ensures the discriminators are not computed until dependent actions
|
from previous orders have executed.
|
See https://github.com/Pylons/pyramid/pull/2757
|
|
- Fix bug in i18n where the default domain would always use the Germanic plural
|
style, even if a different plural function is defined in the relevant
|
messages file. See https://github.com/Pylons/pyramid/pull/2859
|
|
- The ``config.override_asset`` method now occurs during
|
``pyramid.config.PHASE1_CONFIG`` such that it is ordered to execute before
|
any calls to ``config.add_translation_dirs``.
|
See https://github.com/Pylons/pyramid/pull/2873
|
|
Deprecations
|
------------
|
|
- The ``pcreate`` script and related scaffolds have been deprecated in favor
|
of the popular
|
`cookiecutter <https://cookiecutter.readthedocs.io/en/latest/>`_ project.
|
|
All of Pyramid's official scaffolds as well as the tutorials have been
|
ported to cookiecutters:
|
|
- `pyramid-cookiecutter-starter
|
<https://github.com/Pylons/pyramid-cookiecutter-starter>`_
|
|
- `pyramid-cookiecutter-alchemy
|
<https://github.com/Pylons/pyramid-cookiecutter-alchemy>`_
|
|
- `pyramid-cookiecutter-zodb
|
<https://github.com/Pylons/pyramid-cookiecutter-zodb>`_
|
|
See https://github.com/Pylons/pyramid/pull/2780
|
|
Documentation Changes
|
---------------------
|
|
- Update Typographical Conventions.
|
https://github.com/Pylons/pyramid/pull/2838
|
|
- Add `pyramid_nacl_session
|
<https://docs.pylonsproject.org/projects/pyramid-nacl-session/en/latest/>`_
|
to session factories. See https://github.com/Pylons/pyramid/issues/2791
|
|
- Update ``HACKING.txt`` from stale branch that was never merged to master.
|
See https://github.com/Pylons/pyramid/pull/2782
|
|
- Updated Windows installation instructions and related bits.
|
See https://github.com/Pylons/pyramid/issues/2661
|
|
- Fix an inconsistency in the documentation between view predicates and
|
route predicates and highlight the differences in their APIs.
|
See https://github.com/Pylons/pyramid/pull/2764
|
|
- Clarify a possible misuse of the ``headers`` kwarg to subclasses of
|
``pyramid.httpexceptions.HTTPException`` in which more appropriate
|
kwargs from the parent class ``pyramid.response.Response`` should be
|
used instead. See https://github.com/Pylons/pyramid/pull/2750
|
|
- The SQLAlchemy + URL Dispatch + Jinja2 (``wiki2``) and
|
ZODB + Traversal + Chameleon (``wiki``) tutorials have been updated to
|
utilize the new cookiecutters and drop support for the ``pcreate``
|
scaffolds.
|
|
See https://github.com/Pylons/pyramid/pull/2881 and
|
https://github.com/Pylons/pyramid/pull/2883.
|
|
- Improve output of p* script descriptions for help.
|
See https://github.com/Pylons/pyramid/pull/2886
|
|
- Quick Tour updated to use cookiecutters instead of pcreate and scaffolds.
|
See https://github.com/Pylons/pyramid/pull/2888
|