Chris McDonough
2011-02-05 1e3082082f90680de629eed83dde1e2294bae47a
commit | author | age
71903a 1 1.0 (2011-01-30)
CM 2 ================
99d8e7 3
CM 4 Documentation
5 -------------
6
7 - Fixed bug in ZODB Wiki tutorial (missing dependency on ``docutils`` in
8   "models" step within ``setup.py``).
9
d533b1 10 - Removed API documentation for ``pyramid.testing`` APIs named
CM 11   ``registerDummySecurityPolicy``, ``registerResources``, ``registerModels``,
12   ``registerEventListener``, ``registerTemplateRenderer``,
13   ``registerDummyRenderer``, ``registerView``, ``registerUtility``,
14   ``registerAdapter``, ``registerSubscriber``, ``registerRoute``,
15   and ``registerSettings``.
16
3e4f42 17 - Moved "Using ZODB With ZEO" and "Using repoze.catalog Within Pyramid"
CM 18   tutorials out of core documentation and into the Pyramid Tutorials site
19   (http://docs.pylonsproject.org/projects/pyramid_tutorials/dev/).
20
eac198 21 - Changed "Cleaning up After a Request" section in the URL Dispatch chapter
CM 22   to use ``request.add_finished_callback`` instead of jamming an object with
23   a ``__del__`` into the WSGI environment.
24
1a4939 25 - Remove duplication of ``add_route`` API documentation from URL Dispatch
CM 26   narrative chapter.
27
28 - Remove duplication of API and narrative documentation in
29   ``pyramid.view.view_config`` API docs by pointing to
30   ``pyramid.config.add_view`` documentation and narrative chapter
31   documentation.
32
33 - Removed some API documentation duplicated in narrative portions of
34   documentation 
35
129007 36 - Removed "Overall Flow of Authentication" from SQLAlchemy + URL Dispatch
CM 37   wiki tutorial due to print space concerns (moved to Pyramid Tutorials
38   site).
39
d533b1 40 Bug Fixes
CM 41 ---------
42
43 - Deprecated-since-BFG-1.2 APIs from ``pyramid.testing`` now properly emit
44   deprecation warnings.
45
9afa52 46 - Added ``egg:repoze.retry#retry`` middleware to the WSGI pipeline in ZODB
CM 47   templates (retry ZODB conflict errors which occur in normal operations).
48
9a27f0 49 - Removed duplicate implementations of ``is_response``.  Two competing
CM 50   implementations existed: one in ``pyramid.config`` and one in
51   ``pyramid.view``.  Now the one defined in ``pyramid.view`` is used
52   internally by ``pyramid.config`` and continues to be advertised as an API.
53
c61cd1 54 1.0b3 (2011-01-28)
CM 55 ==================
bd330c 56
CM 57 Bug Fixes
58 ---------
59
60 - Use © instead of copyright symbol in paster templates / tutorial
61   templates for the benefit of folks who cutnpaste and save to a non-UTF8
62   format.
63
6ab71c 64 - ``pyramid.view.append_slash_notfound_view`` now preserves GET query
CM 65   parameters across redirects.
66
2021a0 67 Documentation
CM 68 -------------
69
70 - Beef up documentation related to ``set_default_permission``: explicitly
71   mention that default permissions also protect exception views.
72
82043f 73 - Paster templates and tutorials now use spaces instead of tabs in their HTML
c61cd1 74   templates.
bd330c 75
237bf1 76 1.0b2 (2011-01-24)
CM 77 ==================
a87a68 78
CM 79 Bug Fixes
80 ---------
81
82 - The ``production.ini`` generated by all paster templates now have an
83   effective logging level of WARN, which prevents e.g. SQLAlchemy statement
84   logging and other inappropriate output.
85
86 - The ``production.ini`` of the ``pyramid_routesalchemy`` and
87   ``pyramid_alchemy`` paster templates did not have a ``sqlalchemy`` logger
88   section, preventing ``paster serve production.ini`` from working.
89
90 - The ``pyramid_routesalchemy`` and ``pyramid_alchemy`` paster templates used
91   the ``{{package}}`` variable in a place where it should have used the
92   ``{{project}}`` variable, causing applications created with uppercase
93   letters e.g. ``paster create -t pyramid_routesalchemy Dibbus`` to fail to
94   start when ``paster serve development.ini`` was used against the result.
95   See https://github.com/Pylons/pyramid/issues/#issue/107
96
877904 97 - The ``render_view`` method of ``pyramid.renderers.RendererHelper`` passed
CM 98   an incorrect value into the renderer for ``renderer_info``.  It now passes
99   an instance of ``RendererHelper`` instead of a dictionary, which is
100   consistent with other usages.  See
101   https://github.com/Pylons/pyramid/issues#issue/106
102
cf3177 103 - A bug existed in the ``pyramid.authentication.AuthTktCookieHelper`` which
42a58b 104   would break any usage of an AuthTktAuthenticationPolicy when one was
CM 105   configured to reissue its tokens (``reissue_time`` < ``timeout`` /
106   ``max_age``). Symptom: ``ValueError: ('Invalid token %r', '')``.  See
cf3177 107   https://github.com/Pylons/pyramid/issues#issue/108.
CM 108
2228ef 109 1.0b1 (2011-01-21)
a44845 110 ==================
acc2a6 111
6fd450 112 Features
CM 113 --------
114
115 - The AuthTktAuthenticationPolicy now accepts a ``tokens`` parameter via
116   ``pyramid.security.remember``.  The value must be a sequence of strings.
117   Tokens are placed into the auth_tkt "tokens" field and returned in the
118   auth_tkt cookie.
119
d0e101 120 - Add ``wild_domain`` argument to AuthTktAuthenticationPolicy, which defaults
CM 121   to ``True``.  If it is set to ``False``, the feature of the policy which
122   sets a cookie with a wilcard domain will be turned off.
123
47442f 124 - Add a ``MANIFEST.in`` file to each paster template. See
CM 125   https://github.com/Pylons/pyramid/issues#issue/95
126
2a13b0 127 Bug Fixes
CM 128 ---------
129
130 - ``testing.setUp`` now adds a ``settings`` attribute to the registry (both
131   when it's passed a registry without any settings and when it creates one).
132
133 - The ``testing.setUp`` function now takes a ``settings`` argument, which
134   should be a dictionary.  Its values will subsequently be available on the
135   returned ``config`` object as ``config.registry.settings``.
136
acc2a6 137 Documentation
CM 138 -------------
139
c88d44 140 - Added "What's New in Pyramid 1.0" chapter to HTML rendering of
CM 141   documentation.
142
acc2a6 143 - Merged caseman-master narrative editing branch, many wording fixes and
CM 144   extensions.
145
9904b3 146 - Fix deprecated example showing ``chameleon_zpt`` API call in testing
CM 147   narrative chapter.
148
14e91b 149 - Added "Adding Methods to the Configurator via ``add_directive``" section to
CM 150   Advanced Configuration narrative chapter.
151
72ad33 152 - Add docs for ``add_finished_callback``, ``add_response_callback``,
CM 153   ``route_path``, ``route_url``, and ``static_url`` methods to
154   ``pyramid.request.Request`` API docs.
155
ddf07e 156 - Add (minimal) documentation about using I18N within Mako templates to
CM 157   "Internationalization and Localization" narrative chapter.
158
770495 159 - Move content of "Forms" chapter back to "Views" chapter; I can't think of a
CM 160   better place to put it.
161
57cc86 162 - Slightly improved interface docs for ``IAuthorizationPolicy``.
CM 163
65f203 164 - Minimally explain usage of custom regular expressions in URL dispatch
CM 165   replacement markers within URL Dispatch chapter.
166
5f4780 167 Deprecations
CM 168 -------------
169
170 - Using the ``pyramid.view.bfg_view`` alias for ``pyramid.view.view_config``
171   (a backwards compatibility shim) now issues a deprecation warning.
172
a05353 173 Backwards Incompatibilities
CM 174 ---------------------------
175
176 - When a ``pyramid.exceptions.Forbidden`` error is raised, its status code
177   now ``403 Forbidden``.  It was previously ``401 Unauthorized``, for
178   backwards compatibility purposes with ``repoze.bfg``.  This change will
179   cause problems for users of Pyramid with ``repoze.who``, which intercepts
180   ``401 Unauthorized`` by default, but allows ``403 Forbidden`` to pass
181   through.  Those deployments will need to configure ``repoze.who`` to also
182   react to ``403 Forbidden``.
183
765336 184 - The default value for the ``cookie_on_exception`` parameter to
CM 185   ``pyramid.session.UnencyrptedCookieSessionFactory`` is now ``True``.  This
186   means that when view code causes an exception to be raised, and the session
187   has been mutated, a cookie will be sent back in the response.  Previously
188   its default value was ``False``.
189
607d75 190 Paster Templates
CM 191 ----------------
192
193 - The ``pyramid_zodb``, ``pyramid_routesalchemy`` and ``pyramid_alchemy``
194   paster templates now use a default "commit veto" hook when configuring the
195   ``repoze.tm2`` transaction manager in ``development.ini``.  This prevents a
196   transaction from being committed when the response status code is within
197   the 400 or 500 ranges.  See also
198   http://docs.repoze.org/tm2/#using-a-commit-veto.
199
079bb2 200 1.0a10 (2011-01-18)
CM 201 ===================
45b636 202
49315b 203 Bug Fixes
BB 204 ---------
205
059289 206 - URL dispatch now properly handles a ``.*`` or ``*`` appearing in a regex
CM 207   match when used inside brackets.  Resolves issue #90.
49315b 208
e333c2 209 Backwards Incompatibilities
CM 210 ---------------------------
211
212 - The ``add_handler`` method of a Configurator has been removed from the
213   Pyramid core.  Handlers are now a feature of the ``pyramid_handlers``
214   package, which can be downloaded from PyPI.  Documentation for the package
079bb2 215   should be available via
36a3bf 216   http://pylonsproject.org/projects/pyramid_handlers/dev/, which describes how
079bb2 217   to add a configuration statement to your ``main`` block to reobtain this
CM 218   method.  You will also need to add an ``install_requires`` dependency upon
219   ``pyramid_handlers`` to your ``setup.py`` file.
e333c2 220
d4b0ea 221 - The ``load_zcml`` method of a Configurator has been removed from the
CM 222   Pyramid core.  Loading ZCML is now a feature of the ``pyramid_zcml``
223   package, which can be downloaded from PyPI.  Documentation for the package
079bb2 224   should be available via
36a3bf 225   http://pylonsproject.org/projects/pyramid_zcml/dev/, which describes how
079bb2 226   to add a configuration statement to your ``main`` block to reobtain this
CM 227   method.  You will also need to add an ``install_requires`` dependency upon
228   ``pyramid_zcml`` to your ``setup.py`` file.
d4b0ea 229
CM 230 - The ``pyramid.includes`` subpackage has been removed.  ZCML files which use
231   include the package ``pyramid.includes`` (e.g. ``<include
c9c3c4 232   package="pyramid.includes"/>``) now must include the ``pyramid_zcml``
CM 233   package instead (e.g. ``<include package="pyramid_zcml"/>``).
d4b0ea 234
e333c2 235 - The ``pyramid.view.action`` decorator has been removed from the Pyramid
CM 236   core.  Handlers are now a feature of the ``pyramid_handlers`` package.  It
237   should now be imported from ``pyramid_handlers`` e.g. ``from
238   pyramid_handlers import action``.
239
240 - The ``handler`` ZCML directive has been removed.  It is now a feature of
241   the ``pyramid_handlers`` package.
242
2fa576 243 - The ``pylons_minimal``, ``pylons_basic`` and ``pylons_sqla`` paster
CM 244   templates were removed.  Use ``pyramid_sqla`` (available from PyPI) as a
245   generic replacement for Pylons-esque development.
246
c1eb0c 247 - The ``make_app`` function has been removed from the ``pyramid.router``
CM 248   module.  It continues life within the ``pyramid_zcml`` package.  This
249   leaves the ``pyramid.router`` module without any API functions.
250
251 - The ``configure_zcml`` setting within the deployment settings (within
252   ``**settings`` passed to a Pyramid ``main`` function) has ceased to have any
253   meaning.
254
f52d59 255 Features
CM 256 --------
257
258 - ``pyramid.testing.setUp`` and ``pyramid.testing.tearDown`` have been
259   undeprecated.  They are now the canonical setup and teardown APIs for test
260   configuration, replacing "direct" creation of a Configurator.  This is a
261   change designed to provide a facade that will protect against any future
262   Configurator deprecations.
263
f2681a 264 - Add ``charset`` attribute to ``pyramid.testing.DummyRequest``
CM 265   (unconditionally ``UTF-8``).
266
d93ea2 267 - Add ``add_directive`` method to configurator, which allows framework
CM 268   extenders to add methods to the configurator (ala ZCML directives).
269
08170a 270 - When ``Configurator.include`` is passed a *module* as an argument, it
CM 271   defaults to attempting to find and use a callable named ``includeme``
272   within that module.  This makes it possible to use
273   ``config.include('some.module')`` rather than
274   ``config.include('some.module.somefunc')`` as long as the include function
275   within ``some.module`` is named ``includeme``.
276
c1eb0c 277 - The ``bfg2pyramid`` script now converts ZCML include tags that have
CM 278   ``repoze.bfg.includes`` as a package attribute to the value
279   ``pyramid_zcml``.  For example, ``<include package="repoze.bfg.includes">``
280   will be converted to ``<include package="pyramid_zcml">``.
281
f52d59 282 Paster Templates
CM 283 ----------------
284
285 - All paster templates now use ``pyramid.testing.setUp`` and
286   ``pyramid.testing.tearDown`` rather than creating a Configurator "by hand"
287   within their ``tests.py`` module, as per decision in features above.
288
079bb2 289 - The ``starter_zcml`` paster template has been moved to the ``pyramid_zcml``
CM 290   package.
291
f52d59 292 Documentation
CM 293 -------------
294
295 - The wiki and wiki2 tutorials now use ``pyramid.testing.setUp`` and
296   ``pyramid.testing.tearDown`` rather than creating a Configurator "by hand",
297   as per decision in features above.
298
299 - The "Testing" narrative chapter now explains ``pyramid.testing.setUp`` and
300   ``pyramid.testing.tearDown`` instead of Configurator creation and
301   ``Configurator.begin()`` and ``Configurator.end()``.
45b636 302
6a790b 303 - Document the ``request.override_renderer`` attribute within the narrative
CM 304   "Renderers" chapter in a section named "Overriding A Renderer at Runtime".
305
d4b0ea 306 - The "Declarative Configuration" narrative chapter has been removed (it was
c9c3c4 307   moved to the ``pyramid_zcml`` package).
CM 308
309 - Most references to ZCML in narrative chapters have been removed or
310   redirected to ``pyramid_zcml`` locations.
d4b0ea 311
206188 312 Deprecations
CM 313 ------------
314
315 - Deprecation warnings related to import of the following API functions were
316   added: ``pyramid.traversal.find_model``, ``pyramid.traversal.model_path``,
317   ``pyramid.traversal.model_path_tuple``, ``pyramid.url.model_url``.  The
318   instructions emitted by the deprecation warnings instruct the developer to
319   change these method spellings to their ``resource`` equivalents.  This is a
320   consequence of the mass concept rename of "model" to "resource" performed
321   in 1.0a7.
322
a063af 323 1.0a9 (2011-01-08)
CM 324 ==================
096c4b 325
afbc5d 326 Bug Fixes
CM 327 ---------
328
329 - The ``proutes`` command tried too hard to resolve the view for printing,
330   resulting in exceptions when an exceptional root factory was encountered.
331   Instead of trying to resolve the view, if it cannot, it will now just print
332   ``<unknown>``.
bae647 333
07ee47 334 - The `self` argument was included in new methods of the ``ISession`` interface
56a8d0 335   signature, causing ``pyramid_beaker`` tests to fail.
07ee47 336
8673fb 337 - Readd ``pyramid.traversal.model_path_tuple`` as an alias for
CM 338   ``pyramid.traversal.resource_path_tuple`` for backwards compatibility.
339
bae647 340 Features
RM 341 --------
342
5653d1 343 - Add a new API ``pyramid.url.current_route_url``, which computes a URL based
CM 344   on the "current" route (if any) and its matchdict values.
345
95c9f6 346 - ``config.add_view`` now accepts a ``decorator`` keyword argument, a callable
CM 347   which will decorate the view callable before it is added to the registry.
bae647 348
60eccf 349 - If a handler class provides an ``__action_decorator__`` attribute (usually
CM 350   a classmethod or staticmethod), use that as the decorator for each view
95c9f6 351   registration for that handler.
744d76 352
2526d8 353 - The ``pyramid.interfaces.IAuthenticationPolicy`` interface now specifies an
CM 354   ``unauthenticated_userid`` method.  This method supports an important
355   optimization required by people who are using persistent storages which do
356   not support object caching and whom want to create a "user object" as a
357   request attribute.
358
359 - A new API has been added to the ``pyramid.security`` module named
360   ``unauthenticated_userid``.  This API function calls the
361   ``unauthenticated_userid`` method of the effective security policy.
362
363 - An ``unauthenticated_userid`` method has been added to the dummy
364   authentication policy returned by
365   ``pyramid.config.Configurator.testing_securitypolicy``.  It returns the
366   same thing as that the dummy authentication policy's
367   ``authenticated_userid`` method.
368
441666 369 - The class ``pyramid.authentication.AuthTktCookieHelper`` is now an API.
CM 370   This class can be used by third-party authentication policy developers to
371   help in the mechanics of authentication cookie-setting.
372
d95cd9 373 - New constructor argument to Configurator: ``default_view_mapper``.  Useful
CM 374   to create systems that have alternate view calling conventions.  A view
375   mapper allows objects that are meant to be used as view callables to have
376   an arbitrary argument list and an arbitrary result.  The object passed as
377   ``default_view_mapper`` should implement the
378   ``pyramid.interfaces.IViewMapperFactory`` interface.
379
380 - add a ``set_view_mapper`` API to Configurator.  Has
381   the same result as passing ``default_view_mapper`` to the Configurator
382   constructor.
383
5e3d64 384 - ``config.add_view`` now accepts a ``mapper`` keyword argument, which should
CM 385   either be ``None``, a string representing a Python dotted name, or an
386   object which is an ``IViewMapperFactory``.  This feature is not useful for
387   "civilians", only for extension writers.
d95cd9 388
CM 389 - Allow static renderer provided during view registration to be overridden at
390   request time via a request attribute named ``override_renderer``, which
391   should be the name of a previously registered renderer.  Useful to provide
392   "omnipresent" RPC using existing rendered views.
393
51b2e8 394 - Instances of ``pyramid.testing.DummyRequest`` now have a ``session``
CM 395   object, which is mostly a dictionary, but also implements the other session
396   API methods for flash and CSRF.
397
2526d8 398 Backwards Incompatibilities
CM 399 ---------------------------
400
401 - Since the ``pyramid.interfaces.IAuthenticationPolicy`` interface now
402   specifies that a policy implementation must implement an
403   ``unauthenticated_userid`` method, all third-party custom authentication
404   policies now must implement this method.  It, however, will only be called
405   when the global function named ``pyramid.security.unauthenticated_userid``
406   is invoked, so if you're not invoking that, you will not notice any issues.
407
14f863 408 - ``pyramid.interfaces.ISession.get_csrf_token`` now mandates that an
CM 409   implementation should return a *new* token if one doesn't already exist in
410   the session (previously it would return None).  The internal sessioning
411   implementation has been changed.
412
7e9d3c 413 Documentation
CM 414 -------------
415
416 - The (weak) "Converting a CMF Application to Pyramid" tutorial has been
417   removed from the tutorials section.  It was moved to the
418   ``pyramid_tutorials`` Github repository.
419
a65bec 420 - The "Resource Location and View Lookup" chapter has been replaced with a
CM 421   variant of Rob Miller's "Much Ado About Traversal" (originally published at
422   http://blog.nonsequitarian.org/2010/much-ado-about-traversal/).
423
424 - Many minor wording tweaks and refactorings (merged Casey Duncan's docs
425   fork, in which he is working on general editing).
426
8839b6 427 - Added (weak) description of new view mapper feature to Hooks narrative
CM 428   chapter.
429
f3f45a 430 - Split views chapter into 2: View Callables and View Configuration.
CM 431
432 - Reorder Renderers and Templates chapters after View Callables but before
433   View Configuration.
434
435 - Merge Session Objects, Cross-Site Request Forgery, and Flash Messaging
436   chapter into a single Sessions chapter.
437
5b20ad 438 - The Wiki and Wiki2 tutorials now have much nicer CSS and graphics.
CM 439
95c9f6 440 Internals
CM 441 ---------
442
443 - The "view derivation" code is now factored into a set of classes rather
444   than a large number of standalone functions (a side effect of the
5e3d64 445   view mapper refactoring).
95c9f6 446
CM 447 - The ``pyramid.renderer.RendererHelper`` class has grown a ``render_view``
448   method, which is used by the default view mapper (a side effect of the
5e3d64 449   view mapper refactoring).
95c9f6 450
CM 451 - The object passed as ``renderer`` to the "view deriver" is now an instance
452   of ``pyramid.renderers.RendererHelper`` rather than a dictionary (a side
5e3d64 453   effect of view mapper refactoring).
95c9f6 454
13bfb5 455 - The class used as the "page template" in ``pyramid.chameleon_text`` was
CM 456   removed, in preference to using a Chameleon-inbuilt version.
457
95c95b 458 - A view callable wrapper registered in the registry now contains an
CM 459   ``__original_view__`` attribute which references the original view callable
460   (or class).
461
2526d8 462 - The (non-API) method of all internal authentication policy implementations
CM 463   previously named ``_get_userid`` is now named ``unauthenticated_userid``,
464   promoted to an API method.  If you were overriding this method, you'll now
465   need to override it as ``unauthenticated_userid`` instead.
466
80aa77 467 - Remove (non-API) function of config.py named _map_view.
9c1d34 468
636294 469 1.0a8 (2010-12-27)
CM 470 ==================
13de5d 471
e6f45b 472 Bug Fixes
CM 473 ---------
474
475 - The name ``registry`` was not available in the ``paster pshell``
476   environment under IPython.
477
bac5b3 478 Features
CM 479 --------
17c4de 480
bac5b3 481 - If a resource implements a ``__resource_url__`` method, it will be called
CM 482   as the result of invoking the ``pyramid.url.resource_url`` function to
483   generate a URL, overriding the default logic.  See the new "Generating The
484   URL Of A Resource" section within the Resources narrative chapter.
485
4df636 486 - Added flash messaging, as described in the "Flash Messaging" narrative
CM 487   documentation chapter.
488
319793 489 - Added CSRF token generation, as described in the narrative chapter entitled
CM 490   "Preventing Cross-Site Request Forgery Attacks".
491
f5bafd 492 - Prevent misunderstanding of how the ``view`` and ``view_permission``
CM 493   arguments to add_route work by raising an exception during configuration if
494   view-related arguments exist but no ``view`` argument is passed.
495
90a327 496 - Add ``paster proute`` command which displays a summary of the routing
CM 497   table.  See the narrative documentation section within the "URL Dispatch"
498   chapter entitled "Displaying All Application Routes".
499
2a5ae0 500 Paster Templates
CM 501 ----------------
502
503 - The ``pyramid_zodb`` Paster template no longer employs ZCML.  Instead, it
504   is based on scanning.
505
bac5b3 506 Documentation
CM 507 -------------
508
509 - Added "Generating The URL Of A Resource" section to the Resources narrative
510   chapter (includes information about overriding URL generation using
511   ``__resource_url__``).
512
513 - Added "Generating the Path To a Resource" section to the Resources
514   narrative chapter.
515
516 - Added "Finding a Resource by Path" section to the Resources narrative
517   chapter.
13de5d 518
f4f41f 519 - Added "Obtaining the Lineage of a Resource" to the Resources narrative
CM 520   chapter.
521
522 - Added "Determining if a Resource is In The Lineage of Another Resource" to
523   Resources narrative chapter.
524
b32bfd 525 - Added "Finding the Root Resource" to Resources narrative chapter.
CM 526
527 - Added "Finding a Resource With a Class or Interface in Lineage" to
528   Resources narrative chapter.
529
4df636 530 - Added a "Flash Messaging" narrative documentation chapter.
CM 531
319793 532 - Added a narrative chapter entitled "Preventing Cross-Site Request Forgery
CM 533   Attacks".
534
2a5ae0 535 - Changed the "ZODB + Traversal Wiki Tutorial" based on changes to
CM 536   ``pyramid_zodb`` Paster template.
537
10fd8f 538 - Added "Advanced Configuration" narrative chapter which documents how to
CM 539   deal with configuration conflicts, two-phase configuration, ``include`` and
540   ``commit``.
541
b33dca 542 - Fix API documentation rendering for ``pyramid.view.static``
CM 543
22533d 544 - Add "Pyramid Provides More Than One Way to Do It" to Design Defense
CM 545   documentation.
546
56db9e 547 - Changed "Static Assets" narrative chapter: clarify that ``name`` represents
CM 548   a prefix unless it's a URL, added an example of a root-relative static view
549   fallback for URL dispatch, added an example of creating a simple view that
550   returns the body of a file.
551
e1a7e0 552 - Move ZCML usage in Hooks chapter to Declarative Configuration chapter.
CM 553
88b9ee 554 - Merge "Static Assets" chapter into the "Assets" chapter.
CM 555
90a327 556 - Added narrative documentation section within the "URL Dispatch" chapter
CM 557   entitled "Displaying All Application Routes" (for ``paster proutes``
558   command).
559
bd3bf1 560 1.0a7 (2010-12-20)
CM 561 ==================
a2796f 562
aa1ec8 563 Terminology Changes
CM 564 -------------------
565
566 - The Pyramid concept previously known as "model" is now known as "resource".
567   As a result:
568
569   - The following API changes have been made::
570
571       pyramid.url.model_url -> 
572                         pyramid.url.resource_url
477e99 573
aa1ec8 574       pyramid.traversal.find_model -> 
CM 575                         pyramid.url.find_resource
477e99 576
aa1ec8 577       pyramid.traversal.model_path ->
CM 578                         pyramid.traversal.resource_path
477e99 579
aa1ec8 580       pyramid.traversal.model_path_tuple ->
CM 581                         pyramid.traversal.resource_path_tuple
477e99 582
aa1ec8 583       pyramid.traversal.ModelGraphTraverser -> 
CM 584                         pyramid.traversal.ResourceTreeTraverser
477e99 585
aa1ec8 586       pyramid.config.Configurator.testing_models ->
CM 587                         pyramid.config.Configurator.testing_resources
477e99 588
aa1ec8 589       pyramid.testing.registerModels ->
CM 590                         pyramid.testing.registerResources
477e99 591
aa1ec8 592       pyramid.testing.DummyModel ->
CM 593                         pyramid.testing.DummyResource
594
595    - All documentation which previously referred to "model" now refers to
bbb9b5 596      "resource".
aa1ec8 597
CM 598    - The ``starter`` and ``starter_zcml`` paster templates now have a
599      ``resources.py`` module instead of a ``models.py`` module.
600
601   - Positional argument names of various APIs have been changed from
602     ``model`` to ``resource``.
603
604   Backwards compatibility shims have been left in place in all cases.  They
605   will continue to work "forever".
606
607 - The Pyramid concept previously known as "resource" is now known as "asset".
608   As a result:
609
610   - The (non-API) module previously known as ``pyramid.resource`` is now
611     known as ``pyramid.asset``.
612
613   - All docs that previously referred to "resource specification" now refer
614     to "asset specification".
615
616   - The following API changes were made::
617
618       pyramid.config.Configurator.absolute_resource_spec ->
619                         pyramid.config.Configurator.absolute_asset_spec
477e99 620
aa1ec8 621       pyramid.config.Configurator.override_resource ->
CM 622                         pyramid.config.Configurator.override_asset
623
624   - The ZCML directive previously known as ``resource`` is now known as
625     ``asset``.
626
627   - The setting previously known as ``BFG_RELOAD_RESOURCES`` (envvar) or
628     ``reload_resources`` (config file) is now known, respectively, as
7b9066 629     ``PYRAMID_RELOAD_ASSETS`` and ``reload_assets``.
aa1ec8 630
CM 631   Backwards compatibility shims have been left in place in all cases.  They
632   will continue to work "forever".
633
7906d2 634 Bug Fixes
CM 635 ---------
636
637 - Make it possible to succesfully run all tests via ``nosetests`` command
638   directly (rather than indirectly via ``python setup.py nosetests``).
639
14b78b 640 - When a configuration conflict is encountered during scanning, the conflict
CM 641   exception now shows the decorator information that caused the conflict.
642
24bf2a 643 Features
CM 644 --------
645
646 - Added ``debug_routematch`` configuration setting that logs matched routes
647   (including the matchdict and predicates).
648
dc06b0 649 - The name ``registry`` is now available in a ``pshell`` environment by
CM 650   default.  It is the application registry object.
651
e79d36 652 Environment
CM 653 -----------
654
655 - All environment variables which used to be prefixed with ``BFG_`` are now
656   prefixed with ``PYRAMID_`` (e.g. ``BFG_DEBUG_NOTFOUND`` is now
657   ``PYRAMID_DEBUG_NOTFOUND``)
658
24bf2a 659 Documentation
CM 660 -------------
661
662 - Added "Debugging Route Matching" section to the urldispatch narrative
663   documentation chapter.
664
7b9066 665 - Added reference to ``PYRAMID_DEBUG_ROUTEMATCH`` envvar and ``debug_routematch``
24bf2a 666   config file setting to the Environment narrative docs chapter.
CM 667
dc06b0 668 - Changed "Project" chapter slightly to expand on use of ``paster pshell``.
CM 669
b3edcf 670 - Direct Jython users to Mako rather than Jinja2 in "Install" narrative
CM 671   chapter.
672
aa1ec8 673 - Many changes to support terminological renaming of "model" to "resource"
CM 674   and "resource" to "asset".
675
6ee49a 676 - Added an example of ``WebTest`` functional testing to the testing narrative
CM 677   chapter.
678
bdb5ed 679 - Rearranged chapter ordering by popular demand (URL dispatch first, then
CM 680   traversal).  Put hybrid chapter after views chapter.
681
a59c78 682 - Split off "Renderers" as its own chapter from "Views" chapter in narrative
CM 683   documentation.
684
3f6b38 685 Paster Templates
CM 686 ----------------
687
688 - Added ``debug_routematch = false`` to all paster templates.
689
14b78b 690 Dependencies
CM 691 ------------
692
693 - Depend on Venusian >= 0.5 (for scanning conflict exception decoration).
694
07bd03 695 1.0a6 (2010-12-15)
CM 696 ==================
73b432 697
c5d172 698 Bug Fixes
CM 699 ---------
700
7cfd68 701 - 1.0a5 introduced a bug when ``pyramid.config.Configurator.scan`` was used
CM 702   without a ``package`` argument (e.g. ``config.scan()`` as opposed to
703   ``config.scan('packagename')``.  The symptoms were: lots of deprecation
704   warnings printed to the console about imports of deprecated Pyramid
43d075 705   functions and classes and non-detection of view callables decorated with
CM 706   ``view_config`` decorators.  This has been fixed.
73b432 707
86a304 708 - Tests now pass on Windows (no bugs found, but a few tests in the test suite
CM 709   assumed UNIX path segments in filenames).
710
55e60c 711 Documentation
CM 712 -------------
713
714 - If you followed it to-the-letter, the ZODB+Traversal Wiki tutorial would
715   instruct you to run a test which would fail because the view callable
716   generated by the ``pyramid_zodb`` tutorial used a one-arg view callable,
717   but the test in the sample code used a two-arg call.
718
719 - Updated ZODB+Traversal tutorial setup.py of all steps to match what's
720   generated by ``pyramid_zodb``.
721
a66a13 722 - Fix reference to ``repoze.bfg.traversalwrapper`` in "Models" chapter (point
CM 723   at ``pyramid_traversalwrapper`` instead).
724
ec8833 725 1.0a5 (2010-12-14)
CM 726 ==================
aedc21 727
957f61 728 Features
CM 729 --------
730
e8edd5 731 - Add a ``handler`` ZCML directive.  This directive does the same thing as
CM 732   ``pyramid.configuration.add_handler``.
733
d7f259 734 - A new module named ``pyramid.config`` was added.  It subsumes the duties of
f360d9 735   the older ``pyramid.configuration`` module.
d7f259 736
CM 737 - The new ``pyramid.config.Configurator` class has API methods that the older
738   ``pyramid.configuration.Configurator`` class did not: ``with_context`` (a
739   classmethod), ``include``, ``action``, and ``commit``.  These methods exist
740   for imperative application extensibility purposes.
e16ab0 741
CM 742 - The ``pyramid.testing.setUp`` function now accepts an ``autocommit``
743   keyword argument, which defaults to ``True``.  If it is passed ``False``,
744   the Config object returned by ``setUp`` will be a non-autocommiting Config
745   object.
957f61 746
CM 747 - Add logging configuration to all paster templates.
748
749 - ``pyramid_alchemy``, ``pyramid_routesalchemy``, and ``pylons_sqla`` paster
750   templates now use idiomatic SQLAlchemy configuration in their respective
751   ``.ini`` files and Python code.
752
0cb7ac 753 - ``pyramid.testing.DummyRequest`` now has a class variable,
CM 754   ``query_string``, which defaults to the empty string.
c5f557 755
e880a4 756 - Add support for json on GAE by catching NotImplementedError and importing
CM 757   simplejson from django.utils.
758
a9f17c 759 - The Mako renderer now accepts a resource specification for
CM 760   ``mako.module_directory``.
761
81e648 762 - New boolean Mako settings variable ``mako.strict_undefined``.  See `Mako
CM 763   Context Variables
764   <http://www.makotemplates.org/docs/runtime.html#context-variables>`_ for
765   its meaning.
766
767 Dependencies
768 ------------
769
770 - Depend on Mako 0.3.6+ (we now require the ``strict_undefined`` feature).
771
b44b93 772 Bug Fixes
CM 773 ---------
774
a56564 775 - When creating a Configurator from within a ``paster pshell`` session, you
CM 776   were required to pass a ``package`` argument although ``package`` is not
777   actually required.  If you didn't pass ``package``, you would receive an
778   error something like ``KeyError: '__name__'`` emanating from the
779   ``pyramid.path.caller_module`` function.  This has now been fixed.
780
b44b93 781 - The ``pyramid_routesalchemy`` paster template's unit tests failed
CM 782   (``AssertionError: 'SomeProject' != 'someproject'``).  This is fixed.
783
76e48b 784 - Make default renderer work (renderer factory registered with no name, which
CM 785   is active for every view unless the view names a specific renderer).
786
a9f17c 787 - The Mako renderer did not properly turn the ``mako.imports``,
CM 788   ``mako.default_filters``, and ``mako.imports`` settings into lists.
789
790 - The Mako renderer did not properly convert the ``mako.error_handler``
791   setting from a dotted name to a callable.
792
2197ff 793 Documentation
CM 794 -------------
795
ec8833 796 - Merged many wording, readability, and correctness changes to narrative
CM 797   documentation chapters from https://github.com/caseman/pyramid (up to and
798   including "Models" narrative chapter).
799
2197ff 800 - "Sample Applications" section of docs changed to note existence of Cluegun,
CM 801   Shootout and Virginia sample applications, ported from their repoze.bfg
802   origin packages.
803
d0e2f6 804 - SQLAlchemy+URLDispatch tutorial updated to integrate changes to
CM 805   ``pyramid_routesalchemy`` template.
806
e26903 807 - Add ``pyramid.interfaces.ITemplateRenderer`` interface to Interfaces API
CM 808   chapter (has ``implementation()`` method, required to be used when getting
809   at Chameleon macros).
810
aa3306 811 - Add a "Modifying Package Structure" section to the project narrative
CM 812   documentation chapter (explain turning a module into a package).
aedc21 813
4d660d 814 - Documentation was added for the new ``handler`` ZCML directive in the ZCML
CM 815   section.
816
f360d9 817 Deprecations
CM 818 ------------
819
820 - ``pyramid.configuration.Configurator`` is now deprecated.  Use
821   ``pyramid.config.Configurator``, passing its constructor
822   ``autocommit=True`` instead.  The ``pyramid.configuration.Configurator``
823   alias will live for a long time, as every application uses it, but its
824   import now issues a deprecation warning.  The
825   ``pyramid.config.Configurator`` class has the same API as
826   ``pyramid.configuration.Configurator`` class, which it means to replace,
827   except by default it is a *non-autocommitting* configurator. The
828   now-deprecated ``pyramid.configuration.Configurator`` will autocommit every
829   time a configuration method is called.
830
831   The ``pyramid.configuration`` module remains, but it is deprecated.  Use
832   ``pyramid.config`` instead.
833
7eb4ad 834 1.0a4 (2010-11-21)
CM 835 ==================
745a61 836
2c9d14 837 Features
CM 838 --------
839
e84116 840 - URL Dispatch now allows for replacement markers to be located anywhere
BB 841   in the pattern, instead of immediately following a ``/``.
47c9f8 842
4018ad 843 - URL Dispatch now uses the form ``{marker}`` to denote a replace marker in
7eb4ad 844   the route pattern instead of ``:marker``. The old colon-style marker syntax
CM 845   is still accepted for backwards compatibility. The new format allows a
846   regular expression for that marker location to be used instead of the
847   default ``[^/]+``, for example ``{marker:\d+}`` is now valid to require the
848   marker to be digits.
47c9f8 849
2c9d14 850 - Add a ``pyramid.url.route_path`` API, allowing folks to generate relative
CM 851   URLs.  Calling ``route_path`` is the same as calling
852   ``pyramid.url.route_url`` with the argument ``_app_url`` equal to the empty
853   string.
854
855 - Add a ``pyramid.request.Request.route_path`` API.  This is a convenience
856   method of the request which calls ``pyramid.url.route_url``.
857
85ee02 858 - Make test suite pass on Jython (requires PasteScript trunk, presumably to
CM 859   be 1.7.4).
860
29b7aa 861 - Make test suite pass on PyPy (Chameleon doesn't work).
CM 862
614f00 863 - Surrounding application configuration with ``config.begin()`` and
CM 864   ``config.end()`` is no longer necessary.  All paster templates have been
865   changed to no longer call these functions.
866
35ce2a 867 - Fix configurator to not convert ``ImportError`` to ``ConfigurationError``
CM 868   if the import that failed was unrelated to the import requested via a
869   dotted name when resolving dotted names (such as view dotted names).
870
614f00 871 Documentation
CM 872 -------------
873
874 - SQLAlchemy+URLDispatch and ZODB+Traversal tutorials have been updated to
875   not call ``config.begin()`` or ``config.end()``.
876
111a6f 877 Bug Fixes
CM 878 ---------
879
880 - Add deprecation warnings to import of ``pyramid.chameleon_text`` and
881   ``pyramid.chameleon_zpt`` of ``get_renderer``, ``get_template``,
882   ``render_template``, and ``render_template_to_response``.
883
34f44d 884 - Add deprecation warning for import of ``pyramid.zcml.zcml_configure`` and
CM 885   ``pyramid.zcml.file_configure``.
886
1e00f3 887 - The ``pyramid_alchemy`` paster template had a typo, preventing an import
CM 888   from working.
889
a66593 890 - Fix apparent failures when calling ``pyramid.traversal.find_model(root,
CM 891   path)`` or ``pyramid.traversal.traverse(path)`` when ``path`` is
892   (erroneously) a Unicode object. The user is meant to pass these APIs a
893   string object, never a Unicode object.  In practice, however, users indeed
894   pass Unicode.  Because the string that is passed must be ASCII encodeable,
895   now, if they pass a Unicode object, its data is eagerly converted to an
896   ASCII string rather than being passed along to downstream code as a
897   convenience to the user and to prevent puzzling second-order failures from
898   cropping up (all failures will occur within ``pyramid.traversal.traverse``
7eb4ad 899   rather than later down the line as the result of calling e.g.
a66593 900   ``traversal_path``).
CM 901
34f44d 902 Backwards Incompatibilities
CM 903 ---------------------------
904
905 - The ``pyramid.testing.zcml_configure`` API has been removed.  It had been
406259 906   advertised as removed since repoze.bfg 1.2a1, but hadn't actually been.
34f44d 907
b68aad 908 Deprecations
CM 909 ------------
910
911 - The ``pyramid.settings.get_settings`` API is now deprecated.  Use
84df81 912   ``pyramid.threadlocals.get_current_registry().settings`` instead or use the
b68aad 913   ``settings`` attribute of the registry available from the request
CM 914   (``request.registry.settings``).
745a61 915
cb96e2 916 Documentation
CM 917 -------------
918
919 - Removed ``zodbsessions`` tutorial chapter.  It's still useful, but we now
920   have a SessionFactory abstraction which competes with it, and maintaining
921   documentation on both ways to do it is a distraction.
922
dbaa08 923 Internal
CM 924 --------
925
926 - Replace Twill with WebTest in internal integration tests (avoid deprecation
927   warnings generated by Twill).
928
3fa994 929 1.0a3 (2010-11-16)
CM 930 ==================
f4d693 931
9cca72 932 Features
CM 933 --------
934
ae60ba 935 - Added Mako TemplateLookup settings for ``mako.error_handler``,
BB 936   ``mako.default_filters``, and ``mako.imports``.
937
9cca72 938 - Normalized all paster templates: each now uses the name ``main`` to
CM 939   represent the function that returns a WSGI application, each now uses
940   WebError, each now has roughly the same shape of development.ini style.
941
51c305 942 - Added class vars ``matchdict`` and ``matched_route`` to
CR 943   ``pyramid.request.Request``.  Each is set to ``None``.
944
fe4172 945 - New API method: ``pyramid.settings.asbool``.
CM 946
9e2e1c 947 - New API methods for ``pyramid.request.Request``: ``model_url``,
CM 948   ``route_url``, and ``static_url``.  These are simple passthroughs for their
949   respective functions in ``pyramid.url``.
4eafaa 950
5a972b 951 - The ``settings`` object which used to be available only when
CM 952   ``request.settings.get_settings`` was called is now available as
953   ``registry.settings`` (e.g. ``request.registry.settings`` in view code).
954
9cca72 955 Bug Fixes
CM 956 ---------
957
958 - The pylons_* paster templates erroneously used the ``{squiggly}`` routing
959   syntax as the pattern supplied to ``add_route``.  This style of routing is
960   not supported.  They were replaced with ``:colon`` style route patterns.
f4d693 961
7bd14c 962 - The pylons_* paster template used the same string
CM 963   (``your_app_secret_string``) for the ``session.secret`` setting in the
964   generated ``development.ini``.  This was a security risk if left unchanged
965   in a project that used one of the templates to produce production
966   applications.  It now uses a randomly generated string.
967
1ad856 968 Documentation
CM 969 -------------
970
971 - ZODB+traversal wiki (``wiki``) tutorial updated due to changes to
972   ``pyramid_zodb`` paster template.
973
40eb89 974 - SQLAlchemy+urldispach wiki (``wiki2``) tutorial updated due to changes to
CM 975   ``pyramid_routesalchemy`` paster template.
976
4eafaa 977 - Documented the ``matchdict`` and ``matched_route`` attributes of the
CM 978   request object in the Request API documentation.
979
5a972b 980 Deprecations
CM 981 ------------
982
983 - Obtaining the ``settings`` object via
984   ``registry.{get|query}Utility(ISettings)`` is now deprecated.  Instead,
985   obtain the ``settings`` object via the ``registry.settings`` attribute.  A
986   backwards compatibility shim was added to the registry object to register
987   the settings object as an ISettings utility when ``setattr(registry,
988   'settings', foo)`` is called, but it will be removed in a later release.
989
990 - Obtaining the ``settings`` object via ``pyramid.settings.get_settings`` is
991   now deprecated.  Obtain it as the ``settings`` attribute of the registry
992   now (obtain the registry via ``pyramid.threadlocal.get_registry`` or as
993   ``request.registry``).
994
76d7eb 995 Behavior Differences
CM 996 --------------------
997
998 - Internal: ZCML directives no longer call get_current_registry() if there's
999   a ``registry`` attribute on the ZCML context (kill off use of
1000   threadlocals).
1001
7b8d65 1002 - Internal: Chameleon template renderers now accept two arguments: ``path``
CM 1003   and ``lookup``.  ``Lookup`` will be an instance of a lookup class which
1004   supplies (late-bound) arguments for debug, reload, and translate.  Any
1005   third-party renderers which use (the non-API) function
1006   ``pyramid.renderers.template_renderer_factory`` will need to adjust their
1007   implementations to obey the new callback argument list.  This change was to
1008   kill off inappropriate use of threadlocals.
1009
3d4e56 1010 1.0a2 (2010-11-09)
CM 1011 ==================
0af394 1012
c721fd 1013 Documentation
CM 1014 -------------
1015
1016 - All references to events by interface
1017   (e.g. ``pyramid.interfaces.INewRequest``) have been changed to reference
1018   their concrete classes (e.g. ``pyramid.events.NewRequest``) in
1019   documentation about making subscriptions.
1020
3d4e56 1021 - All references to Pyramid-the-application were changed from mod-`pyramid`
CM 1022   to app-`Pyramid`.  A custom role setting was added to ``docs/conf.py`` to
fd5ae9 1023   allow for this.  (internal)
CM 1024
fcc3d1 1025 1.0a1 (2010-11-05)
CM 1026 ==================
5bbc23 1027
fcc3d1 1028 Features (delta from BFG 1.3)
2e6905 1029 -------------------------------
CM 1030
07437c 1031 - Mako templating renderer supports resource specification format for
BB 1032   template lookups and within Mako templates. Absolute filenames must
a62cc2 1033   be used in Pyramid to avoid this lookup process.
07437c 1034
2e6905 1035 - Add ``pyramid.httpexceptions`` module, which is a facade for the
CM 1036   ``webob.exc`` module.
1037
9b8d0c 1038 - Direct built-in support for the Mako templating language.
CM 1039
1040 - A new configurator method exists: ``add_handler``.  This method adds
1041   a Pylons-style "view handler" (such a thing used to be called a
1042   "controller" in Pylons 1.0).
1043
968209 1044 - New argument to configurator: ``session_factory``.
CM 1045
1046 - New method on configurator: ``set_session_factory``
1047
1048 - Using ``request.session`` now returns a (dictionary-like) session
1049   object if a session factory has been configured.
14dc81 1050
CM 1051 - The request now has a new attribute: ``tmpl_context`` for benefit of
1052   Pylons users.
1053
197f0c 1054 - The decorator previously known as ``pyramid.view.bfg_view`` is now
CM 1055   known most formally as ``pyramid.view.view_config`` in docs and
1056   paster templates.  An import of ``pyramid.view.bfg_view``, however,
1057   will continue to work "forever".
1058
6a3184 1059 - New API methods in ``pyramid.session``: ``signed_serialize`` and
CM 1060   ``signed_deserialize``.
1061
1dad60 1062 - New interface: ``pyramid.interfaces.IRendererInfo``.  An object of this type
CM 1063   is passed to renderer factory constructors (see "Backwards
1064   Incompatibilities").
1065
a76e99 1066 - New event type: ``pyramid.interfaces.IBeforeRender``.  An object of this type
CM 1067   is sent as an event before a renderer is invoked (but after the
1068   application-level renderer globals factory added via
1069   ``pyramid.configurator.configuration.set_renderer_globals_factory``, if any,
1070   has injected its own keys).  Applications may now subscribe to the
1071   ``IBeforeRender`` event type in order to introspect the and modify the set of
1072   renderer globals before they are passed to a renderer.  The event object
1073   iself has a dictionary-like interface that can be used for this purpose.  For
1074   example::
1075
1076     from repoze.events import subscriber
1077     from pyramid.interfaces import IRendererGlobalsEvent
1078
1079     @subscriber(IRendererGlobalsEvent)
1080     def add_global(event):
1081         event['mykey'] = 'foo'
1082
1083   If a subscriber attempts to add a key that already exist in the renderer
1084   globals dictionary, a ``KeyError`` is raised.  This limitation is due to the
1085   fact that subscribers cannot be ordered relative to each other.  The set of
1086   keys added to the renderer globals dictionary by all subscribers and
1087   app-level globals factories must be unique.
1088
e65e5b 1089 - New class: ``pyramid.response.Response``.  This is a pure facade for
CM 1090   ``webob.Response`` (old code need not change to use this facade, it's
94b889 1091   existence is mostly for vanity and documentation-generation purposes).
CM 1092
a3dc13 1093 - All preexisting paster templates (except ``zodb``) now use "imperative"
CM 1094   configuration (``starter``, ``routesalchemy``, ``alchemy``).
1095
1096 - A new paster template named ``pyramid_starter_zcml`` exists, which uses
1097   declarative configuration.
1098
2e6905 1099 Documentation (delta from BFG 1.3)
CM 1100 -----------------------------------
1101
1102 - Added a ``pyramid.httpexceptions`` API documentation chapter.
1103
14dc81 1104 - Added a ``pyramid.session`` API documentation chapter.
CM 1105
1106 - Added a ``Session Objects`` narrative documentation chapter.
1107
1108 - Added an API chapter for the ``pyramid.personality`` module.
1109
94b889 1110 - Added an API chapter for the ``pyramid.response`` module.
CM 1111
1112 - All documentation which previously referred to ``webob.Response`` now uses
1113   ``pyramid.response.Response`` instead.
1114
7a3465 1115 - The documentation has been overhauled to use imperative configuration,
CM 1116   moving declarative configuration (ZCML) explanations to a separate
1117   narrative chapter ``declarative.rst``.
1118
b3b713 1119 - The ZODB Wiki tutorial was updated to take into account changes to the
CM 1120   ``pyramid_zodb`` paster template.
1121
b2adfe 1122 - The SQL Wiki tutorial was updated to take into account changes to the
CM 1123   ``pyramid_routesalchemy`` paster template.
6067de 1124
fcc3d1 1125 Backwards Incompatibilities (with BFG 1.3)
CM 1126 ------------------------------------------
2d7993 1127
c81aad 1128 - There is no longer an ``IDebugLogger`` registered as a named utility
CM 1129   with the name ``repoze.bfg.debug``.
1130
1131 - The logger which used to have the name of ``repoze.bfg.debug`` now
1132   has the name ``pyramid.debug``.
1133
588733 1134 - The deprecated API ``pyramid.testing.registerViewPermission``
CM 1135   has been removed.
1136
51c305 1137 - The deprecated API named ``pyramid.testing.registerRoutesMapper``
588733 1138   has been removed.
CM 1139
c81aad 1140 - The deprecated API named ``pyramid.request.get_request`` was removed.
CM 1141
1142 - The deprecated API named ``pyramid.security.Unauthorized`` was
1143   removed.
1144
1145 - The deprecated API named ``pyramid.view.view_execution_permitted``
1146   was removed.
1147
1148 - The deprecated API named ``pyramid.view.NotFound`` was removed.
6a3184 1149
CM 1150 - The ``bfgshell`` paster command is now named ``pshell``.
1151
cba2e1 1152 - The Venusian "category" for all built-in Venusian decorators
CM 1153   (e.g. ``subscriber`` and ``view_config``/``bfg_view``) is now
1154   ``pyramid`` instead of ``bfg``.
3d9dd0 1155
CM 1156 - ``pyramid.renderers.rendered_response`` function removed; use
1157   ``render_pyramid.renderers.render_to_response`` instead.
1158
1dad60 1159 - Renderer factories now accept a *renderer info object* rather than an
CM 1160   absolute resource specification or an absolute path.  The object has the
1161   following attributes: ``name`` (the ``renderer=`` value), ``package`` (the
1162   'current package' when the renderer configuration statement was found),
1163   ``type``: the renderer type, ``registry``: the current registry, and
1164   ``settings``: the deployment settings dictionary.
3d9dd0 1165
CM 1166   Third-party ``repoze.bfg`` renderer implementations that must be ported to
1167   Pyramid will need to account for this.
1168
f5fa3f 1169   This change was made primarily to support more flexible Mako template
CM 1170   rendering.
2876a8 1171
CM 1172 - The presence of the key ``repoze.bfg.message`` in the WSGI environment when
1173   an exception occurs is now deprecated.  Instead, code which relies on this
1174   environ value should use the ``exception`` attribute of the request
1175   (e.g. ``request.exception[0]``) to retrieve the message.
8129f9 1176
CM 1177 - The values ``bfg_localizer`` and ``bfg_locale_name`` kept on the request
1178   during internationalization for caching purposes were never APIs.  These
1179   however have changed to ``localizer`` and ``locale_name``, respectively.
1180
968f46 1181 - The default ``cookie_name`` value of the ``authtktauthenticationpolicy`` ZCML
CM 1182   now defaults to ``auth_tkt`` (it used to default to ``repoze.bfg.auth_tkt``).
1183
1184 - The default ``cookie_name`` value of the
1185   ``pyramid.authentication.AuthTktAuthenticationPolicy`` constructor now
1186   defaults to ``auth_tkt`` (it used to default to ``repoze.bfg.auth_tkt``).
7a3465 1187
a3dc13 1188 - The ``request_type`` argument to the ``view`` ZCML directive, the
CM 1189   ``pyramid.configuration.Configurator.add_view`` method, or the
1190   ``pyramid.view.view_config`` decorator (nee ``bfg_view``) is no longer
1191   permitted to be one of the strings ``GET``, ``HEAD``, ``PUT``, ``POST`` or
1192   ``DELETE``, and now must always be an interface.  Accepting the
1193   method-strings as ``request_type`` was a backwards compatibility strategy
1194   servicing repoze.bfg 1.0 applications.  Use the ``request_method``
1195   parameter instead to specify that a view a string request-method predicate.