Skip to content

Commit

Permalink
Merge pull request Pylons#3390 from mmerickel/whatsnew-1.10
Browse files Browse the repository at this point in the history
prep 1.10a1
  • Loading branch information
mmerickel authored Oct 16, 2018
2 parents a8b10ea + 0080e96 commit 8eed333
Show file tree
Hide file tree
Showing 16 changed files with 176 additions and 61 deletions.
21 changes: 16 additions & 5 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
unreleased
==========
1.10a1 (2018-10-15)
===================

Features
--------
Expand Down Expand Up @@ -38,8 +38,8 @@ Features
See https://github.com/Pylons/pyramid/pull/3300

- Modify ``pyramid.authentication.AuthTktAuthenticationPolicy`` and
``pyramid.csrf.CookieCSRFStoragePolicy`` to support the SameSite option on
cookies and set the default to ``'Lax'``.
``pyramid.csrf.CookieCSRFStoragePolicy`` to support the ``SameSite`` option
on cookies and set the default to ``'Lax'``.
See https://github.com/Pylons/pyramid/pull/3319

- Added new ``pyramid.httpexceptions.HTTPPermanentRedirect``
Expand Down Expand Up @@ -76,6 +76,12 @@ Features
to allow users to avoid threadlocals during renderer lookup.
See https://github.com/Pylons/pyramid/pull/3358

- Pyramid's test suite is no longer distributed with the universal wheel.
See https://github.com/Pylons/pyramid/pull/3387

- All Python code is now formatted automatically using ``black``.
See https://github.com/Pylons/pyramid/pull/3388

Bug Fixes
---------

Expand Down Expand Up @@ -163,11 +169,16 @@ Backward Incompatibilities
and replaced by the ``userid`` argument.
See https://github.com/Pylons/pyramid/pull/3369

- Removed the ``pyramid.tests`` subpackage that used to contain the Pyramid
test suite. These changes also changed the format of the repository to move
the code into a ``src`` folder.
See https://github.com/Pylons/pyramid/pull/3387

Documentation Changes
---------------------

- Ad support for Read The Docs Ethical Ads.
https://github.com/Pylons/pyramid/pull/3360
See https://github.com/Pylons/pyramid/pull/3360 and
https://docs.readthedocs.io/en/latest/advertising/ethical-advertising.html

- Add support for alembic to the pyramid-cookiecutter-alchemy cookiecutter
Expand Down
5 changes: 1 addition & 4 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,10 @@ include README.rst
include CHANGES.rst HISTORY.rst BFG_HISTORY.rst
include CONTRIBUTORS.txt LICENSE.txt COPYRIGHT.txt

include contributing.md RELEASING.txt
include .coveragerc .flake8 setup.cfg pyproject.toml
include tox.ini appveyor.yml .travis.yml rtd.txt
include contributing.md RELEASING.txt HACKING.txt TODO.txt
graft .github

include HACKING.txt hacking-tox.ini
include TODO.txt

global-exclude __pycache__ *.py[cod]
global-exclude .DS_Store
10 changes: 5 additions & 5 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
Pyramid
=======

.. image:: https://travis-ci.org/Pylons/pyramid.png?branch=master
.. image:: https://travis-ci.org/Pylons/pyramid.png?branch=1.10-branch
:target: https://travis-ci.org/Pylons/pyramid
:alt: master Travis CI Status
:alt: 1.10-branch Travis CI Status

.. image:: https://readthedocs.org/projects/pyramid/badge/?version=master
:target: https://docs.pylonsproject.org/projects/pyramid/en/master
:alt: master Documentation Status
.. image:: https://readthedocs.org/projects/pyramid/badge/?version=1.10-branch
:target: https://docs.pylonsproject.org/projects/pyramid/en/1.10-branch
:alt: 1.10-branch Documentation Status

