Goldegg / CMF 2.0 Sprint Wrap-up
tl;dr
The sprint at Schloss Goldegg was amazingly productive, and unlike some sprints, seems to have generated momentum for work beyond the tasks accomplished at the sprint.
Tasks Completed
Calvin Hendryx-Parker and Paul Everitt produced an amazing XUL-based "type designer", which allows the "business user" to specify one or more schemas for content types via a GUI. The tool allows the suer to attach "stock" schemas to the type (e.g., Dublin Core), and can then upload the type description as RDF to the site for processing.
Mike Pelletier and Yvo Schubbe ported / rewrote the 'folder_contents' skin as a Five view for CMF, making it substantially clearer and faster.
Mike and Deo ported a number of Plone portlets to Five views.
I tested Frostbite against Plone 2.1: on the same machine where Frostbite shaved the homepage of CMFDefault site down from ~22 ms to ~20 ms, the "frozen" Plone homepage rendering time dropped from ~750 ms to ~270 ms.
I published the filesystem export / import "architecture document":/obzervations/2005/cmf_filesystem_dump_reload_20050923.html and landed the proposed split of GenericSetup / CMFSetup, with substantial help from Yvo.
Yvo cleaned up and landed the stab I had made at making Zope3 interfaces "primary" in CMF, with Zope2 interfaces maintainted for BBB via a "reverse bridge". He also landed his GenericSetup code for dumping and loading catalog configuration.
Florent Guillaume ported the remaining CMFonFive features down into CMFCore / CMFDefault, making the product unnecessary for "CMF 2.0" use.
Whit Moriss and Godefroid Chapelle landed Sidnei's Flon marker interface work into Five, including UI for setting such interfaces from a Five view.
Jim Fulton and I added a (temporary) fork of Jim's "new, doctext-friendly testrunner", http://svn.zope.org/zope.testing. to FIve (as 'Products.Five.testing'), in order to ease the debugging of doctest-based tests.
Martijn Faassen did a lot of work toward a "Five 1.3" branch, which will be the version included in Zope 2.9, and thus needs to be compatible with Zope 3.2. His work uncovered a number of the "open" issues (see below) which, if implemented, would make it possible to rip lots of code out of Five.
Assigned Homework
I am on the hook (just committed it, actually) to provide sample adapters for export / import of the content types provided by CMFDefault. I also plan to extend the "Frostbite":/home/tseaver/software/Frostbite product to permit generation of "first pass" Zope3 view component code from templates and scripts.
Kapil will continue implementing filesystem export / imports for Archetypes-based content types.
Florent Guillaume is working out the container and content events, including improvements to Five's own event generation.
Lennart Regebro is working on refactoring / tidying the "local site manager" work for Five, and expects to commit his new branch within a couple of weeks.
Whit and Mike Pelletier are working on mapping CMFFormController logic onto Five / Z3 views.
Jim Fulton will work on tidying up the security machinery in Zope 2.9 to use '__parent__' rather than acquisition wrappers, and will modify acquisition to have the wrappers provide this attribute. This change will allow us to drop the requirement that protected Five views derive from 'Acquisition.{Ex,Im}plicit'.
Ben Apple and Whit will continue work on their "skin analysis tool", which may ease porting CMF / Plone and related products to FIve views.
Tasks Up for Grabs
The following tasks were outlined at the sprint, but don't have anyone currently on the hook to do them (hint, hint):
Deprecating the Zope2 version of ZPT / TAL / METAL in favor of the Zope3 versions; if we manage to land this for Zope 2.9, then Five will be able to rip out lots of code which abuses Z2 templates to make them work in views.
Add a lightweight "security proxy" (AKA "Martijn proxy") to Zope 2, and revise the security framework to use either thsee proxies or the more strict Zope3 proxies for all "non-rocks" (with control of the choice in the product author's hands).
Add optional support to ZPublisher for doing the automatic form decoding (to Unicode) currently done by Five's add and edit views.
Follow-up Activities
We are working on a sprint (perhaps in Fredericksburg) in the third week of October to bang out "punch list" items for a CMF 2.0 alpha. Geoff Davis, Whit Moriss, and I are currently on the list; Jim Fulton has offered us space at ZC. I'm hoping that Chris McDonough (at least) might be able to attend. Please let me know if you might be interested.
Cignex hopes to sponsor a "packaging sprint" in San Jose in the fourth week of October, to work on tidying up the packaging CMF, Plone, and a set of add-on products, e.g., using 'zpkg' and / or 'setuptools".
Open Issues
Are we still on track to release CMF 2.0 alpha in Q4? If not, can we fix that, or would we be better off delaying it in order to take advantage of Zope 2.9 / 3.2?
Can we find / enable other volunteers to work on the remaining tasks? In particular, Jens Vagelpohl would like to work on viewifying other CMF skins, but would like a clearer set of "best practices" outlined for that task.
Sprint Information
The original sprint page notes the proposed scope and participants, including both the "CMF 2.0" team and the "AGXNG" team.
The CMF 2.0 Goldegg sprint page captures the "white board" of tasks we were pursuing. It also identifies several new tasks, including some at the Zope level, uncovered during that work.
Mike Pelletier blogs enthusiastically about the atmosphere, environment, and outcomes of the sprint.