<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pyramid/repoze/bfg/paster_templates/alchemy, branch main</title>
<subtitle>Pyramid web framework (fork of https://github.com/Pylons/pyramid).</subtitle>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/'/>
<entry>
<title>first pass at converting bfg to pyramid namespace</title>
<updated>2010-10-25T14:29:31+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@plope.com</email>
</author>
<published>2010-10-25T14:29:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=64372401084889a440c9d990a0febc221e3e4b5c'/>
<id>64372401084889a440c9d990a0febc221e3e4b5c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>merge tutorialfix branch</title>
<updated>2010-10-13T23:55:28+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2010-10-13T23:55:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=3dbdfef11d770a5b79df08c01258e070ee8b7f70'/>
<id>3dbdfef11d770a5b79df08c01258e070ee8b7f70</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Next release</title>
<updated>2010-04-29T18:08:51+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2010-04-29T18:08:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=7a3c22a7dcb688a637a6b9a0a317cf46f4d07af2'/>
<id>7a3c22a7dcb688a637a6b9a0a317cf46f4d07af2</id>
<content type='text'>
============

Paster Templates
----------------

- The ``bfg_alchemy`` and ``bfg_routesalchemy`` templates no longer
  register a ``handle_teardown`` event listener which calls
  ``DBSession.remove``.  This was found by Chris Withers to be
  unnecessary.

Documentation
-------------

- The "bfgwiki2" (URL dispatch wiki) tutorial code and documentation
  was changed to remove the ``handle_teardown`` event listener which
  calls ``DBSession.remove``.

- Any mention of the ``handle_teardown`` event listener as used by the
  paster templates was removed from the URL Dispatch narrative chapter.


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
============

Paster Templates
----------------

- The ``bfg_alchemy`` and ``bfg_routesalchemy`` templates no longer
  register a ``handle_teardown`` event listener which calls
  ``DBSession.remove``.  This was found by Chris Withers to be
  unnecessary.

Documentation
-------------

- The "bfgwiki2" (URL dispatch wiki) tutorial code and documentation
  was changed to remove the ``handle_teardown`` event listener which
  calls ``DBSession.remove``.

- Any mention of the ``handle_teardown`` event listener as used by the
  paster templates was removed from the URL Dispatch narrative chapter.


</pre>
</div>
</content>
</entry>
<entry>
<title>- It is now possible to turn on Chameleon template "debugging mode"</title>
<updated>2010-04-25T17:04:02+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2010-04-25T17:04:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=7c525f127cee96a749e15b6ba2dfbc5379825178'/>
<id>7c525f127cee96a749e15b6ba2dfbc5379825178</id>
<content type='text'>
  for all Chameleon BFG templates by setting a BFG-related Paster
  ``.ini`` file setting named ``debug_templates``. The exceptions
  raised by Chameleon templates when a rendering fails are sometimes
  less than helpful.  ``debug_templates`` allows you to configure your
  application development environment so that exceptions generated by
  Chameleon during template compilation and execution will contain
  more helpful debugging information.  This mode is on by default in
  all new projects.


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  for all Chameleon BFG templates by setting a BFG-related Paster
  ``.ini`` file setting named ``debug_templates``. The exceptions
  raised by Chameleon templates when a rendering fails are sometimes
  less than helpful.  ``debug_templates`` allows you to configure your
  application development environment so that exceptions generated by
  Chameleon during template compilation and execution will contain
  more helpful debugging information.  This mode is on by default in
  all new projects.


</pre>
</div>
</content>
</entry>
<entry>
<title>Merge i18n branch via svn merge --ignore-ancestry -r9030:9150 $REPOZE_SVN/repoze.bfg/branches/i18n</title>
<updated>2010-04-25T00:02:12+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2010-04-25T00:02:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=7534bae0c5eeb34a0146e76a81a9312797f6ba5c'/>
<id>7534bae0c5eeb34a0146e76a81a9312797f6ba5c</id>
<content type='text'>
No foreigners were harmed in the coding of this feature.

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
No foreigners were harmed in the coding of this feature.

</pre>
</div>
</content>
</entry>
<entry>
<title>- The ``__name__`` value assigned to the returned object in the</title>
<updated>2010-03-07T23:09:02+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2010-03-07T23:09:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=1a6e9e316162caeba171735372b32982bc2ede43'/>
<id>1a6e9e316162caeba171735372b32982bc2ede43</id>
<content type='text'>
  ``bfg_alchemy`` application template's ``MyApp`` model was an
  integer.  This was incorrect.  It is now a string.


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  ``bfg_alchemy`` application template's ``MyApp`` model was an
  integer.  This was incorrect.  It is now a string.


</pre>
</div>
</content>
</entry>
<entry>
<title>- In ``bfg_routesalchemy``, ``bfg_alchemy`` and ``bfgwiki2`` tutorial,</title>
<updated>2010-01-13T15:14:03+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2010-01-13T15:14:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=788748e2afedb3d1e180a3033e20ed2d995056a3'/>
<id>788748e2afedb3d1e180a3033e20ed2d995056a3</id>
<content type='text'>
  clean up the SQLAlchemy connection by registering a
  ``repoze.tm.after_end`` callback instead of relying on a ``__del__``
  method of a ``Cleanup`` class added to the WSFI environment.  The
  ``__del__`` strategy was fragile and caused problems in the wild.
  Thanks to Daniel Holth for testing.


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  clean up the SQLAlchemy connection by registering a
  ``repoze.tm.after_end`` callback instead of relying on a ``__del__``
  method of a ``Cleanup`` class added to the WSFI environment.  The
  ``__del__`` strategy was fragile and caused problems in the wild.
  Thanks to Daniel Holth for testing.


</pre>
</div>
</content>
</entry>
<entry>
<title>Normalize.</title>
<updated>2010-01-05T19:38:23+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2010-01-05T19:38:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=4a3a68da7707cdb3c1dfaf61a3fb8a29644d431d'/>
<id>4a3a68da7707cdb3c1dfaf61a3fb8a29644d431d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Features</title>
<updated>2010-01-03T03:39:30+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2010-01-03T03:39:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=eecdbc34962b00e35d41039af014462cf558acee'/>
<id>eecdbc34962b00e35d41039af014462cf558acee</id>
<content type='text'>
--------

- The ``Configurator.add_view`` method now accepts an argument named
  ``context``.  This is an alias for the older argument named
  ``for_``; it is preferred over ``for_``, but ``for_`` will continue
  to be supported "forever".

- The ``view`` ZCML directive now accepts an attribute named
  ``context``.  This is an alias for the older attribute named
  ``for``; it is preferred over ``for``, but ``for`` will continue to
  be supported "forever".

- The ``Configurator.add_route`` method now accepts an argument named
  ``view_context``.  This is an alias for the older argument named
  ``view_for``; it is preferred over ``view_for``, but ``view_for``
  will continue to be supported "forever".

- The ``route`` ZCML directive now accepts an attribute named
  ``view_context``.  This is an alias for the older attribute named
  ``view_for``; it is preferred over ``view_for``, but ``view_for``
  will continue to be supported "forever".

Documentation and Paster Templates
----------------------------------

- All uses of the ``Configurator.add_view`` method that used its
  ``for_`` argument now use the ``context``argument instead.

- All uses of the ``Configurator.add_route`` method that used its
  ``view_for`` argument now use the ``view_context``argument instead.

- All uses of the ``view`` ZCML directive that used its ``for``
  attribute now use the ``context`` attribute instead.

- All uses of the ``route`` ZCML directive that used its ``view_for``
  attribute now use the ``view_context`` attribute instead.



</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
--------

- The ``Configurator.add_view`` method now accepts an argument named
  ``context``.  This is an alias for the older argument named
  ``for_``; it is preferred over ``for_``, but ``for_`` will continue
  to be supported "forever".

- The ``view`` ZCML directive now accepts an attribute named
  ``context``.  This is an alias for the older attribute named
  ``for``; it is preferred over ``for``, but ``for`` will continue to
  be supported "forever".

- The ``Configurator.add_route`` method now accepts an argument named
  ``view_context``.  This is an alias for the older argument named
  ``view_for``; it is preferred over ``view_for``, but ``view_for``
  will continue to be supported "forever".

- The ``route`` ZCML directive now accepts an attribute named
  ``view_context``.  This is an alias for the older attribute named
  ``view_for``; it is preferred over ``view_for``, but ``view_for``
  will continue to be supported "forever".

Documentation and Paster Templates
----------------------------------

- All uses of the ``Configurator.add_view`` method that used its
  ``for_`` argument now use the ``context``argument instead.

- All uses of the ``Configurator.add_route`` method that used its
  ``view_for`` argument now use the ``view_context``argument instead.

- All uses of the ``view`` ZCML directive that used its ``for``
  attribute now use the ``context`` attribute instead.

- All uses of the ``route`` ZCML directive that used its ``view_for``
  attribute now use the ``view_context`` attribute instead.



</pre>
</div>
</content>
</entry>
<entry>
<title>Features</title>
<updated>2009-12-17T16:00:02+00:00</updated>
<author>
<name>Chris McDonough</name>
<email>chrism@agendaless.com</email>
</author>
<published>2009-12-17T16:00:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.kingdread.de/cgit.cgi/pyramid/commit/?id=bc857e7e6e71a4001f03c608a18bac7dab36ccff'/>
<id>bc857e7e6e71a4001f03c608a18bac7dab36ccff</id>
<content type='text'>
--------

- The ``Configurator`` object now has two new methods: ``begin`` and
  ``end``.  The ``begin`` method is meant to be called before any
  "configuration" begins (e.g. before ``add_view``, et. al are
  called).  The ``end`` method is meant to be called after all
  "configuration" is complete.

  Previously, before there was imperative configuration at all (1.1
  and prior), configuration begin and end was invariably implied by
  the process of loading a ZCML file.  When a ZCML load happened, the
  threadlocal data structure containing the request and registry was
  modified before the load, and torn down after the load, making sure
  that all framework code that needed ``get_current_registry`` for the
  duration of the ZCML load was satisfied.

  Some API methods called during imperative configuration, (such as
  ``Configurator.add_view`` when a renderer is involved) end up for
  historical reasons calling ``get_current_registry``.  However, in
  1.2a5 and below, the Configurator supplied no functionality that
  allowed people to make sure that ``get_current_registry`` returned
  the registry implied by the configurator being used.  ``begin`` now
  serves this purpose.  Inversely, ``end`` pops the thread local
  stack, undoing the actions of ``begin``.

  We make this boundary explicit to reduce the potential for confusion
  when the configurator is used in different circumstances (e.g. in
  unit tests and app code vs. just in initial app setup).

  Existing code written for 1.2a1-1.2a5 which does not call ``begin``
  or ``end`` continues to work in the same manner it did before.  It
  is however suggested that this code be changed to call ``begin`` and
  ``end`` to reduce the potential for confusion in the future.

- All ``paster`` templates which generate an application skeleton now
  make use of the new ``begin`` and ``end`` methods of the
  Configurator they use in their respective copies of ``run.py`` and
  ``tests.py``.

Documentation
-------------

- All documentation that makes use of a ``Configurator`` object to do
  application setup and test setup now makes use of the new ``begin``
  and ``end`` methods of the configurator.

Bug Fixes
---------

- When a ``repoze.bfg.exceptions.NotFound`` or
  ``repoze.bfg.exceptions.Forbidden`` *class* (as opposed to instance)
  was raised as an exception within a root factory (or route root
  factory), the exception would not be caught properly by the
  ``repoze.bfg.`` Router and it would propagate to up the call stack,
  as opposed to rendering the not found view or the forbidden view as
  would have been expected.


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
--------

- The ``Configurator`` object now has two new methods: ``begin`` and
  ``end``.  The ``begin`` method is meant to be called before any
  "configuration" begins (e.g. before ``add_view``, et. al are
  called).  The ``end`` method is meant to be called after all
  "configuration" is complete.

  Previously, before there was imperative configuration at all (1.1
  and prior), configuration begin and end was invariably implied by
  the process of loading a ZCML file.  When a ZCML load happened, the
  threadlocal data structure containing the request and registry was
  modified before the load, and torn down after the load, making sure
  that all framework code that needed ``get_current_registry`` for the
  duration of the ZCML load was satisfied.

  Some API methods called during imperative configuration, (such as
  ``Configurator.add_view`` when a renderer is involved) end up for
  historical reasons calling ``get_current_registry``.  However, in
  1.2a5 and below, the Configurator supplied no functionality that
  allowed people to make sure that ``get_current_registry`` returned
  the registry implied by the configurator being used.  ``begin`` now
  serves this purpose.  Inversely, ``end`` pops the thread local
  stack, undoing the actions of ``begin``.

  We make this boundary explicit to reduce the potential for confusion
  when the configurator is used in different circumstances (e.g. in
  unit tests and app code vs. just in initial app setup).

  Existing code written for 1.2a1-1.2a5 which does not call ``begin``
  or ``end`` continues to work in the same manner it did before.  It
  is however suggested that this code be changed to call ``begin`` and
  ``end`` to reduce the potential for confusion in the future.

- All ``paster`` templates which generate an application skeleton now
  make use of the new ``begin`` and ``end`` methods of the
  Configurator they use in their respective copies of ``run.py`` and
  ``tests.py``.

Documentation
-------------

- All documentation that makes use of a ``Configurator`` object to do
  application setup and test setup now makes use of the new ``begin``
  and ``end`` methods of the configurator.

Bug Fixes
---------

- When a ``repoze.bfg.exceptions.NotFound`` or
  ``repoze.bfg.exceptions.Forbidden`` *class* (as opposed to instance)
  was raised as an exception within a root factory (or route root
  factory), the exception would not be caught properly by the
  ``repoze.bfg.`` Router and it would propagate to up the call stack,
  as opposed to rendering the not found view or the forbidden view as
  would have been expected.


</pre>
</div>
</content>
</entry>
</feed>
