Back from the Arnhem Sprint

Last week (11th to 15th November 2013) I've been at the Plone 5 focused Arnhem Sprint at the fourdigits office. That was a great experience!

The people from fourdigits were excellent hosts, who helped to keep the sprint going without any annoyances. For example, we didn't have to go out and hunt for food as there was enough for breakfast and lunch as well as unlimited drinks of all kinds, including coffee. The office was quite impressive and gave us the setting to work as efficient as possible. They even had desks which's height can be electrically varied from a classical table-chair setup to a standing desk.  The daily standup meetings at 5 allowed us to get some insight in what was done by every team. And the sleeping spots were perfect to keep the sprint ongoing 24 hours! Exactly how I like it at sprints.

This setting was perfect for enabling us to work efficiently on Plone 5 related topics. Most of the time I was working on plone.app.event related tasks. I prepared the sprint by releasing the 1.0 version the week before. At the sprint I worked on plone.app.widgets support for plone.app.event. One of the main task was to add provide timezone support for the new Datetime widget. This solved the problem that timezone naive datetime values from the widget cannot be compared to a timezone aware datetime value already stored on the content object. The comparison is done by z3c.form to see, if the value has changed. Now, a timezone is applied to the timezone naive widget value, if the content already has a timezone aware value stored. Other changes included a first weekday support for the pickadate calendar widget.  Kees Hink helped with improving the recurrence widget and provided Dutch translations for plone.app.event.  Jamie Lentin helped out with working on content migration from Products.ATContentTypes, plone.app.event's ATEvent, plone.app.event's Dexterity example type and plone.app.contenttypes 1.0 based event type to plone.app.contenttypes 1.1 based event, which utilizes plone.app.event's behaviors. These have been some more milestones on plone.app.event's remaining tasks for Plone 5.

Jamie Lentin also continued the work on using z3c.form for plone.app.users. He originally started the work on PLIP 12253 together with Vitaliy Podoba a year ago, I jumped in a month ago and with his work on the Arnhem sprint this PLIP is (again) ready to review.

13110063_o.jpg

Standup meeting at 17:00.

It was also exciting to see all the other progress on Plone.  Franco Pellegrini finished PLIP 13705 before joining the plone.app.widgets team.  The plone.app.widgets team (PLIP 13476) led by Rok Garbas worked hard on improving the default set of input widgets for Plone and improving it's Javascript and resource handling in general. This PLIP is crucial to Plone, since it brings the Plone UI again to the forefront of current web development standards - where it belongs to. We had a lot of discussions on keeping backwards compatibility and upgrade paths as well as still supporting a lot of different use cases. These discussion are ongoing and some issues have still to be solved, but in general, what plone.app.widgets gives us is huge improvement over the current state.

Ramon Navarro Bosch worked on a new Plone 5 theme, utilizing plone.app.widgets, Twitter Bootstrap 3 and based on a rewrite of the main_template. The new main_template is split up into a template for classical rendering and one for delivering HTML snippets for AJAX requests. The new template provides semantically annotated building blocks for Diazo instead of a full rendered theme. This will make the work with Diazo even easier than it is.

Asko Suokka worked on plone.app.multilingual, so Ramon didn't have to and improved plone.app.robotframework as well helped us with questions regarding test setups. Maurits van Rees created a Collection behavior for plone.app.contenttypes which can be used by any Dexterity based type. The portal_tools removal team moved the portal factory tool to the Archetypes package and moved/removed other tools too. At the end of the sprint, Plone could be started without any traces of Archetypes! Encolpe worked on the removal of CMFFormController scripts and portal skins based templates and Domen prepared SubstanceD for Plone's upcoming switch to Pyramid ;).

I'm curious how the Upgrade documentation for Plone 5 will look like. But although, we are cleaning the dependencies for Plone 5 and moving deprecated and ancient technologies out of core, good old Archetypes and CMF based applications will still continue to work.

 

13110069_o.jpg

Chatting and discussing.


There was a lot of work being done - I didn't even mention every team! And of course, these five days have been too short to finish all the tasks. We need maybe two or three more sprints like this one to bring Plone 5 to a beta release or even release candidate. The next one is going to happen in Cologne in February, where I try to attend. And after Plone 5, there are still much more ideas to work on! I especially loved the discussion about switching Plone to Pyramid.  Although this is still an utopia, but with reducing the number of ancient dependencies, this goal finally comes in sight.

All in all, this was one of the most productive and pleasurable sprints I've attended.  Thanks to fourdigits for organizing this sprint!