My Sorrento Plone Sprint Report -

My Sorrento Plone Sprint Report

Sorrento Sprint 2008

I am sitting at the Naples airport right now after having a great week in Sorrento, Italy at the Sorrento Sprint. There have been a lot of cool people there and lots of interesting discussions (one of these is recorded and waits to be included into my next TopfCast) plus of course lots of coding on Plone.

For start here is a Quicktime VR of the group photo which spanky produced (great work!).

(for photos click here and if you upload yours make sure to tag them with „sorrentosprint2008“).So what have people been working on? One of the big topics for this sprint was certainly the future of Archetypes which is a framework for Plone allowing the easy creation of new content types. Unfortunately it has aged a bit, Plone changed it’s structure and new requirements came up which led to the decision to maybe replace it in the long run. Right now the seem to be two approaches, one named Dexterity and led by Martin Aspeli, the other one is called Devilstick and by Jens Klein and Robert Niederreiter. While the first one is more in the planning stage, the latter one already has an implementation (which does not mean that all the planning is done yet). As a type framework is of central interest to the Plone community it’s no wonder that there was lots of dicussion and coding work done at the sprint esp. as it’s not clear yet what the best approach might be. As I see it Devilstick and Dexterity have many things in common (like both want to support through-the-web type definitions with the possibility to export them to the filesystem) but might differ in some aspects. Because this topic seems to be hot these days I also recorded a discussion between me, Jens, Robert and Alec Mitchell who happens to know both approaches in more detail and thus is able to comment on both.

Other topics have been the newsletter framework „Singing and Dancing“, a better test suite for the AJAX framework KSS, PloneGov and work on integrating the search engine Sapient into Plone. Christian Schneider wanted to make a more complete overview with links to code and more so stay tuned for his report. You can also check the Sprint Page on OpenPlans for summaries (and if you have attended the sprint and not yet written a summary with links etc. please do so!)

What I worked on

I sort of worked on many things. First of all I wanted to finish my work on microformats support for Plone. The only missing piece for this was support for the rel-tag microformat which I wanted to provide in the keywords viewlet (which prints the list of categories a content object is filed under). The actual attribute rel=tag was already existent but the link itself was pointing to the search results page with the category in question as query parameter. As this is not allowed in the rel-tag microformat I wanted to change this to a path of the form myplonesite/tag/ where „tag“ is sort of the namespace and „tagname“ is the category in question (tag and keyword and category are the same in my writings here right now as there is only one concept in plain Plone. This might change in the future though).

To make a long story short: This work is finished right now and was mostly done by Martin Opstad Reistadbakk (martior on IRC) who not even was on the sprint but in the IRC channel at the right time. So kudos to him for coming up with probably the best solution to the problem. I will post a more technical explanation of Traversal adapters and how we use them later.

Local Configuration

The other thing I wanted to work on has been commenting for Plone (as posted here already). For this I first wanted to create a tool for providing a means for local configurations. With local configurations I mean the possibility to not only configure a Plone site globally via the control panel but also on a per sub-tree basis. In fact some components in Plone implement something similar already but specialized to their problem. One example is the portlet engine where you can define portlets for a subtree, another one is the content rules engine.

My goal was to provide an easy way for an application to

  • store and retrieve settings
  • register with a local control panel for configuration
  • easily enable or disable their configuraton settings for a subtree

The main motivation for this was to provide local settings for commenting. Imagine being able to enable/disable commenting, adjust moderation, spam protection and much more.

I already implemented a basic version of this during the SnowSprint but discussed a better way to implement it with Alec Mitchell using local Site Managers. This is what’s also implemented right now. Expect a post on a more technical basis soon. What’s missing though is the actual control panel but this will hopefully be added soon.

On the actual commenting front Davide Moro was joining me on the last day where we tried to get the user interface for replying to comments working which we also finished. It’s more a prototype right now though but it’s good to be able to also see something on the actual Plone site. Davide wanted to add a test for this so we also have the testing infrastructure in place even if we might have to change it again at some point to adjust to a better UI implementation.

My next steps will be to finish the local configuration stuff and to integrate it again with the commenting package. After that I will think either about workflow or how to create plugins.

In other news I also finished my DataPortability video for which the deadline is today and I will post this later.

So all in all it has been a great experience. Cool people, productive times and even 2-3 days of sun at the end! (and on the sighseeing front I at least saw Pompei). So lots of thanks to abstract open solutions for organizing this and to the sponsors redturtle technology and redomino.

Looking forward to next year and of course and next sprint.