.. image:: https://img.shields.io/badge/irc-freenode-blue.svg
:target: https://webchat.freenode.net/?channels=pyramid
Expand Down
8 changes: 4 additions & 4 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,18 +71,18 @@ def nothing(*arg):
'python': ('https://docs.python.org/3', None),
'pytest': ('https://docs.pytest.org/en/latest/', None),
'sphinx': ('http://www.sphinx-doc.org/en/latest', None),
'sqla': ('http://docs.sqlalchemy.org/en/latest', None),
'sqla': ('https://docs.sqlalchemy.org/en/latest', None),
'tm': ('https://docs.pylonsproject.org/projects/pyramid-tm/en/latest/', None),
'toolbar': ('https://docs.pylonsproject.org/projects/pyramid-debugtoolbar/en/latest', None),
'tstring': ('https://docs.pylonsproject.org/projects/translationstring/en/latest', None),
'tutorials': ('https://docs.pylonsproject.org/projects/pyramid-tutorials/en/latest/', None),
'venusian': ('https://docs.pylonsproject.org/projects/venusian/en/latest', None),
'webob': ('https://docs.pylonsproject.org/projects/webob/en/latest/', None),
'webtest': ('http://webtest.pythonpaste.org/en/latest', None),
'who': ('http://repozewho.readthedocs.io/en/latest', None),
'who': ('https://repozewho.readthedocs.io/en/latest', None),
'zcml': ('https://docs.pylonsproject.org/projects/pyramid-zcml/en/latest', None),
'zcomponent': ('http://zopecomponent.readthedocs.io/en/latest/', None),
'zinterface': ('http://zopeinterface.readthedocs.io/en/latest/', None),
'zcomponent': ('https://zopecomponent.readthedocs.io/en/latest/', None),
'zinterface': ('https://zopeinterface.readthedocs.io/en/latest/', None),
}


Expand Down
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ Change History
.. toctree::
:maxdepth: 1

whatsnew-1.10
whatsnew-1.9
whatsnew-1.8
whatsnew-1.7
Expand Down
2 changes: 1 addition & 1 deletion docs/narr/project.rst
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ On all platforms, generate a project using cookiecutter.

.. code-block:: bash
cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout master
cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout 1.10-branch
If prompted for the first item, accept the default ``yes`` by hitting return.

Expand Down
4 changes: 2 additions & 2 deletions docs/quick_tour.rst
Original file line number Diff line number Diff line change
Expand Up @@ -510,7 +510,7 @@ Let's use the cookiecutter ``pyramid-cookiecutter-starter`` to create a starter

.. code-block:: bash
$VENV/bin/cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout master
$VENV/bin/cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout 1.10-branch
If prompted for the first item, accept the default ``yes`` by hitting return.

Expand Down Expand Up @@ -863,7 +863,7 @@ Pyramid and SQLAlchemy are great friends. That friendship includes a cookiecutte
.. code-block:: bash
cd ~
env/bin/cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout master
env/bin/cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout 1.10-branch
If prompted for the first item, accept the default ``yes`` by hitting return.

Expand Down
2 changes: 1 addition & 1 deletion docs/quick_tutorial/cookiecutters.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Steps

.. code-block:: bash
$VENV/bin/cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout master
$VENV/bin/cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout 1.10-branch
If prompted for the first item, accept the default ``yes`` by hitting return.

Expand Down
2 changes: 1 addition & 1 deletion docs/tutorials/modwsgi/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ specific path information for commands and files.
.. code-block:: bash
cd ~
cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout master
cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout 1.10-branch
If prompted for the first item, accept the default ``yes`` by hitting return.

Expand Down
4 changes: 2 additions & 2 deletions docs/tutorials/wiki/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@ On Unix
.. code-block:: bash
cd ~
cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout master
cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout 1.10-branch
On Windows
^^^^^^^^^^

.. code-block:: doscon
cd \
cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout master
cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout 1.10-branch
On all operating systems
^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down
4 changes: 2 additions & 2 deletions docs/tutorials/wiki2/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,15 @@ On Unix
.. code-block:: bash
cd ~
cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout master
cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout 1.10-branch
On Windows
^^^^^^^^^^

.. code-block:: doscon
cd \
cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout master
cookiecutter gh:Pylons/pyramid-cookiecutter-starter --checkout 1.10-branch
On all operating systems
^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down
131 changes: 131 additions & 0 deletions docs/whatsnew-1.10.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
What's New in Pyramid 1.10
==========================

This article explains the new features in :app:`Pyramid` version 1.10 as compared to its predecessor, :app:`Pyramid` 1.9. It also documents backwards incompatibilities between the two versions and deprecations added to :app:`Pyramid` 1.10, as well as software dependency changes and notable documentation additions.

.. note::

This release is the last planned release feature release to support Python 2.7.
Bug fixes will continue to be backported until at least 2020-01-01 when Python 2.7 reaches end of life.
New features, and backports will be reviewed and accepted for the 1.x series of Pyramid but new development will be focused on Pyramid 2.x.

Feature Additions
-----------------

- Add support for Python 3.7. Add testing on Python 3.8 with allowed failures.
See https://github.com/Pylons/pyramid/pull/3333

- Add a context manager :meth:`pyramid.config.Configurator.route_prefix_context` to allow for convenient setting of the ``route_prefix`` for :meth:`pyramid.config.Configurator.include` and :meth:`pyramid.config.Configurator.add_route` calls inside the context.
See https://github.com/Pylons/pyramid/pull/3279

