Summer of Code beendet

Der Google Summer of Code ist beendet. Die Zeit – vor allem kurz vor der Deadline – war super intensiv und ich habe noch nie mehr für ein OpenSource-Projekt innerhalb einer so kurzen Zeit getan wie im SoC, insofern ein großes Dankeschön an Google, dass sie mich gesponsert haben und das Ganze überhaupt möglich gemacht haben! Ebenfalls Danke OpenSUSE, dass ihr mein Projekt ankzeptiert habt und an Vincent Untz als mein Mentor. Und absolute Anerkennung an OpenSUSE dafür, dass ihr distributionsübergreifende SoC Projekte bei euch so extrem fördert!

Also, was habe ich den Sommer über gemacht? Ziel meines SoC Projektes war es, das Software Center, welches in Ubuntu als “Ubuntu Software Center” (USC) zum Einsatz kommt, auf anderen Distributionen lauffähig zu machen.

Zu Beginn des Projektes hatte ich gedacht, extrem viel im Python-Code des SC arbeiten zu müssen. Aber schon nach kurzer Zeit hatte sich herausgestellt, dass PackageKit, die Abstraktionsschicht zum Paketmanager (Apt, Yum, Zypper, …), einige Limitationen aufweist, die erst beseitigt werden mussten, um an ein nutzerfreundliches SC unter anderen Distributionen überhaupt erst zu denken.

Also habe ich den Sommer über hauptsächlich PackageKit weiterentwickelt, was mir als PackageKit-Entwickler natürlich sehr gelegen kam, zumal ich deutlich lieber in C als in Python programmiere.

Zusammen mit Richard Hughes habe ich mich der Aufgabe angenommen, PackageKit so parallel wie möglich zu machen, das bedeutet man kann jetzt (sofern das Backend es unterstützt) viele Leseaktionen auf der Paketdatenbank gleichzeitig ausfüren. Im Zuge dessen habe ich auch einige Mikrooptimierungen implementiert, welche PackageKit insgesamt schneller machen sollen. Zusammen haben wir kaum einen Stein auf dem Anderen gelassen, um auch noch das letzte Quäntchen Leistung rausholen zu können und das API für Entwickler von Paketmanager-Backends noch flexible zu machen. Das Resultat kann man in PackageKit 0.8.4 betrachten.

Weiterhin habe ich natürlich eine große Menge an Optimierungen am Software Center vorgenommen, sodass es jetzt unter Debian, Fedora und theoretisch jeder anderen Distro lauffähig ist:

Das Problem ist, dass das Software Center noch immer mit PackageKit noch nicht so umgeht, wie es am sinnvollsten wäre. Immerhin wurde es für Aptdaemon und Ubuntu designed, und das merkt man deutlich unter anderen Distributionen.

Last but not least habe ich auch ein komplett neues Projekt gestartet: AppStream-Core. Dieses Projekt implementiert die Anwendungsdatenbank, wie sie im Software Center verwendet wird. Momentan benötigt man das originale Software Center, um diese Datenbank zu bauen und darauf einfach zuzugreifen. Das ist schlecht, da es effektiv alternative Software-Center Implementierungen behindert – immerhin muss noch immer das “Original” installiert sein. Das neue Projekt implementiert nun die AppStream-Datenbank in C++ und stellt eine GObject-basierte Schnittstelle für andere Anwendungen bereit. Diese können dann Projekte wie das “Light Software Center” (Xubuntu) nutzen, um auf die Anwendungsdatenbank zuzugreifen. Konkurrenz belebt das Geschäft. Mit meiner Bibliothek wird es super einfach, ein neues Software-Center zu entwickeln, was eventuell mit den Ressourcen deutlich sparsamer umgeht als das Original. Pakete für AppStream-Core wird es geben, sobald das Freedesktop-Projekt dafür erstellt ist.

Im KDE Software-Manager Apper habe ich Unterstützung für AppStream (da allerdings ohne GObject) nach Ende meines SoC bereits implementiert.

Ganz allgemein gab es diesen Summer of Code eine extrem große Menge wirklich cooler Projekte, die jetzt so nach und nach in die Hauptentwicklungszweige der jeweiligen Projekte einfließen. Den größten Sprung vorwärts hat meiner Meinung nach unter Anderem die GNOME-Shell gemacht, mit einer verbesserten Shell-Ansicht und dem Screenlocker.

Aber auch in anderen Projekten hat es große Fortschritte gegeben, in denen ich mich jetzt vermutlich verlieren würde. Eine Liste aller Projekte findet ihr hier.

Ich kann jedem nur Empfehlen sich beim Summer of Code zu bewerben! Alleine die Erfahrung ist das schon Wert, außerdem hat man die Möglichkeit, in der Zeit des SoC ein Projekt wirklich einen sehr großen Schritt vorwärts zu bewegen. Es ist – insbesondere da das Studium ja noch nebenher läuft – natürlich anstrengend, aber es lohnt sich! Wenn man noch keine direkte Verbindung in die Entwicklercommunity hat, ist das zudem auch ein einfacher Weg, in ein Projekt hinein zu kommen. Wer fragen hat, kann sich gerne bei mir melden! 😉

One Comment

  • Michael commented on 16. September 2012 Reply

    Freut mich sehr wiedereinmal von diesem Projekt zu hören. Kann mich noch an die Ankündigung erinnern 🙂

    Vielen Dank für Deinen Einsatz!

    😀

Leave a Reply

Your email address will not be published. Required fields are marked *