[ZODB-Dev] RE: [Zope-Annce] ZODB 3.2.4 release candidate 1released

Tim Peters tim at zope.com
Tue Sep 14 10:58:34 EDT 2004


[Tim Peters]
> ...
>> A status update on the "make a failing commit() stick" idea ...

[Chris McDonough]
> This all sounds excellent, thank you!

You're welcome.

> This is implemented as a "transaction manager" (is that the right term
> even)?

In the end, no, it's part of Transaction.commit().  I had so little trouble
with the ZODB test suite when first enabling this that I talked myself into
hoping very little correct code is affected.  Turns out there was only one
test that expected a failing commit to start a new transaction, and that
assumption was explicitly noted in that test.
 
> And if so, are you thinking of making it the default one for Zope
> 2.8 / 3.0?

Well, for ZODB 3.3 final.  Since 3.3 is still in beta, but can't remain in
beta much longer, "right now" is essentially the last chance to make an
incompatible change.  And this is incompatible, no matter how hopeful I am
that it's 999 parts good to 1 part bad.

It would be possible to add an argument to the Transaction constructor to
choose "old" or "new" behavior here, and so also possible to provide
distinct transaction managers that created Transactions with old or new
behavior.  I strongly prefer not to do that, though -- I can't think of a
real use case where it's in any sense a burden to need to explicitly abort()
or begin() after a transaction commit raises an exception.  So I don't want
to add more "optional behaviors" that nobody understands, one of which is
doomed to remain essentially unused and so breaks over time.

However, in the SVN setup, the ZODB code isn't shared by any Zope checkout
(2.8 and 3 and X3 all have distinct copies of ZODB, made at varying times in
the past), so there won't be a way to know how this affects any of the Zopes
before someone explicitly stitches a new ZODB into them, one at a time.  I
don't think the Zope 2.8 trunk has gotten a new copy of ZODB since the day
Jim created the SVN repository (I haven't stitched one in there, and AFAICT
2.8 still lacks a project manager).



More information about the ZODB-Dev mailing list