ubuntuusers.de

Inyoka – Der lange Weg zum Open-Source-Projekt

ubuntuusers.png

Schon seit sechs Jahren läuft Inyoka produktiv auf ubuntuusers.de. Die Veröffentlichung unter einer Open-Source-Lizenz ist schon sehr lange angekündigt, doch passiert ist dies bisher noch nicht. Der Artikel soll zeigen, woran es hängt und was man dafür tun kann, damit es besser wird.

Was ist Inyoka?

Das gesamte ubuntuusers.de-Portal läuft auf einer Python-Web-Anwendung namens Inyoka. Es unterteilt sich in die folgenden unterschiedlichen Komponenten: Forum, Wiki, News, Planet und Paste-Service.

Ziel der Entwicklung war es, eine Portalsoftware aus einem Guss zu haben. So haben wir über die gesamte Plattform hinweg ein Single-Sign-On verfügbar und auch die Syntax lässt sich problemlos zwischen den unterschiedlichen Bestandteilen übertragen.

Inyoka baut zu großen Teilen auf dem Python-Web-Framework Django 🇬🇧 auf, zusätzlich gibt es noch einige weitere externe Abhängigkeiten für Internationalisierung oder Benachrichtigungen über XMPP (Jabber). Eine unvollständige Übersicht mit verwendeten Programmen und Bibliotheken findet sich unter ubuntuusers.de/inyoka.

Die Entstehung Inyokas

In der Anfangsphase von ubuntuusers.de lief eine Kombination aus DokuWiki, welches später durch MoinMoin ersetzt wurde, phpBB als Forum und das ein oder andere Python-Modul, etwa für Ikhaya. Um spezielle Funktionen, wie etwa die Ubuntu-Versionsauswahl im Forum nutzen zu können oder eine zentrale Anmeldung zu realisieren, gab es in diesen unabhängigen Teilen weitreichende Anpassungen. Durch diese Anpassungen war jedes Update auf eine neuere Version ein Glücksspiel, was besonders im Hinblick auf Sicherheitsupdates problematisch war. So kam es dazu, dass Major-Updates von phpBB ausgelassen wurden. Der Unterschied zwischen der eingesetzten Version mit vielen Bugfix-Backports und der offiziellen Version wurde immer größer.

Die ersten Überlegungen zu einer neuen, eigenen Portalsoftware sind daraufhin am Teamtreffen 2007 in Essen entstanden. Ziel war es, wie schon oben erläutert, eine einheitliche Portalsoftware zu haben, die den ubuntuusers-Anforderungen entspricht.

Aus diesem Grund wurde im Hintergrund hart an Inyoka gearbeitet. Im März 2008 folgte die erste öffentliche Ankündigung von Inyoka. Am 19. Juli 2008 wurde ubuntuusers.de vollständig auf Inyoka umgestellt (siehe auch Krampfadergrafik).

Auch nach der Migration sind noch viele Dinge an Inyoka verändert worden, in der Anfangszeit gab es zum Beispiel viele „interne Serverfehler“ und die Performanz war noch sehr ausbaufähig. In der Software-Architektur gab es zudem viele Umstellungen. Darunter fällt beispielsweise der Wechsel von Django auf SQLAlchemy und wieder zurück. Django ORM entsprach anfangs noch nicht den Anforderungen von ubuntuusers.de. Diese größeren Probleme wurden nach und nach behoben, zusätzlich wurden immer wieder neue Features, welche meist aus Team oder Anwenderanforderungen entstanden sind, implementiert oder verbessert.

Der Weg zur Open-Source-Veröffentlichung

inyoka_logo-420px.png
Inyoka-Logo

Unser erster OSS-Plan (Bild) war 2008 zu optimistisch. Das Webteam hat den Aufwand deutlich unterschätzt, eine speziell für ein Portal entwickelte Software auch für andere anpassbar zu machen. Neben zahlreichen Funktionserweiterungen kamen auch immer wieder zeitliche Engpässe dazwischen, alle wichtigen Punkte zu erledigen. Damit sich die Veröffentlichung nicht noch weiter verzögert (es sind nun ja schon sechs Jahre), wurden die wichtigsten drei zwingend zu erledigenden Punkte herausgesucht, bevor Inyoka unter einer Open-Source-Lizenz veröffentlicht werden kann.

  • Dies wäre zum einen die Authentifizierung, bei der sichergestellt werden muss, dass unautorisierte Nutzer nicht auf geschützte Bereiche zugreifen dürfen. Bisher ist nicht völlig sichergestellt, dass es in diesem Punkt keine offenen Lücken gibt. Und Inyoka soll nicht veröffentlicht werden, bevor die vollständige Integrität des Portals gewährleistet ist.

  • Weiterhin fehlt ein Webdesign (Standard-Template), das mit Inyoka ausgeliefert wird. Dies ist unter anderem deshalb wichtig, um optische „ubuntuusers.de-Kopien“ zu vermeiden. Daneben ist das ubuntuusers.de-Template logischerweise sehr auf das ubuntuusers.de-Portal angepasst und weniger für andere potenzielle Inyoka-Betreiber geeignet. Das heißt, es muss noch ein eigenständiges Design für Inyoka geschaffen werden, welches nicht auf dem ubuntuusers.de-Template basiert. Erste rudimentäre Arbeiten gab es hier bereits.

  • Der letzte Punkte ist die Suche. Diese funktioniert zum jetzigen Zeitpunkt eher rudimentär und die Funktionsweise ist bescheiden. Zusätzlich gibt es auch noch lizenzrechtliche Gründe, die eine Freigabe der Suche zusammen mit Inyoka verhindern, weshalb die aktuelle Suche entfernt beziehungsweise ersetzt werden muss.

