dreistrom.land entwickelt an TYPO3 EXT:form - Part #1

TYPO3 Form Framework /  

dreistrom.land hat für die kommende TYPO3 Version 7 die Weiterentwicklung der Core Extension "form" übernommen. Für die mit TYPO3 4.6 eingeführte Erweiterung zum Erstellen von Formularen gab es zahlreiche Bug Reports, denen sich bisher niemand widmen konnte. Durch die Entwicklung der Extension "wt_spamshield" hatte dreistrom.land bereits oft mit EXT:form gearbeitet und kannte daher die Funktionsweise und Probleme der Core Extension gut.

Im Juli stellte der TYPO3 Product Owner Mathias Schreiber auf den TYPO3 Developer Days wieder einmal seine hervorragenden Managementqualitäten unter Beweis und besprach die Weiterentwicklung der überholungsbedürftigen Core Extension mit dem dreistrom.land Geschäftsführer Björn Jacob und dem österreichischen Active Contributor Georg Ringer. Gemeinsam wurde über die Zukunft der oft eingesetzten aber dennoch etwas ungeliebten EXT:form diskutiert und ein Maßnahmenplan erarbeitet.

Wenig später nahm sich das dreistrom.land Team den gut 100 offenen Tickets an und sichtete und strukturierte diese. Eine große Hilfe waren hierbei ein eigenes für das Projekt angelegtes Focus Board auf Forger und das Chat System "Slack", um so schnell mit der TYPO3 Community kommunizieren zu können. Als grundlegendes Ziel wurde gemeinsam mit Patrick Broens - dem Autor von "form" - die Stabilisierung und das Cleanup der Core Extension definiert. Größere Umbauarbeiten und Features sollten für TYPO3 Version 8 "aufgehoben" werden.

Vom 27. bis 30. August 2015 fand ein Code Sprint im Büro in Jena statt. Es gab eine rege Teilnahme von insgesamt 6 Mitarbeitern von dreistrom.land. Das Team wurde dabei von den beiden Active Contributors Anja Leichsenring und Oliver Hader tatkräftig, professionell und gut gelaunt unterstützt.

Bestens versorgt von unserer neuer Auszubildenden Noa-Sophie mit Knabbereien, Obst und kühlen Getränken konnte sich das Team den Aufgaben widmen und zahlreiche Tickets bearbeiten. Sukzessive wanderten die Tickets aus dem "Backlog" zum "Review" und später zum "Done". Zahlreiche Patches konnten im TYPO3 7.4-dev eingebracht und teilweise für 6.2 zurückportiert werden. Einige Teilnehmer haben dabei das erste mal "contributed" und ihren offiziellen Beitrag zur Weiterentwicklung von TYPO3 geleistet! Doch dann kam alles anders als geplant...

Gegen Ende des zweiten Tages wurde festgestellt, dass weitere "Sanierungsarbeiten" wenig sinnvoll sind. Zum einen wuchs der Berg an Tickets schneller an, als er abgebaut werden konnte. Immer weitere Fehler, Probleme und Wünsche taten sich beim intensiven Testen vor den Entwicklern auf. Erschwerend kam hinzu, dass einige, seit langer Zeit bestehende Patches nicht gemerged werden konnten, da sie an den konzeptionellen und architektonischen Schwächen von "form" scheitern werden. Sollte bspw. ein neues HTML5 Formularelement oder Attribut eingeführt werden, müsste hierfür enorm viel Code erstellt werden, der sich in großen Teilen wiederholt. Dies würde die Core Extension bis zur Unwartbarkeit aufblähen.

Das Sprint-Team legte daher die folgenden zwei großen Ziele fest:

  • Die Codebasis der Extension soll auf Extbase und Fluid gehoben werden, d.h. der komplette technische Unterbau wird aktualisiert und den modernen Coding Standards von TYPO3 angepasst. Damit wird die Extension flexibler, nachhaltiger und einfacher erweiterbar.
  • Der Form Wizard, mit dem Formulare per Drag&Drop durch Redakteure erstellt werden können, soll schrittweise überarbeitet werden. Der Wizard ist grundsätzlich sehr fehleranfällig, was teilweise darauf zurück zu führen ist, dass er auf einer veralteten Version der JavaScript Bibliothek ExtJS basiert. Für TYPO3 Version 7 wird angestrebt, den Wizard so zu gestalten, dass Redakteure nur Einsicht auf die grafische Benutzeroberfläche haben und keinerlei TypoScript zur Konfiguration des jeweiligen Formulars sehen können.

Noch bevor der Sprint zu Ende war, hatte Ralf ein "Proof of Concept" erarbeitet, das bewies, dass eine Umstellung auf Extbase und Fluid für TYPO3 7 realistisch ist.

Zusammenfassend bleibt zu sagen, dass es ein sehr erfolgreicher Sprint war, der zahlreiche Bugs innerhalb von EXT:form eliminierte und die weiteren Schritte für die TYPO3 Core Extension klar definierte. Das Ergebnis ist zwar ganz anders als geplant, aber spannend und sehr positiv.
In einer der nächsten News wird es noch weitere Details zur Umsetzung und der Weiterentwicklung von "form" geben. Stay tuned!

Fragen? Anregungen? Ideen?