[Zope-Annce] Zope 3 Newsletter: Volume 2, Issue 1

Gary Poster gary at modernsongs.com
Mon Nov 8 21:29:54 EST 2004

Zope 3 Newsletter: Volume 2 Issue 1

   This newsletter describes some of the many exciting projects using
   Zope 3 and also has reports from the Zope Corporation CTO and
   Zope BDFL Jim Fulton and from the principal architect of the CMF,
   Tres Seaver.

   Some news didn't make it to me for inclusion in the newsletter.
   Please send me your news when you can!  Send to gary at modernsongs.com

Table of Contents:

   - Zope X3Final Released

   - (Jim Fulton) Zope X3.1 Plans

   - (Martijn Faassen) Five

   - (Martijn Faassen) Zope 3 Base

   - (Andy Adiwidjaja, Janko Hauser) union.cms: Real-World Usage of Five

   - (Philipp von Weitershausen) modzope

   - (Philipp von Weitershausen) A Zope 3 Book for Beginners

   - (Tres Seaver) Goldegg

Zope X3 Final Released!

   Zope X3 3.0 final has been released, after almost three years of
   development (see
   Give some thanks to the developers who made this possible, and the
   companies who funded the development!  Learn more about Zope 3 with
   the link above and in the developers wiki at

Jim Fulton

   Zope X3.1 Plans

     After our initial release of Zope X3.0, we are beginning to
     contemplate an X3.1 release, possibly as early as January 2005.
     Since the X3.0 release, progress on simplifying the component
     architecture has continued.  Notably:

     - The presentation service has been merged into the adapter
       service.  Now views are really registered and looked up exactly
       like other adapters, although the old programming APIs still

     - The browser menu service has been removed.  Now menus are
       implemented as adapters.

     There has been a lot of work on new features. In some cases,
     features may still not be solid enough for inclusion for Zope
     X3.0. Likely candidates for 3.1 include the following:

     - Session support

     - A new pluggable authentication service based (philosophically)
       on the Zope 2 Pluggable Authentication Service.

     - Principal group support

     - Basic cataloging support, including a framework that allows
       multiple catalogs and other indexing objects to be searched and
       results combined.

     - A new "source" framework, similar to the vocabulary framework,
       that supports selection of values from collections of values
       that are too large to be listed.

     And, of course, bug fixes continue.

Martijn Faassen


     The Five developers have created Five, a Zope 2 product that
     allows you to integrate Zope 3 technologies into Zope 2, today.
     Five works with a straight Zope 2.7. It right now allows you to
     use the following Zope 3 technologies in Zope 2:

     * Zope 3 interfaces
     * adapters
     * pages (views), including skins and layers
     * ZCML

     It is possible to add Zope 3 style views to your own Zope 2
     objects, or to existing ones, even normal Folders!

     Five is currently in release 0.2b and steaming along. It's even
     used in a production Plone site (Oxfam America, done by Enfold
     systems). There was also quite a bit of Five buzz at EuroPython,
     the Castle sprint, and the Plone conference.

     Download, documentation and developer info can be found here:


   Zope 3 Base

     Zope 3 Base -- "All your bobobase are belong to us"

     The Zope 3 Base project aims to offer an approachable area for
     developers of Zope 3 related software. It sits somewhere been the
     CMF collective and the zope.org repository; less chaotic than the
     collective, but more freewheeling than the zope.org repository.
     The projects Five and Sqlos (SQLObject integration into Zope 3)
     are the most actively developed projects in the base right now,
     but there's room for more!

     If you have a Zope 3 project and you'd like to publish it and
     develop it further with a group, and for whatever reason you
     don't feel ready to contribute it to the zope.org repository, the
     Zope 3 base is there for you. Talk to us! We've got an irc
     channel: #z3-base on freenode.net.

     The Zope 3 base has possibly the cutest Zope 3 related website on
     the web. Admittedly that isn't hard at this stage:


Andy Adiwidjaja, Janko Hauser

   union.cms: Real-World Usage of Five

     union.cms (http://dev.unioncms.org/utrac) is an effort of the
     biggest union in Germany to develop a new GPL licensed content
     management system building on the experiences of the current Zope
     2 content management systems such as Plone and CPS.

     Starting with homegrown backports of parts of Zope 3 like the
     adapter mechanism, the developers of union.cms were some of the
     early adopters of Five (http://codespeak.net/z3/five/), a product
     developed by Infrae that brings many of the most important
     technologies of Zope 3 into the world of Zope 2 development.

     The union ver.di has strong requirements for content reuse and
     heavy multi-site setups. It wants to consolidate all the
     different web sites into one centralized managed system. For this
     each site must be configured in a controlled but flexible way.

     Thanks to Five, union.cms now uses schemas and widgets to develop
     content objects easily, which are assembled into documents.
     Content objects and documents are stored in a central repository
     and can be placed in pages to build different site hierarchies,
     which serve as one of many possible views on the content of a
     site. A channel mechanism will allow the reuse of basic content
     and complete documents between the many different sites.

     View classes are used to attach different views to the various
     objects in a site or the repository.  With this basic separation
     of content and views, different concepts like in-site editing or
     workspace-based editing can be mixed.  With the help of adapters,
     new functionality can be added to each object in a site without
     the need to deploy new basic content types. Overall there will be
     a stronger separation between basic content and applications
     working on this content.

     ver.di will support the further development of union.cms in the
     coming year, and plan to migrate most of the current sites to the
     new system.  Several other German unions have already signaled
     their interest in adopting union.cms in the future.

     We as developers are happy to have such strong technologies at
     our disposal and are amazed how much work is already done. We
     hope to make further good usage of these powerful software

Philipp von Weitershausen


     Back in May on an 8 hour train ride, I tried to prove that Zope 3
     was not only extensible and highly customizable at the
     application level but also at the low level parts such as the
     HTTP server. Since I didn't know twisted, I tried mod_python, the
     Apache 2 module that allows one to write handlers in Python.

     By the time the train pulled into a station, I was able to load a
     Zope 3 instance within mod_python and process Apache requests
     using zope.publisher by adapting them to IBrowserRequest. It
     still got a few things wrong, e.g. URL path segments, etc. but
     these only require minor adjustments. My conclusion was that
     zope.publisher and its peripherical components in
     zope.app.publication are unnecessarily complicated. Despite this,
     it seems quite possible to use a different HTTP server machinery.

     I have not had the time yet to get it working 100%. I have also
     not thought about threading issues and the like. If anyone with
     Apache (and possibly mod_python) experience wants to pick it up,
     feel free to do so! The source code is available under the ZPL at
     the z3base, http://codespeak.net/svn/z3/modzope/trunk.

     Lightning talk presentation at EuroPython:

   A Zope3 Book for Beginners

     At the end of last year, I had the itch of improving Zope 3
     documentation for beginners. Beginners meaning people with web
     application experience (e.g. Zope 2), but no Zope 3 knowledge
     whatsoever. I finally decided to scratch that itch by writing a
     Zope3 book. At that point I would like to thank Jim and Stephan
     who encouraged me to go for it.

     Then, after knocking on many doors and receiving many rejections
     due to supposedly unsuccessful Zope 2 books, German-based
     Springer Verlag decided in May to publish my book! Since then I
     have been writing on it constantly and if everything goes
     according to plan, it will be available in stores by January.

     The book's target audience are web developers. Knowledge of
     Python is assumed. The first part tries to flatten the Zope 3
     learning curve by gradually introducing the Component
     Architecture and other basic concepts, the second and third parts
     focus on the numerous features that the Zope X3.0 release brings
     with it. I hope that the book will close the gap that Stephan's
     book has intentionally left open--a thorough introduction for
     people coming from Zope 2 and other web technologies. Special
     sections compare Zope 3 features and concepts with their
     predecessors from Zope 2, thus ease the migration process.

     Though published by a German company, the book is written in
     English and published internationally.  I would like to thank
     those people who have given me their invaluable technical and
     non-technical advice and made the whole project possible, most
     importantly Jan Smith, Sidnei da Silva, Fred L. Drake, and Paul

Tres Seaver


     At the Castle Sprint 2004[1], representatives from the major
     Zope2-based CMS projects met to discuss common needs and possible
     collaborations in the Zope3 CMS space.  The major result of the
     sprint was an agreement to work together, under the ZPL but outside
     the Zope3 core, in a project nicknamed "Goldegg" (for the castle).
     The group outlined requirements for common infrastructure[2], and
     prototyped several features, including Xickens[3] (a minimal content
     management application, designed as an integration testbed for other
     components), and XickenPipes (a "pipeline" model for enhancing a
     site's UI after the initial, application-driven rendering).  The
     group really enjoyed[4] the chance to work together, and organized a
     mailing list[5] for future collaborative work.

     [1] "Sprint Announcement",

     [2] "Sprint Wiki",

     [3] "Xickens SVN",

     [4] "Castle Sprint Pictures",

     [5] "Goldegg mailing list information",

More information about the Zope-Announce mailing list