diff options
| -rw-r--r-- | CHANGES.txt | 3 | ||||
| -rw-r--r-- | TODO.txt | 6 | ||||
| -rw-r--r-- | docs/tutorials/wiki/basiclayout.rst | 5 | ||||
| -rw-r--r-- | docs/tutorials/wiki/src/authorization/development.ini | 1 | ||||
| -rw-r--r-- | docs/tutorials/wiki/src/authorization/production.ini | 1 | ||||
| -rw-r--r-- | docs/tutorials/wiki/src/authorization/setup.py | 1 | ||||
| -rw-r--r-- | docs/tutorials/wiki/src/basiclayout/development.ini | 1 | ||||
| -rw-r--r-- | docs/tutorials/wiki/src/basiclayout/production.ini | 1 | ||||
| -rw-r--r-- | docs/tutorials/wiki/src/basiclayout/setup.py | 1 | ||||
| -rw-r--r-- | docs/tutorials/wiki/src/models/development.ini | 1 | ||||
| -rw-r--r-- | docs/tutorials/wiki/src/models/production.ini | 1 | ||||
| -rw-r--r-- | docs/tutorials/wiki/src/models/setup.py | 1 | ||||
| -rw-r--r-- | docs/tutorials/wiki/src/views/development.ini | 1 | ||||
| -rw-r--r-- | docs/tutorials/wiki/src/views/production.ini | 1 | ||||
| -rw-r--r-- | docs/tutorials/wiki/src/views/setup.py | 1 | ||||
| -rw-r--r-- | pyramid/paster_templates/zodb/development.ini_tmpl | 1 | ||||
| -rw-r--r-- | pyramid/paster_templates/zodb/production.ini_tmpl | 1 | ||||
| -rw-r--r-- | pyramid/paster_templates/zodb/setup.py_tmpl | 1 |
18 files changed, 25 insertions, 4 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index 82c1d2d33..1e143daa5 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -24,6 +24,9 @@ Bug Fixes - Deprecated-since-BFG-1.2 APIs from ``pyramid.testing`` now properly emit deprecation warnings. +- Added ``egg:repoze.retry#retry`` middleware to the WSGI pipeline in ZODB + templates (retry ZODB conflict errors which occur in normal operations). + 1.0b3 (2011-01-28) ================== @@ -4,19 +4,17 @@ Pyramid TODOs Before Release -------------- -- Consider per-form_id CSRF instead of per-session global CSRF token. - - https://github.com/Pylons/pyramid/issues#issue/67 (fixing would make it possible to render a static site from a static dir). - Change "Cleaning up After a Request" in the urldispatch chapter to use ``request.add_response_callback``. -- ``repoze.retry`` in ZODB template. - Should-Have ----------- +- Consider per-form_id CSRF instead of per-session global CSRF token. + - I18N support for pyramid_jinja2. See also - http://groups.google.com/group/pylons-devel/msg/ab58353594b135c9 and https://github.com/Pylons/pyramid_jinja2/pull/14 diff --git a/docs/tutorials/wiki/basiclayout.rst b/docs/tutorials/wiki/basiclayout.rst index 884f17840..7fe7daac8 100644 --- a/docs/tutorials/wiki/basiclayout.rst +++ b/docs/tutorials/wiki/basiclayout.rst @@ -187,6 +187,11 @@ The ``egg:repoze.zodbconn#closer`` middleware is in the middle of the pipeline. This is a piece of middleware which closes the ZODB connection opened by the ``PersistentApplicationFinder`` at the end of the request. +The ``egg:repoze.retry#retry`` middleware catches ``ConflictError`` +exceptions from ZODB and retries the request up to three times (ZODB is an +optimistic concurrency database that relies on application-level transaction +retries when a conflict occurs). + The ``tm`` middleware is the last piece of middleware in the pipeline. This commits a transaction near the end of the request unless there's an exception raised or the HTTP response code is an error code. The ``tm`` refers to the diff --git a/docs/tutorials/wiki/src/authorization/development.ini b/docs/tutorials/wiki/src/authorization/development.ini index 054720aa2..1ba746d0e 100644 --- a/docs/tutorials/wiki/src/authorization/development.ini +++ b/docs/tutorials/wiki/src/authorization/development.ini @@ -12,6 +12,7 @@ zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 pipeline = egg:WebError#evalerror egg:repoze.zodbconn#closer + egg:repoze.retry#retry tm tutorial diff --git a/docs/tutorials/wiki/src/authorization/production.ini b/docs/tutorials/wiki/src/authorization/production.ini index 458064388..5c47ade9b 100644 --- a/docs/tutorials/wiki/src/authorization/production.ini +++ b/docs/tutorials/wiki/src/authorization/production.ini @@ -30,6 +30,7 @@ commit_veto = repoze.tm:default_commit_veto pipeline = weberror egg:repoze.zodbconn#closer + egg:repoze.retry#retry tm tutorial diff --git a/docs/tutorials/wiki/src/authorization/setup.py b/docs/tutorials/wiki/src/authorization/setup.py index 38f913961..adfa70c9f 100644 --- a/docs/tutorials/wiki/src/authorization/setup.py +++ b/docs/tutorials/wiki/src/authorization/setup.py @@ -10,6 +10,7 @@ requires = [ 'pyramid', 'repoze.zodbconn', 'repoze.tm2>=1.0b1', # default_commit_veto + 'repoze.retry', 'ZODB3', 'WebError', 'docutils', diff --git a/docs/tutorials/wiki/src/basiclayout/development.ini b/docs/tutorials/wiki/src/basiclayout/development.ini index fcd444cf6..555010bed 100644 --- a/docs/tutorials/wiki/src/basiclayout/development.ini +++ b/docs/tutorials/wiki/src/basiclayout/development.ini @@ -12,6 +12,7 @@ zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 pipeline = egg:WebError#evalerror egg:repoze.zodbconn#closer + egg:repoze.retry#retry tm tutorial diff --git a/docs/tutorials/wiki/src/basiclayout/production.ini b/docs/tutorials/wiki/src/basiclayout/production.ini index 458064388..5c47ade9b 100644 --- a/docs/tutorials/wiki/src/basiclayout/production.ini +++ b/docs/tutorials/wiki/src/basiclayout/production.ini @@ -30,6 +30,7 @@ commit_veto = repoze.tm:default_commit_veto pipeline = weberror egg:repoze.zodbconn#closer + egg:repoze.retry#retry tm tutorial diff --git a/docs/tutorials/wiki/src/basiclayout/setup.py b/docs/tutorials/wiki/src/basiclayout/setup.py index cb3b92347..2d540d65b 100644 --- a/docs/tutorials/wiki/src/basiclayout/setup.py +++ b/docs/tutorials/wiki/src/basiclayout/setup.py @@ -10,6 +10,7 @@ requires = [ 'pyramid', 'repoze.zodbconn', 'repoze.tm2>=1.0b1', # default_commit_veto + 'repoze.retry', 'ZODB3', 'WebError', ] diff --git a/docs/tutorials/wiki/src/models/development.ini b/docs/tutorials/wiki/src/models/development.ini index 054720aa2..1ba746d0e 100644 --- a/docs/tutorials/wiki/src/models/development.ini +++ b/docs/tutorials/wiki/src/models/development.ini @@ -12,6 +12,7 @@ zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 pipeline = egg:WebError#evalerror egg:repoze.zodbconn#closer + egg:repoze.retry#retry tm tutorial diff --git a/docs/tutorials/wiki/src/models/production.ini b/docs/tutorials/wiki/src/models/production.ini index 458064388..5c47ade9b 100644 --- a/docs/tutorials/wiki/src/models/production.ini +++ b/docs/tutorials/wiki/src/models/production.ini @@ -30,6 +30,7 @@ commit_veto = repoze.tm:default_commit_veto pipeline = weberror egg:repoze.zodbconn#closer + egg:repoze.retry#retry tm tutorial diff --git a/docs/tutorials/wiki/src/models/setup.py b/docs/tutorials/wiki/src/models/setup.py index 9538cbbff..daa5e5eb1 100644 --- a/docs/tutorials/wiki/src/models/setup.py +++ b/docs/tutorials/wiki/src/models/setup.py @@ -10,6 +10,7 @@ requires = [ 'pyramid', 'repoze.zodbconn', 'repoze.tm2>=1.0b1', # default_commit_veto + 'repoze.retry', 'ZODB3', 'WebError', 'docutils', diff --git a/docs/tutorials/wiki/src/views/development.ini b/docs/tutorials/wiki/src/views/development.ini index 054720aa2..1ba746d0e 100644 --- a/docs/tutorials/wiki/src/views/development.ini +++ b/docs/tutorials/wiki/src/views/development.ini @@ -12,6 +12,7 @@ zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 pipeline = egg:WebError#evalerror egg:repoze.zodbconn#closer + egg:repoze.retry#retry tm tutorial diff --git a/docs/tutorials/wiki/src/views/production.ini b/docs/tutorials/wiki/src/views/production.ini index 458064388..5c47ade9b 100644 --- a/docs/tutorials/wiki/src/views/production.ini +++ b/docs/tutorials/wiki/src/views/production.ini @@ -30,6 +30,7 @@ commit_veto = repoze.tm:default_commit_veto pipeline = weberror egg:repoze.zodbconn#closer + egg:repoze.retry#retry tm tutorial diff --git a/docs/tutorials/wiki/src/views/setup.py b/docs/tutorials/wiki/src/views/setup.py index 9538cbbff..daa5e5eb1 100644 --- a/docs/tutorials/wiki/src/views/setup.py +++ b/docs/tutorials/wiki/src/views/setup.py @@ -10,6 +10,7 @@ requires = [ 'pyramid', 'repoze.zodbconn', 'repoze.tm2>=1.0b1', # default_commit_veto + 'repoze.retry', 'ZODB3', 'WebError', 'docutils', diff --git a/pyramid/paster_templates/zodb/development.ini_tmpl b/pyramid/paster_templates/zodb/development.ini_tmpl index c95f5cff1..ae9584690 100644 --- a/pyramid/paster_templates/zodb/development.ini_tmpl +++ b/pyramid/paster_templates/zodb/development.ini_tmpl @@ -12,6 +12,7 @@ zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 pipeline = egg:WebError#evalerror egg:repoze.zodbconn#closer + egg:repoze.retry#retry tm {{project}} diff --git a/pyramid/paster_templates/zodb/production.ini_tmpl b/pyramid/paster_templates/zodb/production.ini_tmpl index 3329f1228..ff52a0585 100644 --- a/pyramid/paster_templates/zodb/production.ini_tmpl +++ b/pyramid/paster_templates/zodb/production.ini_tmpl @@ -30,6 +30,7 @@ commit_veto = repoze.tm:default_commit_veto pipeline = weberror egg:repoze.zodbconn#closer + egg:repoze.retry#retry tm {{project}} diff --git a/pyramid/paster_templates/zodb/setup.py_tmpl b/pyramid/paster_templates/zodb/setup.py_tmpl index a6ef572ac..46759b514 100644 --- a/pyramid/paster_templates/zodb/setup.py_tmpl +++ b/pyramid/paster_templates/zodb/setup.py_tmpl @@ -10,6 +10,7 @@ requires = [ 'pyramid', 'repoze.zodbconn', 'repoze.tm2>=1.0b1', # default_commit_veto + 'repoze.retry', 'ZODB3', 'WebError', ] |
