Personal tools
You are here: Home Events Sprints Past Sprints Norwegian Archipelago Sprint - April 2006 Archipelago Sprint Report Report from the Archipelago Sprint
Document Actions

Report from the Archipelago Sprint

by Alexander Limi last modified May 1, 2006 - 23:38

The Archipelago Sprint in Norway just ended, here is a report on what was done at the sprint, and a sneak peek at what may end up in the upcoming Plone 3.0 release.

Report from the Archipelago Sprint

Sunset at the Archipelago Sprint

First of all, let me say that this was an amazing sprint, lots of work got done, there was a level of excitement and buzz that you could feel when walking into a room - everybody was talking, coding, smiling, laughing and having a good time. The weather was so-so - a bit cold for our Brazilians, but we had a couple of days where the sun turned up and showed the beautiful Norwegian island from its best side.

Outside of sprinting, people went canoeing, walked around the island (it is an old military base with some interesting installations, and people went out on a charter boat safari.

The overall themes of the sprint were Zope 3 and AJAX — people were really digging into Zope 3 technologies like viewlets, adapters, views, events, interfaces, utilities, etc. Most of the code produced leveraged Z3 technologies in some way.

Read on for the full summary of events (you might want to grab a cup of coffee first, this is going to be long ;).

Highlights

Shamelessly stolen from Martin's mail to the list, here are the highlights of the sprint, and some shouts out to our excellent sprint people:

Henri, Trollfot and Pelle
...who climbed a mountain to get down and dirty with Zope 3 - and polished off a very nice piece of code.
David, Jonathan, Denis and Osman
...who exceeded expectations (including their own, I think) with a fully Zope3-enabled help infrastructure that, as Laurence pointed out, will take Plone up to a whole new level.
Godefroid and Ben
...who win the Most Insistent Argumentation Award. Balasz, Florian and everyone else who put up with the AJAX discussions (and managed to make some headway to boot!)
Martin Heidegger
...who made us the coolest Ajax-behaviour-enabler ever.
Dough and Victor
...who made the backend and prototype front-end of the one thing Limi has been talking about for longer than most of us can remember.
Alec Mitchell
...for going into the murky bowels of Five and coming out with the UI technology everyone was talking about - Viewlets. Honourable mention for stumbling into most rooms drunk.
Geoff
...For making Plone about 100 times faster (and making it twice as fast again on the train back).
Dorneles, Geir, Helge and Christof
...for getting us on the way to plone.portlets - which will rock.
Voldomyr
...for putting up with IE whilst fixing visual bugs.
Stefan
...who almost finished something in the end (and hopefully removed those insane errors about things being un-cataloged twice)
Danny
...for keepin' it simple (the sharing page will never be the same again).
Laurence
...for showing us that we don't need to write HTML anymore with formlib and zc.table. Word.
Martijn
...for putting back the history tab with one insane ZODB surgical strike.
Raphael and Jean-Francois
...who removed one of Plone's main embarassments - locking.
Christian
...the man with the camera: Best Sprint Reporting Ever Award.
Jimmy and Jan
...for making the workflow UI suck less, and for working with Raphael & co at finally landing Plone with some workflows that people understand.
Andi
...who wrote some really cool code that'll stop broken links cold.

So what did they really do? My attempt at a summary follows:

Workflow Enhancement Team

Jimmy Small, Jan Murre, Danny Bloemendaal (UI), Raphael Ritz, Alexander Limi (UI)

Implementing
PLIP 26, PLIP 153
  • ZMI controls to be able to compare the permission settings on different states
  • Built the new workflows that will be in Plone 3.0
    • Community Workflow (current Plone WF)
    • Simple Publication WF (new standard)
    • Intranet/Extranet Workflow
  • Creating a new configlet to control types (see PLIP 153)

Status
Workflows should be ready by the end of the sprint, there a UI design mock-up, goal is to have a somewhat functional version by the end of the sprint.

Link Integrity Team

Andreas Zeidler

Implementing
PLIP 125
Goal
When you have a CMS with pages and resources linking to each other, you are going to have broken links or image references if you delete something that is referenced in another document. The goal is to introduce references on save, so that all objects that reference each other know about each other.

Status
It parses the text on save using Zope 3 events, creating references between all the objects involved. When deleting an object that is referenced from somewhere else, it presents a warning telling you that you will break links if you do this. It shows you which items is referencing the one you are trying to delete. In the future, it will do the same when you move objects, telling you that you need to update the documents that are referencing the object you are trying to move. Implementation exists in the Collective as the module LinkIntegrity.

Generalized Previous/Next links Team

Henrietta Ray, Pelle Krøgholt, Soheil Chelfouh

Implementing
PLIP 144
Goal
To enable general next/previous link support on items in folders. This means that you can have a folder of images, documents, links etc - and get previous/next links generated automatically when viewing the item itself. This has a setting on the folder, and folders inside other folders will use the same setting as their parent by default.

The team has never worked with Zope 3 technologies, so one of the big wins is that they were able to utilize Z3 adapters and interfaces to enable this functionality. This results in a very clean implementation. They also spent about half the time writing tests.

Status
Implementation finished.

Locking Team

Raphael Ritz, Jean-François Roche, Alexander Limi (UI)

Implementing
PLIP 145

Implement automatic web-accessible WebDAV locks on all content.

  • UI to unlock locked content
  • Automatic locking on edit
  • Automatic lock release on Save, Cancel or browsing away from the page
  • Integrated Enfold's Lock Manager code to have a central control panel to locate locked objects and be able to unlock them
  • Supported for all Archetypes-based types
  • First implementation is global, final version will be per-type.
  • Final version will also investigate keep-alive functionality.

Status
Product is essentially done, it works, has tests and is available on the PLIP branches (Plone, Archetypes + Collective product LockManager)

Revision History Team

Martijn Peters, Benjamin Saller, Danny Bloemendaal (UI)

Goal
Fix revision history in Plone, provide a new UI for browsing revision history. The fixes for the revision history support will go into Plone 2.5, the new UI will go into 3.0.
Status
Goal is to have a working prototype including UI at the end of the sprint. History revision code is complete.

Sharing Page Improvements Team

Doug Winter, Victor Baumann, Danny Bloemendaal (UI), Alexander Limi (UI)

Goal
Massively simplify sharing page. The current sharing page is a monster, and we can simplify it greatly. By introducing two new roles Reader and Editor, we can make the sharing page be very simple - as illustrated by the screenshot.

Status
Based on Limi's initial designs we made a few improvements, and added inline search for users with the ÜberSelectionWidget prototype from Doug and Victor. We currently have a page that is able to search the users/groups and put them in the sharing table.

Schemata Improvements Team

Florian Schulze, Leonard Norrgård, Alexander Limi (UI)

Implementing
PLIP 127
Goal
Split up the Edit screen of the basic content types into several schemata, and have a client-side transform to display this as a tabbed interface that has instant reponse. Behind the scenes, this is implemented using fieldsets, that are transformed into the tabbed interface if you have JS enabled. This also allows us to get rid of the Properties tab.

Download movie showing how it works

Status
Proof-of-concept code complete, real implementation almost complete. Some issues in Kupu will have to be resolved, but it's looking good. Should have something ready at the end of the sprint.

Portlets / Composite Page / Dashboard Team

Martin Aspeli, Geir Bækholt, Dorneles Treméa, Christof Hammerle, Helge Tesdal, Alec Mitchell

Goal
Find a common abstraction for constructing portlets, composite pages and dashboards. Make it possible for specific content types to render themselves as portlets.
Status
Zope 3 viewlets and content providers have been ported to Five, enabling this abstraction. We have a design to plug PlonePortlets into the Z3 component architecture, and simplify the concepts and abstractions. Implementation work has started for the main engine. Anything will be able to be a portlet as long as it implements the IPortletData interface. This means that Z3 types, Archetypes and anything else can render itself as a portlet.

Extended markup support

Tom Lazar, Christian Scholz

Implementing
PLIP 149
Goal
Make is easier to plug in support for new markup types. Make the default markup format configurable. Show this by enabling Markdown and Textile support.
Status
There is a site property governing what is the default markup format, and a working Markdown implementation.

Contextual Help Team

David Convent, Jonathan Lewis, Denis Mishunoff, Osman Tartanoglu

Goal
Create a way to provide contextually relevant help pages in the interface.
Status
Used ContextualHelp product and refactored it to use Zope 3 component architecture. Made it possible to import help pages from the file system. Demoed working version at the end of the sprint.

ÜberSelectionWidget Team

Doug Winter, Victor Baumann, Danny Bloemendaal (UI), Alexander Limi (UI)

Implementing
PLIP 124
Goal
Have a general UI widget to do complex selections of a set of items (users, content objects, data sets) from very large sets of items.
Status
Server-side support for the widget, using the Sharing page as the prototype for this. Demoed a functional demo of the widget at the end of the sprint.

CMF 2.0/2.1 Team

Hanno Schlichting

Implementing
PLIP 148
Goal
Prepare Plone for CMF 2.0 and 2.1 and Zope 2.10.
Status
Plone runs on CMF 2.0 and 2.1, what remains is to figure out which updates go in Plone 2.5 and which should be in Plone 3.0. The Plone 3.0 bundle will also work with Zope 2.10 when it's released next Monday.

Zope 3 events support

Stefan Holek

Goal
Making sure the Zope 3 events included in Zope 2.9 work well with Plone and Archetypes, since the implementation is substantially different. As an example, the WebDAV does not trigger the clone event on sub-objects with Zope 2.9 events.
Status
Produced more failing tests to highlight the problems. Most of the problems have to do with recursion of events, since the approach is different in CMF and Zope 3.

CacheFu Team

Geoff Davis, Benjamin Saller

Goal
Get CacheFu in better shape (mostly concerning Internet Explorer fixes), integrate CacheFu with Skeletor to be able to set up a cluster running ZEO clients with Squid in front.
Status
IE fixes are completed, squid.conf is now autogenerated for ease of setup, will most likely be able to show off the Skeletor integration by the end of the day. Geoff also has prototype of microcaching that speeds up editing by 100% in addition to the significant view speedups that CacheFu provides.

AJAX Team

Balazs Ree, Godefroid Chapelle, Benjamin Saller, Martin Heidegger

  • Worked on a CSS parser for AJAX behaviour
  • Worked on the AJAX primitives used by both Kukit and Bling
  • Integrating Kukit with Prototype

Summary

Whew. Quite a lot of great stuff that has the potential of making its way into Plone 3.0. A big thank-you to all the sprinters, you really rocked the place and got a lot done!

We also want to thank the sponsors that helped us make this possible: Sharkbyte Studios, BlueFountain Systems, Pareto, Headnet, Continental Airlines, Jon Stahl, Andrew Burkhalter and Trey Beck.

You are all Plone Heroes for helping support this event! Thanks!

— Alexander Limi

This is great stuff

Posted by Will Parks at May 2, 2006 - 02:47

Special kudos to the Workflow enhancement team, for making the simplified publication workflow a reality. If there is one thing Plone needed, it was that.

Nice job all around, I'm enheartened to hear of all these improvements.

All this thank to the viking laws

Posted by David Convent at May 2, 2006 - 10:09

Those are available from http://plone.org/news/viking-laws

They fit incredibly well the spirit of a sprint.

Read them, they will drive you all along your development process

Missed out a few

Posted by Martin Aspeli at May 2, 2006 - 10:09
I missed out two very important people from the list that limi stole -

Hanno Schlichting, our resident merge-master that keeps Plone ticking, pretty much single-handledly ported Plone to Zope 2.10 and CMF 2.0.

Tom Lazar (aka tomster) integrated Markdown markup into Plone and is working on making it easier to select available markups as a site policy.

For photos, see http://flickr.com/photos/tags/archipelagosprint - for video see http://mrtopf.tv - for radio see http://www.lewis.soc.hit-u.ac.jp/sprintradio.

Thanks to all the sprinters - it was great!

Martin

For any issues with the web site functionality, please file a ticket.

Please consult the policy on plone.org content if you want your content published on this site.

Servers and hosting by