Kudos to Florent Guillaume!

Florent Guillaume's work to bridge back the Zope3 event model to Zope2 is an amazing feat.

Because of its long history of "containment-centric" development, Zope2 has grown a number of organic APIs for managing trees of objects. The most notable of those APIs is the trio, manage_afterAdd, manage_beforeDelete, and manage_afterClone. Zope2 itself has has any number of bugs related to the implementation of these APIs in varios bits of framework code. Even worse, they have been prolific bug magnets for frameworks and applications built atop Zope.

Florent has been working steadily this fall to de-magnetize Zope2, leveraging the work done to rationalize recursive containment / notification in Zope3. He has documented that work in a couple of very readable blog posts: