Plone Cathedral Sprint Köln - Report

Wie beim Vorgänger des Sprints von 2010, wurde den Entwicklern bei der GfU Cyrus AG wieder eine hervorragende Arbeitsumgebung geboten und eine Major Release entscheidend vorangebracht. Bereits vor dem Sprint enthielt der aktuelle Plone 5 Entwicklungszweig zahlreiche neue Funktionen wie z.B. die neuen Dexterity-basierten Standard Inhalts-Typen (plone.app.contenttypes) u.A. mit dem neuen Event Typ (plone.app.event) der wiederkehrende Ereignisse unterstützt, eine neue schnellere Template Engine (Chameleon), und viele weitere Verbesserungen und Beseitigungen von bekannten Fehlern.

Timo Stollenwerk war die treibende Kraft hinter diesem Sprint und zeichnete für die Planung und Koordination vor Ort verantwortlich. Die teilnehmenden Entwickler waren von der erzielten Produktivität ausserordentlich begeistert. Eine der größten Herausforderungen für die Plone 5 Alpha Release war die Fertigstellung und Zusammenführung der Entwicklung des neuen Diazo-basierten Plone Standard Designs (plonetheme.barceloneta) sowie der neuen Javascript-basierten Widgets (plone.app.widgets). Hierdurch wurden diese beiden eng verknüpften Themen zu den Hauptschwerpunkten für den Sprint.

Der geplante komplette Austausch des Plone Front-Ends durch State-of-the-Art Technologie ist eine enorme Herausforderung. Daher wurde für einige funktionale und Integrations Tests Schwierigkeiten erwartet. Da das Thema Testing seit Jahren in der Plone Community extrem ernst genommen wird, spielten also Qualitätssicherung und Testing die dritte Hauptrolle um sicher zu stellen, dass alle entscheidenden Tests sauber durchlaufen, nachdem die aktuellen Änderungen eingepflegt wurden.

Neben diesen drei wesentlichen Herausforderungen, bestand das Hauptaugenmerk bei den Aktivitäten darin, überaltete Technologien über Bord zu werfen. Dazu gehörten u.A. CMFFormController, formlib, portal skins, und weitere Bibliotheken. Innerhalb von Plone mehrere alternative Technologien zu unterstützen, die letztlich dasselbe tun, hilft weder neuen noch erfahrenen Entwicklern. Deshalb war es eine gute Idee diese bereits vor der Release von Plone 5 sauber zu eliminieren.

Zu den weiteren Aufgaben zu denen sich das Sprintteam entschlossen hatte gehörte die Fehlerbeseitigung in bereits verfügbaren Paketen wie z.B plone.app.contenttypes und plone.app.event. Weiterhin wurde die Entwicklung der neuen plone.org Webseite vorangetrieben. Diese wird viele Funktionen von Plone 5 bereits produktiv einsetzen. 

Mit diesen Aufgaben im Blick wurden Teamleader eingesetzt, die die Sprinter in kleinen Gruppen koordinierten und für die Berichterstattung bei den täglichen Sprint-Reports verantwortlich waren. Für jede Aufgabe wurden die Anforderungen in kleine überschaubare User-Stories herunter gebrochen, um von ein bis zwei Entwicklern bearbeitet werden zu können. Dann wurden die Aufgaben auf einer Scrum/Kanban-ähnlichen Wand organisiert. Die Sprinter konnten sich so einfach einzelne Aufgaben greifen und bearbeiten.

Theme / Design

Das Design Team wurde von Ramon Navarro Bosch geleitet und zeichnete dafür erfolgreich, für Plone einen zeitgemäßen frischen Look zu schaffen. Dazu gehörte das neue Design der Werkzeugleiste (Toolbar) sowie das neue less-basierte Standard Design für Plone „Barceloneta“. Ramon's vollständiger Team Report des Design Teams findet sich hier (in englisch).

Widgets

Das Widgets Team wurde von Rok Garbas geleitet, der für die Erstellung des Haupanteils des Codes von mockup und plone.app.widgets verantwortlich war. Die Arbeit bestand in der Erstellung von neuen mockup Patterns und der Verbesserung der bestehenden. mockup wurde angepaßt um die neueste Bootstrap 3.1 Version zu verwenden und die Integration mit dem Barceloneta Design zu realiseren. Rok arbeitet derzeit an neuen Blog-Beiträgen, um detaillierte Informationen über die neuen Widgets bereitzustellen.

QA - Qualitätssicherung

Das QA Team wurde von Timo Stollenwerk geleitet. Es unterstützte das Design und Widgets Team indem bestehende Tests repariert wurden, die durch die Änderungen im Design und bei den Widgets nicht mehr sauber durchliefen. Vom Team wurden neue Robot Framework-basierte Akzeptanz-Tests erstellt und die  Plone Testing Infrastruktur wurde weiter verbessert.