- Added the :meth:`pyramid.config.Configurator.add_accept_view_order` directive, allowing users to specify media type preferences in ambiguous situations such as when several views match.
A default ordering is defined for media types that prefers human-readable html/text responses over JSON.
See https://github.com/Pylons/pyramid/pull/3326

- Support a list of media types in the ``accept`` predicate used in :meth:`pyramid.config.Configurator.add_route`.
See https://github.com/Pylons/pyramid/pull/3326

- Added :class:`pyramid.session.JSONSerializer`.
See "Upcoming Changes to ISession in Pyramid 2.0" in the "Sessions" chapter of the documentation for more information about this feature.
See https://github.com/Pylons/pyramid/pull/3353

- Modify the builtin session implementations to support ``SameSite`` options on cookies and set the default to ``'Lax'``.
This affects :func:`pyramid.session.BaseCookieSessionFactory`, :func:`pyramid.session.SignedCookieSessionFactory`, and :func:`pyramid.session.UnencryptedCookieSessionFactoryConfig`.
See https://github.com/Pylons/pyramid/pull/3300

- Modify :class:`pyramid.authentication.AuthTktAuthenticationPolicy` and :class:`pyramid.csrf.CookieCSRFStoragePolicy` to support the ``SameSite`` option on cookies and set the default to ``'Lax'``.
See https://github.com/Pylons/pyramid/pull/3319

- Added new :class:`pyramid.httpexceptions.HTTPPermanentRedirect` exception/response object for a HTTP 308 redirect.
See https://github.com/Pylons/pyramid/pull/3302

- Add ``_depth`` and ``_category`` arguments to all of the venusian decorators.
The ``_category`` argument can be used to affect which actions are registered when performing a ``config.scan(..., category=...)`` with a specific category.
The ``_depth`` argument should be used when wrapping the decorator in your own.
This change affects :func:`pyramid.view.view_config`, :func:`pyramid.view.exception_view_config`, :func:`pyramid.view.forbidden_view_config`, :func:`pyramid.view.notfound_view_config`, :func:`pyramid.events.subscriber` and :func:`pyramid.response.response_adapter` decorators.
See https://github.com/Pylons/pyramid/pull/3105 and https://github.com/Pylons/pyramid/pull/3122

- Fix the :class:`pyramid.request.Request` class name after using :meth:`pyramid.request.Request.set_property` or :meth:`pyramid.config.Configurator.add_request_method` such that the ``str(request.__class__)`` would appear as ``pyramid.request.Request`` instead of ``pyramid.util.Request``.
See https://github.com/Pylons/pyramid/pull/3129

- Add a ``registry`` argument to :func:`pyramid.renderers.get_renderer` to allow users to avoid threadlocals during renderer lookup.
See https://github.com/Pylons/pyramid/pull/3358

- Within ``pshell``, allow the user-defined ``setup`` function to be a generator, in which case it may wrap the command's lifecycle.
See https://github.com/Pylons/pyramid/pull/3318

- Within ``pshell``, variables defined by the ``[pshell]`` settings are available within the user-defined ``setup`` function.
See https://github.com/Pylons/pyramid/pull/3318

- In ``cherrypy_server_runner``, prefer imports from the ``cheroot`` package over the legacy imports from `cherrypy.wsgiserver`.
See https://github.com/Pylons/pyramid/pull/3235

- :app:`Pyramid`'s test suite is no longer distributed with the universal wheel.
See https://github.com/Pylons/pyramid/pull/3387

- All Python code is now formatted automatically using ``black``.
See https://github.com/Pylons/pyramid/pull/3388

Deprecations
------------

- The :class:`pyramid.intefaces.ISession` interface will move to require JSON-serializable objects in :app:`Pyramid` 2.0. See "Upcoming Changes to ISession in Pyramid 2.0" in the "Sessions" chapter of the documentation for more information about this change.
See https://github.com/Pylons/pyramid/pull/3353

- The :func:`pyramid.session.signed_serialize` and :func:`pyramid.session.signed_deserialize` functions will be removed in :app:`Pyramid` 2.0, along with the removal of :func:`pyramid.session.UnencryptedCookieSessionFactoryConfig` which was deprecated in :app:`Pyramid` 1.5.
Please switch to using the :func:`pyramid.session.SignedCookieSessionFactory`, copying the code, or another session implementation if you're still using these features.
See https://github.com/Pylons/pyramid/pull/3353

- Media ranges are deprecated in the ``accept`` argument of :meth:`pyramid.config.Configurator.add_route`.
Use a list of explicit media types to ``add_route`` to support multiple types.
See https://github.com/Pylons/pyramid/pull/3326