Bei der Entwicklung mithelfen

Das Webteam besteht auf den ersten Blick aus fünf Mitgliedern. Zu beachten ist jedoch, dass Webteam und Serverteam zusammen ein einziges Team bilden. Aktuell gibt es daher keinen Entwickler im Webteam, der sich um Inyoka kümmert. Hierzu hat der Weggang einiger Entwickler aus unterschiedlichen privaten und beruflichen Gründen in den letzten Monaten geführt.

Aus diesem Grund sucht das ubuntuusers-Team Unterstützung bei Authentifizierung, Suche und Design, damit Inyoka als Open Source veröffentlicht werden kann. Für die Teilnahme gibt es aber einige Bedingungen:

  • Der Code darf vor dem Open-Source-Release nicht weitergegeben werden. Auch wenn man Zugriff darauf hat, ist es wegen der obigen Punkte verboten, den Code vorab zu veröffentlichen. Gleichzeitig möchten wir Schaden von dieser Plattform abwenden, welcher gegebenenfalls durch noch unbekannte Lücken entsteht.

  • Es ist nicht erlaubt, eine produktive Instanz von Inyoka vor der Veröffentlichung laufen zu lassen.

  • Hauptsächliches Ziel ist es, die oben genannten, offenen Punkte zu erledigen. Wenn hierfür Fehlerbehebungen notwendig sind, können diese natürlich erledigt werden. Neue Features sollen aber nicht entwickelt werden.

  • Das Webteam hat aufgrund der beschränkten Entwicklerzahl nur begrenzt Zeit, sich um die Einarbeitung neuer Entwickler zu kümmern. Aus diesem Grund gibt es eine Anleitung zum Starten einer Development-Instanz, die an die interessierten Entwickler verteilt wird.

  • Für die Entwicklung von Inyoka kommt die BSD 3-Clause-Lizenz 🇬🇧 zum Einsatz, der jeder Mitentwickler zustimmen muss.

Anforderungen

Wichtig ist, dass alle, die sich an der Entwicklung von Inyoka beteiligen möchte, die passenden Anforderungen mitbringen. Für die Entwicklung des Web-Designs sind gute Kenntnisse in HTML und CSS Voraussetzung. JavaScript-Kenntnisse wären darüber hinaus auch durchaus sinnvoll.

Für die Untersuchung der Authentifizierung benötigt man eher Erfahrung in Python und dem Django-Framework. Essentiell ist hier, dass man den vorhandenen Quellcode versteht.

Für die Entwicklung einer neuer Suche benötigt man in allen Bereichen Erfahrung.

Der Quellcode von Inyoka liegt auf GitHub. Für die Software-Entwicklung wird daher auch Git als Versionsverwaltung genutzt. Git-Kenntnisse sind sinnvoll, diese kann man sich notfalls auch während der Entwicklung an Inyoka aneignen.

Dass jeder Mensch unterschiedlich gute Kenntnisse besitzt, beispielsweise gute Kenntnisse in HTML, CSS und JavaScript hat, dafür nur rudimentäre in Python, sollte kein Hindernis sein. Daher möchten wir alle ermuntern, lieber nachzufragen, ob die persönlichen Kenntnisse reichen oder nicht. Denn alle haben mal klein angefangen – so etwa auch das damalige Entwickler-Team von Inyoka.

Selbstverständlich müssen alle, die mitmachen möchten, vertrauenswürdig sein und die oben genannten Bedingungen respektieren. Wichtig ist auch, dass alle Entwickler motiviert sind, sich in bisher unbekannte Teile einer Software einzuarbeiten.

Ziel des Aufrufs

Das Ziel des Aufrufs ist es, die oben genannten drei Punkte zusammen mit (hoffentlich vielen neuen) Entwicklern abzuarbeiten und Inyoka für ein Open-Source-Release bereit zu machen. Es ist dabei nicht erforderlich, dass man für die Teilnahme an der Entwicklung ins Webteam eintreten muss. Wenn sich aus der Arbeit natürlich dennoch das ein oder andere neue Webteammitglied findet, wäre das sehr schön. Vor allem wäre es wünschenswert, wenn sich ein fähiges Team bildet, welches langfristig an Inyoka weiterentwickeln möchte.

Kontakt

Das Webteam freut sich auf Interessenten und somit potenzielle neue Entwickler. Bitte schickt Eure kurze Beschreibung mit Euren Fähigkeiten und Kenntnissen an encbladexp bzw. inyoka@stefan-betz.net. Dieser wird dann, soweit die Voraussetzungen erfüllt sind, alles Notwendige für den Zugriff in die Wege leiten. Für Fragen zur Bewerbung kann man sich auch an die Entwickler im IRC auf chat.freenode.net im Raum #ubuntuusers-webteam wenden.