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