===================
Bug Fixes
---------
- URL dispatch now properly handles a ``.*`` or ``*`` appearing in a regex
match when used inside brackets. Resolves issue 90.
Backwards Incompatibilities
---------------------------
- The ``add_handler`` method of a Configurator has been removed from the
Pyramid core. Handlers are now a feature of the ``pyramid_handlers``
package, which can be downloaded from PyPI. Documentation for the package
should be available via
https://docs.pylonsproject.org/projects/pyramid_handlers/en/latest/,
which describes how
to add a configuration statement to your ``main`` block to reobtain this
method. You will also need to add an ``install_requires`` dependency upon
``pyramid_handlers`` to your ``setup.py`` file.
- The ``load_zcml`` method of a Configurator has been removed from the
Pyramid core. Loading ZCML is now a feature of the ``pyramid_zcml``
package, which can be downloaded from PyPI. Documentation for the package
should be available via
https://docs.pylonsproject.org/projects/pyramid_zcml/en/latest/,
which describes how
to add a configuration statement to your ``main`` block to reobtain this
method. You will also need to add an ``install_requires`` dependency upon
``pyramid_zcml`` to your ``setup.py`` file.
- The ``pyramid.includes`` subpackage has been removed. ZCML files which use
include the package ``pyramid.includes`` (e.g. ``<include
package="pyramid.includes"/>``) now must include the ``pyramid_zcml``
package instead (e.g. ``<include package="pyramid_zcml"/>``).
- The ``pyramid.view.action`` decorator has been removed from the Pyramid
core. Handlers are now a feature of the ``pyramid_handlers`` package. It
should now be imported from ``pyramid_handlers`` e.g. ``from
pyramid_handlers import action``.
- The ``handler`` ZCML directive has been removed. It is now a feature of
the ``pyramid_handlers`` package.
- The ``pylons_minimal``, ``pylons_basic`` and ``pylons_sqla`` paster
templates were removed. Use ``pyramid_sqla`` (available from PyPI) as a
generic replacement for Pylons-esque development.
- The ``make_app`` function has been removed from the ``pyramid.router``
module. It continues life within the ``pyramid_zcml`` package. This
leaves the ``pyramid.router`` module without any API functions.
- The ``configure_zcml`` setting within the deployment settings (within
``**settings`` passed to a Pyramid ``main`` function) has ceased to have any
meaning.
Features
--------
- ``pyramid.testing.setUp`` and ``pyramid.testing.tearDown`` have been
undeprecated. They are now the canonical setup and teardown APIs for test
configuration, replacing "direct" creation of a Configurator. This is a
change designed to provide a facade that will protect against any future
Configurator deprecations.
- Add ``charset`` attribute to ``pyramid.testing.DummyRequest``
(unconditionally ``UTF-8``).
- Add ``add_directive`` method to configurator, which allows framework
extenders to add methods to the configurator (ala ZCML directives).
- When ``Configurator.include`` is passed a *module* as an argument, it
defaults to attempting to find and use a callable named ``includeme``
within that module. This makes it possible to use
``config.include('some.module')`` rather than
``config.include('some.module.somefunc')`` as long as the include function
within ``some.module`` is named ``includeme``.
- The ``bfg2pyramid`` script now converts ZCML include tags that have
``repoze.bfg.includes`` as a package attribute to the value
``pyramid_zcml``. For example, ``<include package="repoze.bfg.includes">``
will be converted to ``<include package="pyramid_zcml">``.
Paster Templates
----------------
- All paster templates now use ``pyramid.testing.setUp`` and
``pyramid.testing.tearDown`` rather than creating a Configurator "by hand"
within their ``tests.py`` module, as per decision in features above.
- The ``starter_zcml`` paster template has been moved to the ``pyramid_zcml``
package.
Documentation
-------------
- The wiki and wiki2 tutorials now use ``pyramid.testing.setUp`` and
``pyramid.testing.tearDown`` rather than creating a Configurator "by hand",
as per decision in features above.
- The "Testing" narrative chapter now explains ``pyramid.testing.setUp`` and
``pyramid.testing.tearDown`` instead of Configurator creation and
``Configurator.begin()`` and ``Configurator.end()``.
- Document the ``request.override_renderer`` attribute within the narrative
"Renderers" chapter in a section named "Overriding A Renderer at Runtime".
- The "Declarative Configuration" narrative chapter has been removed (it was
moved to the ``pyramid_zcml`` package).
- Most references to ZCML in narrative chapters have been removed or
redirected to ``pyramid_zcml`` locations.
Deprecations
------------
- Deprecation warnings related to import of the following API functions were
added: ``pyramid.traversal.find_model``, ``pyramid.traversal.model_path``,
``pyramid.traversal.model_path_tuple``, ``pyramid.url.model_url``. The
instructions emitted by the deprecation warnings instruct the developer to
change these method spellings to their ``resource`` equivalents. This is a
consequence of the mass concept rename of "model" to "resource" performed
in 1.0a7.