[Zope-dev] Zope 4 roadmap

Laurence Rowe l at lrowe.co.uk
Thu Nov 17 14:46:54 UTC 2011


Here's my current understanding of the Zope 4 roadmap.


Zope 4
------

Significant progress has already been made on the following features
and I expect they should all land in time for a Zope 4 release:

- Storing parent pointers (elro, davisagli): we have a branch of Zope
that changes OFS to store parent pointers on objects implementing
ILocation and fixed the issues that arose in copy/cut/paste and zexp
export code. There's an issue remaining with Acquisition, where we
lost some protection against cycle protection - Hanno continues
working on this. See also:
http://wiki.zope.org/zope2/SetParentAndNameInOFS

- Remove XML zexp export (davisagli).

- Catalog using intids (rossp): we have branches of Zope, ZCatalog and
CMF which change the catalog to use intids as their internal uid and
rid. This needs more testing, but looks very promising. Currently it
uses plone.app.intid / five.intid to maintain an intid to physical
path mapping. Once the parent pointer work is stable, we can stop
doing this and load objects directly from the database connection

- Chameleon (chaoflow): Florian worked on making Zope use Chameleon by
default. This works for the most parts, but there's some problems left
in tests, as Chameleon wants an utility to be registered but a lot of
tests in Zope and CMF don't use ZCML test layers.

- WebOb (garbas): Rok worked on bringing in WebOb as an underpinning
for the request/response objects and making both API's available at
the same time. I think the request is done and a good deal of the
response works. Doing this means we can deprecate parts of the old
request API and encourage the use of the more standard WebOb API.

- WSGI (matthewwilkes, hannosch): We fixed the bugs that had been
reported about using the current WSGI support (mod_wsgi problems,
forced dependency on repoze.who) on trunk and the 2.13 branch.
Afterwards Matthew continued on a branch to remove the ZServer/medusa
from Zope and leave only the WSGI publisher in place.

- Decorators for AccessControl (chaoflow).


Future releases (Zope 5, 6, etc.)
---------------------------------

There has been some discussion on these topics but not much in the way
of code yet:

- Traversal Simplification. Remove attribute lookup from default traversal.

- Unicode IDs in OFS

- Remove __allow_access_to_unprotected_subobjects__=1 from OFS.SimpleItem.Item

- New ZMI

- Move authentication out to WSGI middleware.


Long term
---------

- Move to WebOb as our request object. The wider Python web framework
community seems to have settled on WebOb as their request object of
choice, so to facilitate sharing of software components with other
projects we should consider making WebOb our request object too
(instead of just wrapping it). This will require buy-in from the wider
ZTK community as the ZTK components will need

- Move to Python 3.


Laurence


More information about the Zope-Dev mailing list