[Zope-dev] Proposal: Merge philikon-aq branch into Zope trunk

Hanno Schlichting plone at hannosch.info
Thu Apr 17 06:27:42 EDT 2008


Hi.

I'd like to propose to merge the philikon-aq branch into Zope trunk aka 
Zope 2.12.

Scope:

For those unfamiliar with the branch, it makes Acquisition aware of 
__parent__ pointers. This makes it unnecessary to use Acquisition 
mixin's for Zope 3 code to use them in Zope 2 code. The security 
machinery of Zope 2 will still be able to work as expected.

Status:

All tests in the Zope itself pass. New tests have been written for all 
edge cases found during the development of the branch.

As a real world exposure Plone has been used to test the branch. All 
tests in Plone except one edge-case of a monkey-patch loaded package 
still pass. Plone in current versions make heavy use of Zope 3 and Five 
technologies inside Zope 2, so I see this as a very good indicator for 
the readiness of the branch. The one edge-case is something which needs 
to be fixed in Plone, as it doesn't make use of any official API.

Risks:

Using Zope 3 code inside Zope 2 has lead to various 'inventive 
solutions' to work around problems. Some of these have not used official 
API's. It is possible that some of those might need to be adjusted. 
Adjusting them should be straight forward in most cases and mostly 
consist of removing the hackish workarounds.

The second problem that might arise, is that the implicit assumption 
that every object inside Zope 2 inherits from Acquisition base classes 
no longer holds. Code that relies on the various aq_* attributes to be 
there need to be adjusted to use the Acquisition methods instead. This 
change is trivial to do and doesn't need to be done at first. It only 
needs to be done when you want to allow direct Zope 3 code in your 
application. As part of the branch all code in Zope 2 itself have been 
adjusted to use the aq_* methods.

Timeline:

I would like to do the merge as soon as possible, so people can easily 
test it against all their applications and report back problems.

Merging it into Zope trunk will get it into the Zope 2.12 release which 
is at this point not scheduled yet, but is unlikely to get a release 
before early 2009. This should give us plenty of time to test.

Opinions, votes?

Hanno

P.S. Thanks to philiKON for doing most of the work on this branch :)



More information about the Zope-Dev mailing list