summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES.txt3
-rw-r--r--TODO.txt6
-rw-r--r--docs/tutorials/wiki/basiclayout.rst5
-rw-r--r--docs/tutorials/wiki/src/authorization/development.ini1
-rw-r--r--docs/tutorials/wiki/src/authorization/production.ini1
-rw-r--r--docs/tutorials/wiki/src/authorization/setup.py1
-rw-r--r--docs/tutorials/wiki/src/basiclayout/development.ini1
-rw-r--r--docs/tutorials/wiki/src/basiclayout/production.ini1
-rw-r--r--docs/tutorials/wiki/src/basiclayout/setup.py1
-rw-r--r--docs/tutorials/wiki/src/models/development.ini1
-rw-r--r--docs/tutorials/wiki/src/models/production.ini1
-rw-r--r--docs/tutorials/wiki/src/models/setup.py1
-rw-r--r--docs/tutorials/wiki/src/views/development.ini1
-rw-r--r--docs/tutorials/wiki/src/views/production.ini1
-rw-r--r--docs/tutorials/wiki/src/views/setup.py1
-rw-r--r--pyramid/paster_templates/zodb/development.ini_tmpl1
-rw-r--r--pyramid/paster_templates/zodb/production.ini_tmpl1
-rw-r--r--pyramid/paster_templates/zodb/setup.py_tmpl1
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)
==================
diff --git a/TODO.txt b/TODO.txt
index 6c9696fc0..750bbf56f 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -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',
]