featured image Überarbeitetes Git Wiki

November 23, 2018 / von Daniel Huchthausen / In EcoSystem

Überarbeitetes Git Wiki

Vor nicht allzu langer Zeit haben wir eine neue Version von unserem Wiki “Smeagol” veröffentlicht. Oberflächlich betrachtet scheint sich nicht sehr viel geändert zu haben, aber eigentlich haben wir keinen Stein auf dem Anderen gelassen.

Das Wiki für Git Repositories

Nur für den Fall, dass du noch nie etwas von Smeagol gehört hast: Smeagol ist ein Wiki, das wir entwickelt und in das Cloudogu EcoSystem integriert haben. Unser Ziel war es die Dokumentation zu einem Projekt zusammen mit dem Code speichern zu können - also im Git Repository. Wir sind davon überzeugt, dass das der beste Weg ist um die Dokumentation von Projekten lebendig zu halten. Ursprünglich haben wir das Open Source Wiki “Gollum” benutzt und unser eigenes Frontend um dieses herum gebaut. Die erste Version von Smeagol mit allen seinen Hauptfunktionen haben wir bereits in diesem Post vorgestellt. Jetzt ist es aber an der Zeit ein Update zu geben, da wir so einiges verändert haben.

Gründe für die Änderungen

Wie bereits erwähnt, haben wir ursprünglich Gollum als Basis für Smeagol benutzt. Für den Anfang war das eine akzeptable Lösung. Allerdings hat sie auch einige Einschränkungen mit sich gebracht:

  • Lange Reaktionszeiten - Da Gollum nicht dafür gebaut ist mit mehreren Repositories, Authentfizierung, Usern, etc. zu arbeiten mussten wir viele Anpassungen vornehmen. Diese haben jedoch zu einer Verschlechterung der Performance geführt.
  • Keine große Flexibilität für Änderungen da wir keine individuellen Anpassungen am Core von Gollum vornehmen wollten.
  • Suche war nicht so ausgereift.
  • Die Vorschau des WYSIWYG Editors und die tatsächlich angezeigte Seite wichen voneinander ab, da Gollum und das Frontend unterschiedliche Renderer benutzt haben.

Deswegen haben wir uns dazu entschieden Smeagol komplett zu überarbeiten und damit eine neue Applikation zu entwickeln, welche unter Anderem diese Kritikpunkte behebt.

Die Änderungen am Wiki

Um die oben genannten Einschränkungen zu beheben haben wir diese Änderungen gemacht:

  • Wir haben eine hexagonale Architektur mit bounded contexts implementiert.
  • Smeagol hat nun ein modernes Java Backend und ein React Frontend mit Redux als Zustandsverwaltung. Gollum wird nicht mehr benutzt.
  • Wiki und WYSIWYG Editor benutzen nun den gleichen Renderer und das gleiche Design.
  • Für die Suche wird nun Lucene benutzt und ist damit eine gut funktionierende Volltextsuche.

Dank all dieser Änderungen ist Smeagol nun deutlich schneller, ressourceneffizienter und einfacher zu benutzen.

Ein paar Eindrücke des neuen Designs

Wie zuvor auch schon zeigt der Repository Browser alle Repositories auf die der User im SCM-Manager Zugriff hat.

Hinweis: Um Repositories zu gruppieren muss man “gruppenname/repositoryName” als Namen im SCM-Manager benutzen.

Die Seitenansicht bietet alle wichtigen Funktionen wie Suche, Bearbeiten, Neue Seite, Umbenennen, Versionsübersicht, …

Und, zu guter Letzt, der neue WYSIWYG Editor, der den gleichen Renderer benutzt wie der, der für die Anzeige der Wiki- Seiten benutzt wird. Daher wird es nun keine bösen Überraschungen mehr geben wenn man auf den “Speichern” Button klickt.

Probier das Wiki selbst aus

Wenn du schon dein eigenes Cloudogu EcoSystem hast, dann musst du lediglich deinen Smeagol Container aktualisieren. Wenn du noch kein EcoSystem hast, kannst du unsere Demo-Umgebung benutzen um unser überarbeitetes Git-Wiki als Bestandteil einer größeren Plattform selbst zu testen.


Daniel Huchthausen
Daniel Huchthausen

- Consultant -

Wenn er nicht gerade die Wildnis erkundet, beschäftigt sich Daniel mit Themen wie Qualitätssicherung, Testen oder PM-Methoden.