kaffeeringe.de

Zikula 1.0.0: Happy-End im Zikuland

Seit Mitte 2001 bin ich bei Zikula/Postnuke dabei und schon damals wurde an der Version 1.0.0 (Postnuke 0.8) gearbeitet. Viele Dinge wurde immer wieder auf diese Version verschoben und eine häufige Antwort im Support-Forum lautete: "Das geht noch nicht, das kommt in der .8" Nun ist sie da: Postnuke .8 oder besser: Zikula 1.0.0 – Zeit für einen Rückblick über 7 Jahre.

Ich brauchte eigentlich nur eine Lösung um bei meinem damaligen Arbeitgeber eine interne News-Seite schlauer als per Frontpage zu pflegen und bin dabei über Postnuke gestolpert. Damals noch in der Version 0.714 oder 0.713. Es tat was ich wollte und versprach noch mehr. Ich muss zugeben – ich hab dann nicht mehr lange weitergesucht.

Wie schon zu Mailbox-Zeiten konnte ich mich nicht lange auf das Konsumieren beschränken: Ich habe angefangen auf postnuke.de Frage im Forum zu beantworten und mich dem Betreiber angeboten, die Weblinks zu sortieren, die FAQ zu pflegen usw. Leider hat der damalige Betreiber nicht besonders offen auf die Vorschläge reagiert. Und über die Zeit hatte er dann alle aktiven Mitglieder im Forum vergrätzt und Andreas Krapohl eröffnete zusammen mit einigen anderen post-nuke.net. Auf der Seite bekam ich schnell die Zugriffsrechte, die ich brauchte, um mich produktiv einzubringen. Und nach und nach wanderten immer mehr Benutzer von postnuke.de zu post-nuke.net

Postnuke e.V.

Um unsere Aktivitäten auf eine breite Basis zu stellen und unsere Offenheit zu demonstrieren, haben wir dann 2003 den Postnuke e.V. gegründet. Es ist dadurch zum Beispiel wesentlich einfacher geworden, finanzielle Mittel zu sammeln und transparent zu verwenden. Es muss also niemand Angst haben, wenn er uns Geld gibt, dass sich damit irgendwer einen neuen Fahnenmast für den Garten kauft.

Postnuke Meeting

2004 richtete der Postnuke e.V. das erste Postnuke Meeting in Leonberg bei Stuttgart aus. Eigentlich hatten Frank Schummertz, Andreas Krapohl und Jörg Napp nur festegestellt, dass sie ja gar nicht soo weit auseinander wohnten und dass sie mal zusammen grillen sollten. Ich werde die ersten drei Treffen in der urigen Tanzschule von Harry Hagen vergessen: Dort wo sich sonst die Leonberger gegenseitig auf die Füße treten, bauten wir Beamer und Webcam auf und erzählten uns gegenseitig, wie toll alles werden würde, wenn .8 endlich fertig wäre.

Die Meetings haben der Community jedes Jahr einen ungeheuren Schub gegeben. Alle waren motiviert und gingen nach Hause in der Gewißheit, dass sie nicht alleine an Postnuke arbeiten.

Milestones

2005 fiel auch auf dem Meeting die Entscheidung, dass der aktuelle Entwicklungsstand so weit sei, dass man ihn einfach mal als Milestone auf die Öffentlichkeit loslassen sollte. Mark West hatte den Status präsentiert und festgestellt, dass wir nicht mehr so weit von unseren Ziel entfernt waren, wie befürchtet. Nur hatte er nicht damit gerechnet, dass der neue in der Runde – Robert Gasch – die Taschen voll Code hatte, die er gerne alle im Core haben wollte. So wurde dann abends im Biergarten zu den Gitarren-Klängen aus Giovannis Händen beschlossen, dass Roberts Object-Biblitothek übernommen werden sollte.

Module

Irgendwann um diese Zeit tauchte ein neues Modul auf: Pagesetter. Da war man plötzlich nicht mehr darauf angewiesen, dass der Modulentwickler einem die richtigen Felder zur Verfügung stellt, man konnte das einfach selbst bestimmen. Ich war begeistert. Mit diesem Modul konnte man auf ein mal 1000 kleine Anwendungsfälle abbilden und mit etwas Geschick sogar etwas größere.

Aus phpBB14 wurde pnForum nachdem Andreas Krapohl nicht mehr so recht Zeit für den Postnuke Fork von phpBB14 hatte, machte sich Frank Schummertz daran in einem Befreiungsschlag alle überflüssigen und doppelten Funktionen aus dem Modul zu entfernen und daraus ein vollwertiges Postnuke Modul zu machen.