Damit das Design Team das neue Responsive Design effektiver Prüfen konnte, wurde von Asko Soukka das package plone.themepreview entwickelt. Das Sphinx-bassierte Werkzeug erzeugt automatisiert Voransichten und Dokumentationen, die z.B. die Screenshots des neuen Barceloneta Designs auf verschiedenen Browsern und Betriebssystemen in unterschiedlichsten Fenstergrößen erstellt und beschreibt. Es wurde ein Jenkins Job erstellt, der diese Reports automatisiert erstellt.

Cleanup

Das Cleanup Team, geleitet von David Glick, setzte die Beseitigung veralteter Code Bestandteile fort. Es ging vor allen um inzwischen weiterentwicklelte Technlogien, vor allem um die Entfernung der Nutzung von CMFFormController und formlib. Pavel Bogdanovic paßte das Suchformular für Benutzer an, um nun die neue z3c.form Bibliothek zu verwenden. Bo Simonsen aktualisierte Portlets, das sendto_form und begann mit der Optimierung des Autoren Template. Timo Stollenwerk brachte das Search Control Panel auf den neuen Stand.

Die neuen Inhalts Typen

Philip Bauer und Johannes Raggam leiteten das Content Types Team und arbeitetn an der Fehlebeseitigung in plone.app.contenttypes und plone.app.event. Ihre Arbeit wurde bereits in plone.app.event 1.1b1 und plone.app.contenttypes 1.1b1 unmittelbar nach dem Sprint veröffentlicht. Johannes' Sprint Report wurde hier veröffentlicht.

plone.org

Víctor Fernández de Alba konnte seine wichtige Arbeit an der Weiterentwicklung der plone.org Website fortsetzen. In Zusammenarbeit und durch Unterstützung des Design Teams wurden gute Fortschritte erzielt. Sein ausführlicher Report wurde hier veröffentlicht.

Zusammenfassung

Das neue Design und die Widget sind fertig und wurden in die Haupt Enwicklungslinie von Plone 5.0 eingebracht. Alle bestehenden Tests wurden angepasst und laufen sauber durch (Vielen Dank für den „Sprint nach dem Sprint“ von David Glick). Die Maßnahmen zur Bereinigung der Plone Code Base, der Fehlerbeseitigung und der Gesamt-Testabdeckung wurden erfolgreich fortgesetzt .

Dem Plone Relase Manager Eric Steele zu ermöglichen, eine erste Alpha Release unmittelbar nach dem Sprint zu ermöglichen, war ein ambitioniertes Ziel. Daher war das Team nicht wirklich sicher, ob die gesteckten Ziele in den knapp 5 Tagen zu bewerkstelligen waren. Am End kann man sagen, dass die 30 hochmotivierten Plonistas einen fantstischen Job abgeliefert haben. Alle waren mit dem erzielten Ergebnis mehr als zufrieden und können die erste Plone 5 Alpha Release kaum erwarten.

Der Cathedral Sprint wäre ohne die Finanzielle und organisatorische Unterstützung der GfU Cyrus AG sowie der Plone Foundation und des Python Software Verbands nicht möglich gewesen. Die GfU Cyrus AG stellte nicht nur die Sprint Räume und Infrastruktur zur Verfügung, sondern finanzierte auch die Verpflegung über den Tag und die Unterkunft. Die Plone Foundation und und der Python Software Verband unterstützten die Kosten von Flügen und Bahn Tickets, um die Anreise der Sprinter aus aller Welt nach Köln zu ermöglichen (aus Katalonien, Dänemark, Finnland, Deutschland, Italien, Niederlande, Slovenien, USA).

Mitgliedschaften und Spenden an die Plone Foundation und den Python Software Verband helfen solche produktiven Treffen zu unterstützen und Python basierte OpenSource Software erfolgreich weiterzuentwickeln. Von der Plone Foundation sind in den nächsten Monaten weitere zahlreiche Sprints und Veranstaltungen geplant. Diese dienen der weiteren Entwicklung von Plone 5. Der Emerald Sprint in Seattle, der Wine and Beer Sprint in München, der Plone Open Garden in Sorrento und das Plone Symposium Midwest in Wisconsin – See you there!

Der Python Software Verband freut sich über Anfragen anderer Python Projekte, um deren Entwicklungstreffen zu unterstützen.

Über Plone

Plone ist seit über 10 Jahren eine der renommiertesten OpenSource Technologien, um sichere Enterprise Web CMS Applikationen umzusetzen. Plone ist eine ausgewachsene Applikation und weniger Framework und liefert out-of-the-box ein sofort einsetzbares, aber extrem ausbaufähiges und skalierbares CMS System, das sich hinter kommerziellen Lösungen nicht verstecken muss. Plone erreicht bei unabhängigen Reports seit Jahren extrem gute Beurteilungen der Sicherheit, Code-Qualität und Entwicklungskultur.

Die Plone Foundation ist Inhaber aller Rechte an Plone und kann unabhängig von kommerziellen Unternehmen die freie Verfügbarkeit des Codes sicherstellen. Die Plone Community ist weltweit ungebrochen aktiv und entwickelt das System mit einer klaren Zukunftsperspektive weiter.