Tim Peters wrote at 2005-8-24 16:10 -0400:
>> I have a *package* (similar to Archetypes SQLStorage) that wants to go
>> after everything that might possibly change attributes whether those
>> changes are done by another component from me or any package developped
>> by someone else.
>Dieter, how does order= solve that for you? There is no value you can pass
>to guarantee your hook will run last.
It gives a configurator a global scale (order) to assign
priorities to the various components he need to integrate.
While the component developper (me, Nuxeo, ...) cannot assign
an order value to fulfill the requirements, such a global scale
it necessary that the integrator has a chance to do so.
>As Jim said earlier (albeit obliquely), with the old method you could
>guarantee that your hook ran after all hooks registered by the time a commit
But obviously, this is not enough.
Think about two components that want to come late (mine and that of Nuxeo),
then they both may use this trick -- and who will win?
You need *global* knowledge to prioritize the competing hooks.
The "order" argument provides a general and
quite understandable way to turn such knowledge into a configuration
for the components.
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org