Hooks

Schon in der 7er Serie gab es Hooks – und die Idee war wirklich gut: Man konnte ein Modul auf die Inhalte eines anderen Modules einwirken lassen. Entweder durch Transformation oder durch zusätzliche Anzeigen. In der frühen Zeit war Jörg Napp der "Captain Hook" –  der erste vermutlich, der das System wirklich verstanden hatte. Aus seiner Idee ist dann auch EZComments entstanden. Und plötzllich musste nicht mehr jeder selbst in seinem Modul Kommentare verwalten, sondern konnte diese Funktion einfach einem Modul überlassen, dass das viel besser konnte. In der Folgezeit sind dann der Smile-Hook, der BBCode Hook und nicht zuletzt der Multihook entstanden. Alle von Frank Schummertz programmiert.

Immer mit der Ruhe…

Trotzdem: Alles zog sich endlos hin. Der zweite Milestone braucht schon wieder ewig. Und bis es dann den ersten Release Candidate gab, dauert es noch länger. Vor allem näherte sich die Entwicklungsgeschwindigkeit immer wieder 0 an. Und ich verlor ein ums andere mal den glauben daran, dass es tatsächlich noch ein Release geben sollte. Zuletzt war eher Aktionismus Grund für Zweifel: Spät wurden noch Features nachgereicht, die sich dann als fehlerhaft herausgestellt haben. Aber eigentlich wollten nur alle endlich .8 von der Backe habe.

…und dann mit nem Ruck

.8 befreit die Core Entwickler von den alten Content-Modulen. Viele von denen benutzt seit Jahren keiner mehr, weil einfach auch niemand Zeit hatte, sie funktional auf dem Stand der Technik zu halten. Von Modul-Entwicklern sind inzwischen viele, wesentlich besserer Lösungen erhältlich und so ist jedem damit gedient, wenn die Core-Entwickler sich auf den Core konzentrieren.

Alle haben aus der langen Entwicklungszeit gelernt und niemand will wieder 7 Jahre auf das nächste Major Release warten – zumal schon jetzt im SVN einige Feature für 2.0.0 zu finden sind. So hat zum Beispiel Bernd Plagge gettext als System für die Übersetzungen des Frontends eingeführt. Dazu kommen die neuen Features, die in Zusammenarbeit mit den Studenten vom Google Summer of Code entstehen sollen. Vermutlich noch vor Ende des Jahres wird es wieder ein Feature Freeze geben. Um dann das Release vorzubereiten – das heisst nicht, dass Zikula 2.0.0 noch dieses Jahr kommt!

Zikula

Und dann die Sache mit dem Rebranding: In einigen Ländern wurden die Postnuke Domains und zum Teil sogar die Namensrechte von Personen gehalten, die nichts mit dem Projekt zu tun hatten. Dazu kam der von PHPNuke geerbte Ruf als chronisches Sicherheitsproblem. Dabei hatte sich Postnuke doch damals von PHPNuke abgespalten, um verstärkt einen Fokus auf Sicherheit zu setzen. Aber so lange das Projekt noch das Nuke im Namen trug, konnte man niemanden überzeugen, dass PHPNuke und Postnuke nichts mehr miteinander zu tun haben. Gerade aber für .8 wurde der komplette Code neu geschrieben: Es gibt keine Zeile Code mehr aus dem PHPNuke Projekt.

Der Entschluß hatte sich schon ewig hingezogen und war immer wieder verworfen worden, weil natürlich auch negativ besetzte Bekanntheit Bekanntheit ist. Und die würde mit einem neuen Namen erstmal teilweise verloren gehen. Ausschlag hat dann aber gegeben, dass Vanessa Haakansson mit Strategic Name Development eine Firma gefunden hat, die kostenlos und professionell bei der Erarbeitung eines neuen Namens helfen wollte.

Uns war auch klar, dass ein Nachteil von Postnuke die Versionsnummer unter 1.0 ist. Wer setzt schon gerne Software ein, von der eigentlich noch keine richtige Version erschienen ist. Die Entwickler hatten sich bei dem Fork von PHPNuke bei der Länge der Roadmap offenbar deutlich verschätzt, so dass die 1.0 eigentlich noch immer weit weg wäre. Tatsächlich aber wurde Postnuke natürlich schon immer produktiv eingesetzt und war auch dafür geeignet. Zikula war da auch die Chance dieses Problem zu beseitigen und die Versionierung der Realität anzupassen.

