kaffeeringe.de

Zikula 1.0.0: Happy-End im Zikuland

Seit Mitte 2001 bin ich bei Zikula/Postnuke da­bei und schon da­mals wur­de an der Version 1.0.0 (Postnuke 0.8) ge­ar­bei­tet. Viele Dinge wur­de im­mer wie­der auf die­se Version ver­scho­ben und ei­ne häu­fi­ge Antwort im Support-Forum lau­te­te: "Das geht no­ch nicht, das kommt in der .8" Nun ist sie da: Postnuke .8 oder bes­ser: Zikula 1.0.0 – Zeit für ei­nen Rückblick über 7 Jahre.

Ich brauch­te ei­gent­li­ch nur ei­ne Lösung um bei mei­nem da­ma­li­gen Arbeitgeber ei­ne in­ter­ne News-Seite schlau­er als per Frontpage zu pfle­gen und bin da­bei über Postnuke ge­stol­pert. Damals no­ch in der Version 0.714 oder 0.713. Es tat was ich woll­te und ver­sprach no­ch mehr. Ich muss zu­ge­ben – ich hab dann nicht mehr lan­ge wei­ter­ge­sucht.

Wie schon zu Mailbox-Zeiten konn­te ich mi­ch nicht lan­ge auf das Konsumieren be­schrän­ken: Ich ha­be an­ge­fan­gen auf postnuke.de Frage im Forum zu be­ant­wor­ten und mi­ch dem Betreiber an­ge­bo­ten, die Weblinks zu sor­tie­ren, die FAQ zu pfle­gen usw. Leider hat der da­ma­li­ge Betreiber nicht be­son­ders of­fen auf die Vorschläge re­agiert. Und über die Zeit hat­te er dann al­le ak­ti­ven Mitglieder im Forum ver­grätzt und Andreas Krapohl er­öff­ne­te zu­sam­men mit ei­ni­gen an­de­ren post-nuke.net. Auf der Seite be­kam ich schnell die Zugriffsrechte, die ich brauch­te, um mi­ch pro­duk­tiv ein­zu­brin­gen. Und nach und nach wan­der­ten im­mer mehr Benutzer von postnuke.de zu post-nuke.net

Postnuke e.V.

Um un­se­re Aktivitäten auf ei­ne brei­te Basis zu stel­len und un­se­re Offenheit zu de­mons­trie­ren, ha­ben wir dann 2003 den Postnuke e.V. ge­grün­det. Es ist da­durch zum Beispiel we­sent­li­ch ein­fa­cher ge­wor­den, fi­nan­zi­el­le Mittel zu sam­meln und trans­pa­rent zu ver­wen­den. Es muss al­so nie­mand Angst ha­ben, wenn er uns Geld gibt, dass si­ch da­mit ir­gend­wer ei­nen neu­en Fahnenmast für den Garten kauft.

Postnuke Meeting

2004 rich­te­te der Postnuke e.V. das er­s­te Postnuke Meeting in Leonberg bei Stuttgart aus. Eigentlich hat­ten Frank Schummertz, Andreas Krapohl und Jörg Napp nur fe­ste­ge­stellt, dass sie ja gar nicht soo weit aus­ein­an­der wohn­ten und dass sie mal zu­sam­men gril­len soll­ten. Ich wer­de die ers­ten drei Treffen in der uri­gen Tanzschule von Harry Hagen ver­ges­sen: Dort wo si­ch son­st die Leonberger ge­gen­sei­tig auf die Füße tre­ten, bau­ten wir Beamer und Webcam auf und er­zähl­ten uns ge­gen­sei­tig, wie toll al­les wer­den wür­de, wenn .8 end­li­ch fer­tig wä­re.

Die Meetings ha­ben der Community je­des Jahr ei­nen un­ge­heu­ren Schub ge­ge­ben. Alle wa­ren mo­ti­viert und gin­gen nach Hause in der Gewißheit, dass sie nicht al­lei­ne an Postnuke ar­bei­ten.

Milestones

