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