- Media ranges are deprecated in the ``accept`` argument of :meth:`pyramid.config.Configurator.add_view`.
There is no replacement for ranges to ``add_view``, but after much discussion the workflow is fundamentally ambiguous in the face of various client-supplied values for the ``Accept`` header.
See https://github.com/Pylons/pyramid/pull/3326

Backward Incompatibilities
--------------------------

- On Python 3.4+ the ``repoze.lru`` dependency is dropped. If you were using this package directly in your apps you should make sure that you are depending on it directly within your project.
See https://github.com/Pylons/pyramid/pull/3140

- Remove the ``permission`` argument from :meth:`pyramid.config.Configurator.add_route`.
This was an argument left over from a feature removed in :app:`Pyramid` 1.5 and has had no effect since then.
See https://github.com/Pylons/pyramid/pull/3299

- Modify the builtin session implementations to set ``SameSite='Lax'`` on cookies.
This affects :func:`pyramid.session.BaseCookieSessionFactory`, :func:`pyramid.session.SignedCookieSessionFactory`, and :func:`pyramid.session.UnencryptedCookieSessionFactoryConfig`.
See https://github.com/Pylons/pyramid/pull/3300

- Variables defined in the ``[pshell]`` section of the settings will no longer override those set by the ``setup`` function.
See https://github.com/Pylons/pyramid/pull/3318

- :meth:`pyramid.config.Configurator.add_notfound_view` uses default redirect class exception :class:`pyramid.httpexceptions.HTTPTemporaryRedirect` instead of previous :class:`pyramid.httpexceptions.HTTPFound`.
See https://github.com/Pylons/pyramid/pull/3328

- Removed ``pyramid.config.Configurator.set_request_property`` which had been deprecated since :app:`Pyramid` 1.5.
Instead use :meth:`pyramid.config.Configurator.add_request_method` with ``reify=True`` or ``property=True``.
See https://github.com/Pylons/pyramid/pull/3368

- Removed the ``principal`` keyword argument from :func:`pyramid.security.remember` which had been deprecated since :app:`Pyramid` 1.6 and replaced by the ``userid`` argument.
See https://github.com/Pylons/pyramid/pull/3369

- Removed the ``pyramid.tests`` subpackage that used to contain the Pyramid test suite.
These changes also changed the format of the repository to move the code into a ``src`` folder.
See https://github.com/Pylons/pyramid/pull/3387

Documentation Enhancements
--------------------------

- Ad support for Read The Docs Ethical Ads.
See https://github.com/Pylons/pyramid/pull/3360 and https://docs.readthedocs.io/en/latest/advertising/ethical-advertising.html

- Add support for alembic to the pyramid-cookiecutter-alchemy cookiecutter and update the wiki2 tutorial to explain how it works.
See https://github.com/Pylons/pyramid/pull/3307 and https://github.com/Pylons/pyramid-cookiecutter-alchemy/pull/7

- Bump Sphinx to >= 1.7.4 in setup.py to support ``emphasize-lines`` in PDFs and to pave the way for xelatex support.
See https://github.com/Pylons/pyramid/pull/3271, https://github.com/Pylons/pyramid/issues/667, and https://github.com/Pylons/pyramid/issues/2572

- Added extra tests to the quick tutorial.
See https://github.com/Pylons/pyramid/pull/3375
25 changes: 0 additions & 25 deletions hacking-tox.ini

This file was deleted.

2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def readfile(name):

setup(
name='pyramid',
version='1.10.dev0',
version='1.10a1',
description='The Pyramid Web Framework, a Pylons project',
long_description=README + '\n\n' + CHANGES,
classifiers=[
Expand Down
4 changes: 2 additions & 2 deletions src/pyramid/scaffolds/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def make_venv(self, directory): # pragma: no cover
logger = Logger([(Logger.level_for_integer(2), sys.stdout)])
virtualenv.logger = logger
virtualenv.create_environment(
directory, site_packages=False, clear=False, unzip_setuptools=True
directory, site_packages=False, clear=False
)

def install(self, tmpl_name): # pragma: no cover
Expand All @@ -28,7 +28,7 @@ def install(self, tmpl_name): # pragma: no cover
self.directory = tempfile.mkdtemp()
self.make_venv(self.directory)
here = os.path.abspath(os.path.dirname(__file__))
os.chdir(os.path.dirname(os.path.dirname(here)))
os.chdir(os.path.dirname(os.path.dirname(os.path.dirname(here))))
pip = os.path.join(self.directory, 'bin', 'pip')
subprocess.check_call([pip, 'install', '-e', '.'])
os.chdir(self.directory)
Expand Down
Loading

0 comments on commit 8eed333

Please sign in to comment.