Schon mit dem ersten Release Candidate begannen Modulentwickler neue, tolle Module zu programmieren. Und nach und nach erschienen immer mehr Module, die nur noch mit Postnuke .8 laufen sollten. Und das, obwohl es noch kein richtiges Release davon gab. Die Entwickler hatten sich zum Teil bequem eingerichtet und benutzten .8 schon produktiv, weil sie ja wußten, was zu tun ist, wenn der nächste RC kam. Doch zuletzt blockierte das anstehende Release alles: Niemand konnte mehr recht entwickeln, weil Bugfixing angesagt war. In mehreren Bugfixing-Wochenenden beseitigten Entwickler und Anwender zusammen die größten Bugs und schließlich konnten wir uns nicht mehr drum drücken: Das Ding ist fertig, wir haben die Namens-Änderung vorbereitet: es kann losgehen.

Und plötzlich ging alles wie am Schnürchen: Die gesamte Community ist seit 10 Tagen elektrisiert. Erst wurde der neue Name intern verkündet, so dass die Teammitglieder anfangen konnten, die neuen Mailing-Listen einzurichten, Presseartikel zu schreiben und was sonst noch anfiel. Dann wurde der Name durch Strategic Name Development auf Business-Wire veröffentlicht und damit das Startsignal gegeben: The Beast is unleashed! Übers Wochenende wurde noch der letzte größere Bug aus dem Code entfernt und Postnuke durch Zikula ersetzt. Und der Zeitplan ging auf: Wir haben zwar den ganzen Montag gebraucht, um alles zu koordinieren, abends aber hatten wir dann tatsächlich alles geschafft und Zikula 1.0.0 erblickte das Licht der Welt.

Ich denke, dass diese letzten Tage einen guten Eindruck davon abgeben, wie es weitergehen wird. Natürlich wird auch wieder Alltag einkehren und man muss wieder Bugs fixen, die einem keinen Spaß machen. Aber wir haben jetzt eine wesentlich bessere Basis und eine Menge gelernt. Wir haben auch organisatorisch einiges geändern: Dank Google Groups ist der Zugang zur Module Developers Mailing List wesentlich einfacher, per Twitter kann ständig live aus der Entwicklung berichtet werden und die Ablösung des NOC durch code.zikula.org wird die Arbeit deutlich erleichtern. Das unterliegende Trac wird von einer aktiven Community ständig weiterentwickelt und mit Chris Hildebrandt haben wir einen erfahrenen Trac-Admin. Alleine die Wikis, die zu jedem Projekt gehören, werden es erleichtern, kollaborativ Dokumentationen für Module zu erstellen und damit den Zugang zu Zikula vereinfachen.

Ausblick

Was die Zukunft bringen wird? Zikula 2.0.0! Ich bin mir sicher, dass das im nächsten Jahr verfügbar sein wird. Dazu wird es viele tolle Module geben. Einige sind ja schon jetzt verfügbar: Content, TimeIt, crpcalendar, MediaAttach, Pagemaster usw. Unterstützt wird diese Entwicklung von Axel Guckelsbergers Modulestudio, das nicht nur ein Modulgenerator ist, sondern mit Module Driven Software Development (MDSD) ein Programmier-Paradigma in Zikula einführt, dem sicher die Zukunft gehört und das von kaum einen anderen OpenSource-Projekt bisher aufgegriffen wurde.

Axel arbeitet zur Zeit vor allem daran, die sogenannte Extensions-Datenbank fertigzustellen. Sie wird das zentrale Repository for Zikula: Hier kann man nicht nur Module, Themes, Plugins und Sprachpakete herunterladen, sondern sich sein eigenes System mit allen Modul-Abhängigkeiten zusammenstellen und dann als ein großes Archiv herunterladen. Hier werden auch die Distributionen verwaltet, die auf bestimmte Zielgruppen zugeschnitten sind.

Ich selbst habe vor, eine Blogging-Distribution zusammenzustellen und zu pflegen. Vielleicht hat ja jemand Lust, mir zu helfen.

Ich habe ein gutes Gefühl bei Zikula. Das wird schon gut werden. Auch bei alle der Konkurrenz von anderen Frameworks, von Content Management System und Portalen. Für mich tut Zikula zu jeder Zeit ziemlich genau das, was ich gerade benötige. Vielleicht tut es das ja auch für Dich!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Möchtest Du benachrichtigt werden, wenn Dir hier jemand antwortet?