Five 1.2b and 1.3b released!
What is Five
Five is a Zope 2 product that allows you to integrate Zope 3 technologies into Zope 2, today. Among others, it allows you to use Zope 3 interfaces, ZCML-based configuration, adapters, browser pages (including skins, layers, and resources), automated add and edit forms based on schemas, object events, as well as Zope 3-style i18n message catalogs.
We've tried to keep the Five experience as close to Zope 3 as possible, so this means that what you learn while using Five should also be applicable to Zope 3, and viceversa.
More information about Five can be found on our website, http://codespeak.net/z3/five/.
Five 1.2 is the last release line of Five to work with Zope 2.8 and its included Zope X3 3.0. It does not work on Zope 2.7 anymore (use Five 1.1 if you're bound to Zope 2.7)
Compared to the 1.1 release a month ago, it introduces the following compelling list of new features:
- Local site support
Five now supports local sites in Zope 2. Sites are a concept known from Zope 3 and similar to CMF's sites (only that they can be nested). Thanks to Sidnei da Silva for the initial development back in March, Lennart Regebro and Philipp von Weitershausen for bringing it up to date for inclusion into Five 1.2.
- Improved event support
Five can now make standard Zope 2 containers (aka object managers) send Zope 3-style events for adding, moving, copying and deleting contained objects, instead of calling their manage_afterAdd, manage_beforeDelete, etc. methods. Thanks to Florent Guillaume for thinking through this non-trivial matter and implementing it.
- Marker interfaces utility
Five now includes a feature known from Zope X3 3.0's introspector, the ability to set marker interfaces on objects to influence their behaviour (such as view or adapter look-up). This also includes a browser page with a page template macro for doing so through-the-web. This feature is based on Sidnei da Silva's Plone-based product Flon. Thanks to him for the original implementation as well as Godefroid Chapelle, Whit Morriss and Yvo Schubbe for bringing it to Five 1.2.
- Class registration through ZCML
It is now possible to register Zope 2 classes through ZCML so that they show up in the ZMI as addable meta types. This basically obsolete's the boiler-plate ``initialize()`` function in products' ``__init__.py`` files, as well as equipping classes with a ``meta_type`` in the first place. Thanks to Yvo Schubbe for suggesting and implementing this great helper for cleaning out Zope 2 boiler plate code out of products.
- New test runner
Five 1.2 (and only 1.2) includes a forked copy of Zope 3.2's improved test runner which brings, among others, better doctest debugging and support for running tests on different levels and layers. Thanks to Tres Seaver for integrating this into Five 1.2.
For more information please consult the CHANGES document.
Five 1.2b can be downloaded at http://codespeak.net/z3/five/release/Five-1.2b.tgz.
Five 1.3 is a straight port of Five 1.2 to Zope 3.2 which will be included in this December's Zope 2.9 release. Five 1.3 itself will also be part of Zope 2.9. It does not introduce any new features compared to Five 1.2, however, some restructuring has been made:
- Most of the event work has been folded into Zope 2. That means that Zope 2.9 will ship with event-enabled object managers out of the box!
- Several legacy packages were removed from Five as they are now included in Zope 2, such as Zope 3-style interfaces for OFS et.al. as well as the new test runner
We are not providing a downloadable tarball of Five 1.3b. Instead it has been integrated into Zope 2.9 with which it will ship. To try out Zope 2.9, you have to currently check out the Zope 2 trunk from the subversion repository.
About the Zope 3 Base
Five is part of the Zope 3 Base project, which aims to offer an approachable area for developers of Zope 3 related software. More about the Zope 3 base and its projects can be found on the project website, http://codespeak.net/z3/.