Bericht über das Inkscape-Hackfest 2016

Das diesjährige Inkscape-Hackfest fand im Studentenwohnheim "Devonshire Hall" in der Universität zu Leeds in Großbritannien statt. Dabei handelt es sich um ein altehrwürdiges Gebäudeensemble — ein wunderschöner Ort zum Programmieren an Inkscape.

Insgesamt kamen zehn Entwickler zum Hackfest, von denen nur der Gastgeber aus Leeds kam. Alle anderen reisten im Verlauf des Wochendes von außerhalb Großbritanniens an. Am ersten Abend trafen wir uns zu einer gemütlichen Runde mit Getränken und Pizza in einem örtlichen Pub, um uns danach zu unseren verschiedenen Hotels aufzumachen. So konnten wir uns schon ein bisschen kennenlernen um dann am nächsten Tag am Veranstaltungsort leichter loszulegen.

Am ersten Tag trafen wir uns in einem Konferenzraum im hinteren Bereich von Devonshire Hall. Im Vorzimmer gab es Tee, Kaffee und Kekse. Ein weiteres Zimmer stand für gemütliche Gespräche zur Verfügung. Daran schloss sich der Hauptraum an, in dem einige Tische für uns vorbereitet waren. An jedem Tisch gab es Platz für 3 Personen. Wir begannen damit, uns gegenseitig vorzustellen, unser Interesse am Projekt zu beschreiben, und beschlossen anschließend die folgenden Arbeitsschwerpunkte:

  1. CMake: Wir möchten unseren Wechsel auf das CMake-Buildsystem abschließen, so dass wir für alle Betriebssysteme dasselbe Buildsystem verwenden können. Dies ist das Hauptziel, das vor der Veröffentlichung von Version 0.92 erreicht werden soll.
  2. Das Flackerproblem im GTK3-Zweig sollte behoben werden. Wir möchten nach der Veröffentlichung von 0.92 zu GTK3 wechseln. Hierdurch wird unser Programmcode wesentlich vereinfacht, denn wir haben derzeit ca. 700 Bedingungen in unserem Code, die von der Verwendung von GTK2 bzw. GTK3 abhängen. GTK3 wird uns eine höhere Flexibilität bei der Benutzeroberfläche ermöglichen (z.B. größere / kleinere Icons) und wird außerdem auf OS X besser unterstützt.
  3. Zusätzlich gab es viele Debatten, kleinere Programmfehler wurden behoben, und an der Webseite wurden ein paar Verbesserungen und Aufräumarbeiten durchgeführt.

Zur Mittagszeit gab es von der Devonshire Hall täglich ein vollständiges Mittagsmenü. Alle waren sich einig, dass dies der bislang beste Veranstaltungsort eines Inkscape-Hackfestes war, und somit die Messlatte für zukünftige Treffen sehr hoch liegen wird.

Am Abend haben wir uns noch kurz gemeinsam zum Essen und Reden in einem Pub mit dem Namen "The Library" getroffen, bevor wir uns dann wieder in unsere Hotels aufmachten.

Den Hauptanteil des nächsten Tages verbrachten wir mit Arbeit am Programmcode. Die wahrscheinlich wichtigste Leistung war, dass Krzysztof das GTK3-Flackerproblem lösen konnte. Dadurch funktioniert nun allerdings die Vorschau im Datei-Dialog nicht mehr, darum müssen wir uns noch kümmern. Obwohl man nun den GTK3-Build tatsächlich verwenden kann, gibt es noch eine ganze Menge Arbeit, die noch zu tun ist. Alex und Martin haben an diesen Dingen gearbeitet. Wir haben besprochen, den Buildstandard erst nach der Veröffentlichung von 0.92 von GTK2 auf GTK3 zu ändern, um damit sicherzustellen, dass sich mehr Leute an dieser Arbeit beteiligen können. Es wurden auch Fortschritte am CMake-Buildsystem und in vielen anderen Gebieten erzielt.

Sebastian und Moritz von Semiodesk stellten uns ihr C++-Pluginsystem vor, inklusive Demonstration einer in C++ geschriebenen Gitter-Erweiterung. Die beiden werden im Inkscape-Wiki ihre Arbeit dokumentieren und dort auch ein "Hallo Welt"-Beispiel ablegen. Jetzt liegt der Schwerpunkt darauf, die C++-Erweiterungen auf Windows zum Laufen zu bringen. Diese Art von Erweiterungen wird unsere Python-Erweiterungen ergänzen, aber nicht ersetzen.

