Michael Merickel
2016-01-03 f051b077c11b07e9a673f3e5f5cc7d98ebbcc5d9
commit | author | age
f051b0 1 1.6 (2016-01-03)
MM 2 ================
65c06d 3
MM 4 Deprecations
5 ------------
6
7 - Continue removal of ``pserve`` daemon/process management features
8   by deprecating ``--user`` and ``--group`` options.
9   See https://github.com/Pylons/pyramid/pull/2190
10
226f53 11 1.6b3 (2015-12-17)
45a126 12 ==================
MM 13
14 Backward Incompatibilities
15 --------------------------
16
17 - Remove the ``cachebust`` option from ``config.add_static_view``. See
18   ``config.add_cache_buster`` for the new way to attach cache busters to
19   static assets.
20   See https://github.com/Pylons/pyramid/pull/2186
21
22 - Modify the ``pyramid.interfaces.ICacheBuster`` API to be a simple callable
23   instead of an object with ``match`` and ``pregenerate`` methods. Cache
24   busters are now focused solely on generation. Matching has been dropped.
25
26   Note this affects usage of ``pyramid.static.QueryStringCacheBuster`` and
27   ``pyramid.static.ManifestCacheBuster``.
28
29   See https://github.com/Pylons/pyramid/pull/2186
30
31 Features
32 --------
33
34 - Add a new ``config.add_cache_buster`` API for attaching cache busters to
35   static assets. See https://github.com/Pylons/pyramid/pull/2186
36
78ea38 37 Bug Fixes
MM 38 ---------
39
40 - Ensure that ``IAssetDescriptor.abspath`` always returns an absolute path.
41   There were cases depending on the process CWD that a relative path would
42   be returned. See https://github.com/Pylons/pyramid/issues/2188
43
40f858 44 1.6b2 (2015-10-15)
MM 45 ==================
46
47 Features
48 --------
49
50 - Allow asset specifications to be supplied to
51   ``pyramid.static.ManifestCacheBuster`` instead of requiring a
52   filesystem path.
53
52e500 54 1.6b1 (2015-10-15)
MM 55 ==================
df8412 56
ed91c2 57 Backward Incompatibilities
MM 58 --------------------------
59
60 - IPython and BPython support have been removed from pshell in the core.
61   To continue using them on Pyramid 1.6+ you must install the binding
62   packages explicitly::
63
64     $ pip install pyramid_ipython
65
66     or
67
68     $ pip install pyramid_bpython
69
0a51f4 70 - Remove default cache busters introduced in 1.6a1 including
MM 71   ``PathSegmentCacheBuster``, ``PathSegmentMd5CacheBuster``, and
72   ``QueryStringMd5CacheBuster``.
73   See https://github.com/Pylons/pyramid/pull/2116
74
ed91c2 75 Features
MM 76 --------
77
78 - Additional shells for ``pshell`` can now be registered as entrypoints. See
79   https://github.com/Pylons/pyramid/pull/1891 and
80   https://github.com/Pylons/pyramid/pull/2012
81
82 - The variables injected into ``pshell`` are now displayed with their
83   docstrings instead of the default ``str(obj)`` when possible.
84   See https://github.com/Pylons/pyramid/pull/1929
85
0a51f4 86 - Add new ``pyramid.static.ManifestCacheBuster`` for use with external
MM 87   asset pipelines as well as examples of common usages in the narrative.
88   See https://github.com/Pylons/pyramid/pull/2116
89
96c22e 90 - Fix ``pserve --reload`` to not crash on syntax errors!!!
MM 91   See https://github.com/Pylons/pyramid/pull/2125
92
cf98a0 93 - Fix an issue when user passes unparsed strings to ``pyramid.session.CookieSession``
MM 94   and ``pyramid.authentication.AuthTktCookieHelper`` for time related parameters
95   ``timeout``, ``reissue_time``, ``max_age`` that expect an integer value.
96   See https://github.com/Pylons/pyramid/pull/2050
97
ed91c2 98 Bug Fixes
MM 99 ---------
100
df8412 101 - ``pyramid.httpexceptions.HTTPException`` now defaults to
MM 102   ``520 Unknown Error`` instead of ``None None`` to conform with changes in
103   WebOb 1.5.
104   See https://github.com/Pylons/pyramid/pull/1865
105
ed91c2 106 - ``pshell`` will now preserve the capitalization of variables in the
MM 107   ``[pshell]`` section of the INI file. This makes exposing classes to the
108   shell a little more straightfoward.
109   See https://github.com/Pylons/pyramid/pull/1883
a53c55 110
db8d4f 111 - Fixed usage of ``pserve --monitor-restart --daemon`` which would fail in
MM 112   horrible ways. See https://github.com/Pylons/pyramid/pull/2118
113
1af11d 114 - Explicitly prevent ``pserve --reload --daemon`` from being used. It's never
MM 115   been supported but would work and fail in weird ways.
116   See https://github.com/Pylons/pyramid/pull/2119
117
638187 118 - Fix an issue on Windows when running ``pserve --reload`` in which the
MM 119   process failed to fork because it could not find the pserve script to
120   run. See https://github.com/Pylons/pyramid/pull/2138
121
157b58 122 Deprecations
MM 123 ------------
124
125 - Deprecate ``pserve --monitor-restart`` in favor of user's using a real
126   process manager such as Systemd or Upstart as well as Python-based
127   solutions like Circus and Supervisor.
128   See https://github.com/Pylons/pyramid/pull/2120
129
41636b 130 1.6a2 (2015-06-30)
MM 131 ==================
132
133 Bug Fixes
134 ---------
0d8159 135
ebf0da 136 - Ensure that ``pyramid.httpexceptions.exception_response`` returns the
41636b 137   appropriate "concrete" class for ``400`` and ``500`` status codes.
MM 138   See https://github.com/Pylons/pyramid/issues/1832
ebf0da 139
85be09 140 - Fix an infinite recursion bug introduced in 1.6a1 when
CM 141   ``pyramid.view.render_view_to_response`` was called directly or indirectly.
41636b 142   See https://github.com/Pylons/pyramid/issues/1643
85be09 143
0d8159 144 - Further fix the JSONP renderer by prefixing the returned content with
MM 145   a comment. This should mitigate attacks from Flash (See CVE-2014-4671).
146   See https://github.com/Pylons/pyramid/pull/1649
147
148 - Allow periods and brackets (``[]``) in the JSONP callback. The original
149   fix was overly-restrictive and broke Angular.
150   See https://github.com/Pylons/pyramid/pull/1649
151
85be09 152 1.6a1 (2015-04-15)
CM 153 ==================
c61755 154
9177d0 155 Features
CR 156 --------
157
0f5f18 158 - pcreate will now ask for confirmation if invoked with
IS 159   an argument for a project name that already exists or
160   is importable in the current environment.
161   See https://github.com/Pylons/pyramid/issues/1357 and
162   https://github.com/Pylons/pyramid/pull/1837
163
200c9e 164 - Make it possible to subclass ``pyramid.request.Request`` and also use
CM 165   ``pyramid.request.Request.add_request.method``.  See
166   https://github.com/Pylons/pyramid/issues/1529
167
d35a91 168 - The ``pyramid.config.Configurator`` has grown the ability to allow
MM 169   actions to call other actions during a commit-cycle. This enables much more
170   logic to be placed into actions, such as the ability to invoke other actions
568a02 171   or group them for improved conflict detection. We have also exposed and
MM 172   documented the config phases that Pyramid uses in order to further assist
173   in building conforming addons.
d35a91 174   See https://github.com/Pylons/pyramid/pull/1513
MM 175
46bc7f 176 - Add ``pyramid.request.apply_request_extensions`` function which can be
MM 177   used in testing to apply any request extensions configured via
178   ``config.add_request_method``. Previously it was only possible to test
179   the extensions by going through Pyramid's router.
180   See https://github.com/Pylons/pyramid/pull/1581
181
c9cb19 182 - pcreate when run without a scaffold argument will now print information on
BJR 183   the missing flag, as well as a list of available scaffolds.
184   See https://github.com/Pylons/pyramid/pull/1566 and
185   https://github.com/Pylons/pyramid/issues/1297
186
bc8e4d 187 - Added support / testing for 'pypy3' under Tox and Travis.
782eb4 188   See https://github.com/Pylons/pyramid/pull/1469
bc8e4d 189
149d36 190 - Automate code coverage metrics across py2 and py3 instead of just py2.
MM 191   See https://github.com/Pylons/pyramid/pull/1471
192
9177d0 193 - Cache busting for static resources has been added and is available via a new
15b979 194   argument to ``pyramid.config.Configurator.add_static_view``: ``cachebust``.
5fdf9a 195   Core APIs are shipped for both cache busting via query strings and
MM 196   path segments and may be extended to fit into custom asset pipelines.
197   See https://github.com/Pylons/pyramid/pull/1380 and
198   https://github.com/Pylons/pyramid/pull/1583
9177d0 199
ae6c88 200 - Add ``pyramid.config.Configurator.root_package`` attribute and init
MM 201   parameter to assist with includeable packages that wish to resolve
202   resources relative to the package in which the ``Configurator`` was created.
73b162 203   This is especially useful for addons that need to load asset specs from
c617b7 204   settings, in which case it is may be natural for a developer to define
MM 205   imports or assets relative to the top-level package.
ae6c88 206   See https://github.com/Pylons/pyramid/pull/1337
MM 207
ba5444 208 - Added line numbers to the log formatters in the scaffolds to assist with
MM 209   debugging. See https://github.com/Pylons/pyramid/pull/1326
210
7dd390 211 - Add new HTTP exception objects for status codes
MM 212   ``428 Precondition Required``, ``429 Too Many Requests`` and
213   ``431 Request Header Fields Too Large`` in ``pyramid.httpexceptions``.
214   See https://github.com/Pylons/pyramid/pull/1372/files
215
f3a567 216 - The ``pshell`` script will now load a ``PYTHONSTARTUP`` file if one is
MM 217   defined in the environment prior to launching the interpreter.
823ac4 218   See https://github.com/Pylons/pyramid/pull/1448
0c5e5a 219
7b1d42 220 - Make it simple to define notfound and forbidden views that wish to use
MM 221   the default exception-response view but with altered predicates and other
222   configuration options. The ``view`` argument is now optional in
223   ``config.add_notfound_view`` and ``config.add_forbidden_view``..
224   See https://github.com/Pylons/pyramid/issues/494
225
c617b7 226 - Greatly improve the readability of the ``pcreate`` shell script output.
MM 227   See https://github.com/Pylons/pyramid/pull/1453
228
716a20 229 - Improve robustness to timing attacks in the ``AuthTktCookieHelper`` and
MM 230   the ``SignedCookieSessionFactory`` classes by using the stdlib's
231   ``hmac.compare_digest`` if it is available (such as Python 2.7.7+ and 3.3+).
232   See https://github.com/Pylons/pyramid/pull/1457
889bdc 233
407b33 234 - Assets can now be overidden by an absolute path on the filesystem when using
8d5352 235   the ``config.override_asset`` API. This makes it possible to fully support
MM 236   serving up static content from a mutable directory while still being able
237   to use the ``request.static_url`` API and ``config.add_static_view``.
238   Previously it was not possible to use ``config.add_static_view`` with an
239   absolute path **and** generate urls to the content. This change replaces
240   the call, ``config.add_static_view('/abs/path', 'static')``, with
241   ``config.add_static_view('myapp:static', 'static')`` and
242   ``config.override_asset(to_override='myapp:static/',
243   override_with='/abs/path/')``. The ``myapp:static`` asset spec is completely
244   made up and does not need to exist - it is used for generating urls
245   via ``request.static_url('myapp:static/foo.png')``.
650d3d 246   See https://github.com/Pylons/pyramid/issues/1252
407b33 247
a62462 248 - Added ``pyramid.config.Configurator.set_response_factory`` and the
JA 249   ``response_factory`` keyword argument to the ``Configurator`` for defining
250   a factory that will return a custom ``Response`` class.
251   See https://github.com/Pylons/pyramid/pull/1499
252
2d659e 253 - Allow an iterator to be returned from a renderer. Previously it was only
MM 254   possible to return bytes or unicode.
255   See https://github.com/Pylons/pyramid/pull/1417
256
8dd970 257 - ``pserve`` can now take a ``-b`` or ``--browser`` option to open the server
MA 258   URL in a web browser. See https://github.com/Pylons/pyramid/pull/1533
259
3f8ac5 260 - Overall improvments for the ``proutes`` command. Added ``--format`` and
149ea9 261   ``--glob`` arguments to the command, introduced the ``method``
JA 262   column for displaying available request methods, and improved the ``view``
263   output by showing the module instead of just ``__repr__``.
264   See https://github.com/Pylons/pyramid/pull/1488
265
86f4d5 266 - Support keyword-only arguments and function annotations in views in
MM 267   Python 3. See https://github.com/Pylons/pyramid/pull/1556
268
d23e69 269 - ``request.response`` will no longer be mutated when using the
042068 270   ``pyramid.renderers.render_to_response()`` API.  It is now necessary to
MM 271   pass in a ``response=`` argument to ``render_to_response`` if you wish to
272   supply the renderer with a custom response object for it to use. If you
273   do not pass one then a response object will be created using the
274   application's ``IResponseFactory``. Almost all renderers
d23e69 275   mutate the ``request.response`` response object (for example, the JSON
MM 276   renderer sets ``request.response.content_type`` to ``application/json``).
277   However, when invoking ``render_to_response`` it is not expected that the
278   response object being returned would be the same one used later in the
279   request. The response object returned from ``render_to_response`` is now
280   explicitly different from ``request.response``. This does not change the
042068 281   API of a renderer. See https://github.com/Pylons/pyramid/pull/1563
d23e69 282
a7d77f 283 - The ``append_slash`` argument of ```Configurator().add_notfound_view()`` will
CM 284   now accept anything that implements the ``IResponse`` interface and will use
285   that as the response class instead of the default ``HTTPFound``.  See
286   https://github.com/Pylons/pyramid/pull/1610
513cc3 287
c61755 288 Bug Fixes
8e90d6 289 ---------
a0e97b 290
7c3745 291 - The JSONP renderer created JavaScript code in such a way that a callback
MM 292   variable could be used to arbitrarily inject javascript into the response
293   object. https://github.com/Pylons/pyramid/pull/1627
294
c45d6a 295 - Work around an issue where ``pserve --reload`` would leave terminal echo
DG 296   disabled if it reloaded during a pdb session.
1bcc34 297   See https://github.com/Pylons/pyramid/pull/1577,
DG 298   https://github.com/Pylons/pyramid/pull/1592
a0e97b 299
8e90d6 300 - ``pyramid.wsgi.wsgiapp`` and ``pyramid.wsgi.wsgiapp2`` now raise
BJR 301   ``ValueError`` when accidentally passed ``None``.
ab2a77 302   See https://github.com/Pylons/pyramid/pull/1320
c61755 303
0cb759 304 - Fix an issue whereby predicates would be resolved as maybe_dotted in the
CM 305   introspectable but not when passed for registration. This would mean that
ab2a77 306   ``add_route_predicate`` for example can not take a string and turn it into
MM 307   the actual callable function.
308   See https://github.com/Pylons/pyramid/pull/1306
09beb2 309
d24055 310 - Fix ``pyramid.testing.setUp`` to return a ``Configurator`` with a proper
MM 311   package. Previously it was not possible to do package-relative includes
312   using the returned ``Configurator`` during testing. There is now a
313   ``package`` argument that can override this behavior as well.
ab2a77 314   See https://github.com/Pylons/pyramid/pull/1322
d24055 315
dc9c38 316 - Fix an issue where a ``pyramid.response.FileResponse`` may apply a charset
MM 317   where it does not belong. See https://github.com/Pylons/pyramid/pull/1251
318
326021 319 - Work around a bug introduced in Python 2.7.7 on Windows where
CM 320   ``mimetypes.guess_type`` returns Unicode rather than str for the content
321   type, unlike any previous version of Python.  See
322   https://github.com/Pylons/pyramid/issues/1360 for more information.
323
18566a 324 - ``pcreate`` now normalizes the package name by converting hyphens to
MM 325   underscores. See https://github.com/Pylons/pyramid/pull/1376
326
909486 327 - Fix an issue with the final response/finished callback being unable to
MM 328   add another callback to the list. See
329   https://github.com/Pylons/pyramid/pull/1373
330
46a268 331 - Fix a failing unittest caused by differing mimetypes across various OSs.
MM 332   See https://github.com/Pylons/pyramid/issues/1405
333
e7745a 334 - Fix route generation for static view asset specifications having no path.
RL 335   See https://github.com/Pylons/pyramid/pull/1377
336
1ef35b 337 - Allow the ``pyramid.renderers.JSONP`` renderer to work even if there is no
MM 338   valid request object. In this case it will not wrap the object in a
750b78 339   callback and thus behave just like the ``pyramid.renderers.JSON`` renderer.
1ef35b 340   See https://github.com/Pylons/pyramid/pull/1561
MM 341
e30c3b 342 - Prevent "parameters to load are deprecated" ``DeprecationWarning``
327985 343   from setuptools>=11.3. See https://github.com/Pylons/pyramid/pull/1541
e30c3b 344
06bb4a 345 - Avoiding sharing the ``IRenderer`` objects across threads when attached to
MM 346   a view using the `renderer=` argument. These renderers were instantiated
347   at time of first render and shared between requests, causing potentially
348   subtle effects like `pyramid.reload_templates = true` failing to work
349   in `pyramid_mako`. See https://github.com/Pylons/pyramid/pull/1575
350   and https://github.com/Pylons/pyramid/issues/1268
351
b4e990 352 - Avoiding timing attacks against CSRF tokens.
MM 353   See https://github.com/Pylons/pyramid/pull/1574
354
f4800e 355 - ``request.finished_callbacks`` and ``request.response_callbacks`` now
MM 356   default to an iterable instead of ``None``. It may be checked for a length
357   of 0. This was the behavior in 1.5.
358
3ffd40 359 Deprecations
MM 360 ------------
361
4270a1 362 - The ``pserve`` command's daemonization features have been deprecated. This
MM 363   includes the ``[start,stop,restart,status]`` subcommands as well as the
364   ``--daemon``, ``--stop-server``, ``--pid-file``, and ``--status`` flags.
365
366   Please use a real process manager in the future instead of relying on the
367   ``pserve`` to daemonize itself. Many options exist including your Operating
e1b93e 368   System's services such as Systemd or Upstart, as well as Python-based
MN 369   solutions like Circus and Supervisor.
4270a1 370
MM 371   See https://github.com/Pylons/pyramid/pull/1641
372
3ffd40 373 - Renamed the ``principal`` argument to ``pyramid.security.remember()`` to
MM 374   ``userid`` in order to clarify its intended purpose.
375   See https://github.com/Pylons/pyramid/pull/1399
376
7a6bf6 377 Docs
CM 378 ----
379
63366c 380 - Moved the documentation for ``accept`` on ``Configurator.add_view`` to no
c015da 381   longer be part of the predicate list. See
63366c 382   https://github.com/Pylons/pyramid/issues/1391 for a bug report stating
BJR 383   ``not_`` was failing on ``accept``. Discussion with @mcdonc led to the
384   conclusion that it should not be documented as a predicate.
f17663 385   See https://github.com/Pylons/pyramid/pull/1487 for this PR
63366c 386
7a6bf6 387 - Removed logging configuration from Quick Tutorial ini files except for
CM 388   scaffolding- and logging-related chapters to avoid needing to explain it too
389   early.
a0e97b 390
dd4f73 391 - Clarify a previously-implied detail of the ``ISession.invalidate`` API
MM 392   documentation.
393
3ffd40 394 - Improve and clarify the documentation on what Pyramid defines as a
MM 395   ``principal`` and a ``userid`` in its security APIs.
396   See https://github.com/Pylons/pyramid/pull/1399
397
7b0b1c 398 - Add documentation of command line programs (``p*`` scripts). See
SP 399   https://github.com/Pylons/pyramid/pull/2191
400
742397 401 Scaffolds
CM 402 ---------
403
404 - Update scaffold generating machinery to return the version of pyramid and
405   pyramid docs for use in scaffolds. Updated starter, alchemy and zodb
406   templates to have links to correctly versioned documentation and reflect
407   which pyramid was used to generate the scaffold.
408
93bc46 409 - Removed non-ascii copyright symbol from templates, as this was
FT 410   causing the scaffolds to fail for project generation.
411
109b2a 412 - You can now run the scaffolding func tests via ``tox py2-scaffolds`` and
CM 413   ``tox py3-scaffolds``.
db0185 414