2005 fiel auch auf dem Meeting die Entscheidung, dass der ak­tu­el­le Entwicklungsstand so weit sei, dass man ihn ein­fach mal als Milestone auf die Öffentlichkeit los­las­sen soll­te. Mark West hat­te den Status prä­sen­tiert und fest­ge­stellt, dass wir nicht mehr so weit von un­se­ren Ziel ent­fernt wa­ren, wie be­fürch­tet. Nur hat­te er nicht da­mit ge­rech­net, dass der neue in der Runde – Robert Gasch – die Taschen voll Code hat­te, die er ger­ne al­le im Core ha­ben woll­te. So wur­de dann abends im Biergarten zu den Gitarren-Klängen aus Giovannis Händen be­schlos­sen, dass Roberts Object-Biblitothek über­nom­men wer­den soll­te.

Module

Irgendwann um die­se Zeit tauch­te ein neu­es Modul auf: Pagesetter. Da war man plötz­li­ch nicht mehr dar­auf an­ge­wie­sen, dass der Modulentwickler ei­nem die rich­ti­gen Felder zur Verfügung stellt, man konn­te das ein­fach selbst be­stim­men. Ich war be­geis­tert. Mit die­sem Modul konn­te man auf ein mal 1000 klei­ne Anwendungsfälle ab­bil­den und mit et­was Geschick so­gar et­was grö­ße­re.

Aus phpBB14 wur­de pn­Fo­rum nach­dem Andreas Krapohl nicht mehr so recht Zeit für den Postnuke Fork von phpBB14 hat­te, mach­te si­ch Frank Schummertz dar­an in ei­nem Befreiungsschlag al­le über­flüs­si­gen und dop­pel­ten Funktionen aus dem Modul zu ent­fer­nen und dar­aus ein voll­wer­ti­ges Postnuke Modul zu ma­chen.

Hooks

Schon in der 7er Serie gab es Hooks – und die Idee war wirk­li­ch gut: Man konn­te ein Modul auf die Inhalte ei­nes an­de­ren Modules ein­wir­ken las­sen. Entweder durch Transformation oder durch zu­sätz­li­che Anzeigen. In der frü­hen Zeit war Jörg Napp der "Captain Hook" –  der er­s­te ver­mut­li­ch, der das System wirk­li­ch ver­stan­den hat­te. Aus sei­ner Idee ist dann auch EZComments ent­stan­den. Und plötzlli­ch mus­s­te nicht mehr je­der selbst in sei­nem Modul Kommentare ver­wal­ten, son­dern konn­te die­se Funktion ein­fach ei­nem Modul über­las­sen, dass das viel bes­ser konn­te. In der Folgezeit sind dann der Smile-Hook, der BBCode Hook und nicht zu­letzt der Multihook ent­stan­den. Alle von Frank Schummertz pro­gram­miert.

Immer mit der Ruhe…

Trotzdem: Alles zog si­ch end­los hin. Der zwei­te Milestone braucht schon wie­der ewig. Und bis es dann den ers­ten Release Candidate gab, dau­ert es no­ch län­ger. Vor al­lem nä­her­te si­ch die Entwicklungsgeschwindigkeit im­mer wie­der 0 an. Und ich ver­lor ein ums an­de­re mal den glau­ben dar­an, dass es tat­säch­li­ch no­ch ein Release ge­ben soll­te. Zuletzt war eher Aktionismus Grund für Zweifel: Spät wur­den no­ch Features nach­ge­reicht, die si­ch dann als feh­ler­haft her­aus­ge­stellt ha­ben. Aber ei­gent­li­ch woll­ten nur al­le end­li­ch .8 von der Backe ha­be.

…und dann mit nem Ruck

.8 be­freit die Core Entwickler von den al­ten Content-Modulen. Viele von de­nen be­nutzt seit Jahren kei­ner mehr, weil ein­fach auch nie­mand Zeit hat­te, sie funk­tio­nal auf dem Stand der Technik zu hal­ten. Von Modul-Entwicklern sind in­zwi­schen vie­le, we­sent­li­ch bes­se­rer Lösungen er­hält­li­ch und so ist je­dem da­mit ge­dient, wenn die Core-Entwickler si­ch auf den Core kon­zen­trie­ren.