Alex nahm uns für unser gemeinsames Abendessen am zweiten Tag in ein Restaurant der Stadt mit, um eine lokale Curry-Spezialität zu kosten. Dafür mussten wir ganz schön weit laufen, aber es war die Mühe wirklich wert.

Am letzten Tag wurde weiter programmiert! Im Verlauf des Hackfestes entstanden insgesamt 70 neue Codeeinreichungen für Inkscape,  einige davon nur ein oder zwei Zeilen lang, andere jedoch ziemlich groß. Der Haupterfolg blieb die Reparatur des GTK3-Flackerproblems, für das es ziemlich viele Anläufe brauchte. Daher war es wirklich gut, so viele Tester im selben Raum zu haben, die sofort Feedback geben konnten, während Krzysztof an der Reparatur arbeitete. Nach der Veröffentlichung von 0.92 wird GTK3 der Standard im Entwicklerzweig, damit mehr Entwickler an den vielen zusätzlich notwendigen Änderungen arbeiten können. Alex und Martin haben bereits eine Menge Vorarbeit für die Reduktion der buchstäblich tausenden von Zeilen von Warnungen über das Ende für die Unterstützung bestimmter Funktionen, die auftauchen, wenn man Inkscape mit GTK3 kompiliert, geleistet.

Der andere Hauptpunkt, die Reparatur des CMake-Builds, ist fast geschafft. Unter Linux funktioniert CMake sehr gut, unter Windows gibt es jedoch noch ein Verknüpfungsproblem. Die Leute von Semiodesk wollen dies möglichst bald erledigen, damit die C++-Erweiterungen auch unter Windows eingesetzt werden können.

Wir verbrachten auch einige Zeit mit Diskussionen über unsere Infrastruktur. Es bestand Einigkeit darüber, dass wir mit unserem Code zum Versionsverwaltungssystem git wechseln. Dies hat einige echte Vorteile, da Wissen über git unter Entwicklern stärker verbreitet ist, so dass es neuen Entwicklern leichter fallen dürfte, sich am Projekt zu beteiligen. Git erlaubt auch die Verwendung von "Submodulen", so dass Inkscape Code in getrennte Bibliotheken auslagern kann. Wir bräuchten zum Beispiel keine Kopie von lib2geom in unserem Programmcode zu pflegen.

Martin hat einige Verbesserungen und Bereinigungen am Strichcode-Plugin vorgenommen.

Tav versammelte die ganze Mannschaft nach dem Mittagessen zu einem kurzen Treffen.

  1. Wir entschlossen uns, GitHub für das Hosten unseres Quellcodes zu verwenden. Es gibt ein wenig Widerwillen dagegen, einen Hoster mit geschlossenen Quellcode zu verwenden, jedoch bietet GitHub derzeit die beste CI-Lösung (kontinuierliche Integration) für das automatisierte Kompilieren des Codes und die Durchführung von Tests. Wir haben nicht genug Entwicklerzeit, um eine komplexere Lösung zu verwalten. Die Programmfehlerverwaltung von GitHub ist derzeit für Inkscape nicht zu gebrauchen, so dass die Fehlerberichte und die Fragen-und-Antworten-Abteilung auf Launchpad verbleiben werden.
  2. Wir möchten unsere Mailinglisten auf unsere eigenen Server umziehen und von Mailman 2 auf Mailman 3 aktualisieren. Für unseren Hoster OSUOSL hat dies eine niedrige Priorität; Martin hat jedoch unsere Dienste angeboten, die Arbeit für die Mailman 3-Installation zu erledigen.
  3. Wir waren uns einig, nach der Veröffentlichung von 0.92 auf C++11 umzusteigen. Einige der Bibliotheken, von denen Inkscape abhängt, verlangen dies bereits. C++11 hat wirkliche Vorteile, insbesondere was die Vereinfachung und die Lesbarkeit des Programmcodes angeht.

Die letzte Aktivität des Tages war das offizielle Hackfest-Abendessen in einem Pub in Leeds mit den besten Dessers und sehr guten Unterhaltungen. Auch am nächsten Tag wurde noch weiter programmiert, bevor sich die Entwickler nach London zum LGM (Libre Graphics Meeting) aufmachten, zum zweiten Teil dieses Abenteuers.

Insgesamt war es ein sehr erfolgreiches Hackfest. Wir bedanken uns bei allen, die uns dieses Hackfest ermöglicht haben!

Zur Photogalerie mit allen Bildern!