Alle ha­ben aus der lan­gen Entwicklungszeit ge­lernt und nie­mand will wie­der 7 Jahre auf das nächs­te Major Release war­ten – zu­mal schon jetzt im SVN ei­ni­ge Feature für 2.0.0 zu fin­den sind. So hat zum Beispiel Bernd Plagge get­text als System für die Übersetzungen des Frontends ein­ge­führt. Dazu kom­men die neu­en Features, die in Zusammenarbeit mit den Studenten vom Google Summer of Code ent­ste­hen sol­len. Vermutlich no­ch vor Ende des Jahres wird es wie­der ein Feature Freeze ge­ben. Um dann das Release vor­zu­be­rei­ten – das heisst nicht, dass Zikula 2.0.0 no­ch die­ses Jahr kommt! 

Zikula

Und dann die Sache mit dem Rebranding: In ei­ni­gen Ländern wur­den die Postnuke Domains und zum Teil so­gar die Namensrechte von Personen ge­hal­ten, die nichts mit dem Projekt zu tun hat­ten. Dazu kam der von PHPNuke ge­erb­te Ruf als chro­ni­sches Sicherheitsproblem. Dabei hat­te si­ch Postnuke doch da­mals von PHPNuke ab­ge­spal­ten, um ver­stärkt ei­nen Fokus auf Sicherheit zu set­zen. Aber so lan­ge das Projekt no­ch das Nuke im Namen trug, konn­te man nie­man­den über­zeu­gen, dass PHPNuke und Postnuke nichts mehr mit­ein­an­der zu tun ha­ben. Gerade aber für .8 wur­de der kom­plet­te Code neu ge­schrie­ben: Es gibt kei­ne Zeile Code mehr aus dem PHPNuke Projekt.

Der Entschluß hat­te si­ch schon ewig hin­ge­zo­gen und war im­mer wie­der ver­wor­fen wor­den, weil na­tür­li­ch auch ne­ga­tiv be­setz­te Bekanntheit Bekanntheit ist. Und die wür­de mit ei­nem neu­en Namen erst­mal teil­wei­se ver­lo­ren ge­hen. Ausschlag hat dann aber ge­ge­ben, dass Vanessa Haakansson mit Strategic Name Development ei­ne Firma ge­fun­den hat, die kos­ten­los und pro­fes­sio­nell bei der Erarbeitung ei­nes neu­en Namens hel­fen woll­te.

Uns war auch klar, dass ein Nachteil von Postnuke die Versionsnummer un­ter 1.0 ist. Wer setzt schon ger­ne Software ein, von der ei­gent­li­ch no­ch kei­ne rich­ti­ge Version er­schie­nen ist. Die Entwickler hat­ten si­ch bei dem Fork von PHPNuke bei der Länge der Roadmap of­fen­bar deut­li­ch ver­schätzt, so dass die 1.0 ei­gent­li­ch no­ch im­mer weit weg wä­re. Tatsächlich aber wur­de Postnuke na­tür­li­ch schon im­mer pro­duk­tiv ein­ge­setzt und war auch da­für ge­eig­net. Zikula war da auch die Chance die­ses Problem zu be­sei­ti­gen und die Versionierung der Realität an­zu­pas­sen.

Schon mit dem ers­ten Release Candidate be­gan­nen Modulentwickler neue, tol­le Module zu pro­gram­mie­ren. Und nach und nach er­schie­nen im­mer mehr Module, die nur no­ch mit Postnuke .8 lau­fen soll­ten. Und das, ob­wohl es no­ch kein rich­ti­ges Release da­von gab. Die Entwickler hat­ten si­ch zum Teil be­quem ein­ge­rich­tet und be­nutz­ten .8 schon pro­duk­tiv, weil sie ja wuß­ten, was zu tun ist, wenn der nächs­te RC kam. Doch zu­letzt blo­ckier­te das an­ste­hen­de Release al­les: Niemand konn­te mehr recht ent­wi­ckeln, weil Bugfixing an­ge­sagt war. In meh­re­ren Bugfixing-Wochenenden be­sei­tig­ten Entwickler und Anwender zu­sam­men die größ­ten Bugs und schließ­li­ch konn­ten wir uns nicht mehr drum drü­cken: Das Ding ist fer­tig, wir ha­ben die Namens-Änderung vor­be­rei­tet: es kann los­ge­hen.

Und plötz­li­ch ging al­les wie am Schnürchen: Die ge­sam­te Community ist seit 10 Tagen elek­tri­siert. Erst wur­de der neue Name in­tern ver­kün­det, so dass die Teammitglieder an­fan­gen konn­ten, die neu­en Mailing-Listen ein­zu­rich­ten, Presseartikel zu schrei­ben und was son­st no­ch an­fiel. Dann wur­de der Name durch Strategic Name Development auf Business-Wire ver­öf­fent­licht und da­mit das Startsignal ge­ge­ben: The Beast is un­leas­hed! Übers Wochenende wur­de no­ch der letz­te grö­ße­re Bug aus dem Code ent­fernt und Postnuke durch Zikula er­setzt. Und der Zeitplan ging auf: Wir ha­ben zwar den gan­zen Montag ge­braucht, um al­les zu ko­or­di­nie­ren, abends aber hat­ten wir dann tat­säch­li­ch al­les ge­schafft und Zikula 1.0.0 er­blick­te das Licht der Welt.

Ich den­ke, dass die­se letz­ten Tage ei­nen gu­ten Eindruck da­von ab­ge­ben, wie es wei­ter­ge­hen wird. Natürlich wird auch wie­der Alltag ein­keh­ren und man muss wie­der Bugs fi­xen, die ei­nem kei­nen Spaß ma­chen. Aber wir ha­ben jetzt ei­ne we­sent­li­ch bes­se­re Basis und ei­ne Menge ge­lernt. Wir ha­ben auch or­ga­ni­sa­to­ri­sch ei­ni­ges ge­än­dern: Dank Google Groups ist der Zugang zur Module Developers Mailing List we­sent­li­ch ein­fa­cher, per Twitter kann stän­dig li­ve aus der Entwicklung be­rich­tet wer­den und die Ablösung des NOC durch code.zikula.org wird die Arbeit deut­li­ch er­leich­tern. Das un­ter­lie­gen­de Trac wird von ei­ner ak­ti­ven Community stän­dig wei­ter­ent­wi­ckelt und mit Chris Hildebrandt ha­ben wir ei­nen er­fah­re­nen Trac-Admin. Alleine die Wikis, die zu je­dem Projekt ge­hö­ren, wer­den es er­leich­tern, kol­la­bo­ra­tiv Dokumentationen für Module zu er­stel­len und da­mit den Zugang zu Zikula ver­ein­fa­chen.

Ausblick

Was die Zukunft brin­gen wird? Zikula 2.0.0! Ich bin mir si­cher, dass das im nächs­ten Jahr ver­füg­bar sein wird. Dazu wird es vie­le tol­le Module ge­ben. Einige sind ja schon jetzt ver­füg­bar: Content, TimeIt, crp­ca­len­dar, MediaAttach, Pagemaster usw. Unterstützt wird die­se Entwicklung von Axel Guckelsbergers Modulestudio, das nicht nur ein Modulgenerator ist, son­dern mit Module Driven Software Development (MDSD) ein Programmier-Paradigma in Zikula ein­führt, dem si­cher die Zukunft ge­hört und das von kaum ei­nen an­de­ren OpenSource-Projekt bis­her auf­ge­grif­fen wur­de.

Axel ar­bei­tet zur Zeit vor al­lem dar­an, die so­ge­nann­te Extensions-Datenbank fer­tig­zu­stel­len. Sie wird das zen­tra­le Repository for Zikula: Hier kann man nicht nur Module, Themes, Plugins und Sprachpakete her­un­ter­la­den, son­dern si­ch sein ei­ge­nes System mit al­len Modul-Abhängigkeiten zu­sam­men­stel­len und dann als ein gro­ßes Archiv her­un­ter­la­den. Hier wer­den auch die Distributionen ver­wal­tet, die auf be­stimm­te Zielgruppen zu­ge­schnit­ten sind.

Ich selbst ha­be vor, ei­ne Blogging-Distribution zu­sam­men­zu­stel­len und zu pfle­gen. Vielleicht hat ja je­mand Lust, mir zu hel­fen.

Ich ha­be ein gu­tes Gefühl bei Zikula. Das wird schon gut wer­den. Auch bei al­le der Konkurrenz von an­de­ren Frameworks, von Content Management System und Portalen. Für mi­ch tut Zikula zu je­der Zeit ziem­li­ch ge­n­au das, was ich ge­ra­de be­nö­ti­ge. 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?