ILIAS-Blog

Neuigkeiten und Hintergründe zu ILIAS - dem Open Source LMS

Bericht aus dem Technical Board - PHP 8 und unser Community-Discord

Kruse, Fabian [Fabian] - 7. Apr 2022, 09:46

Das Beta-Release von ILIAS 8 kommt langsam näher und wir können einen ersten Rückblick auf die erfolgten Arbeiten „unter der Haube” wagen. Richard Klees vom Technical Board bringt uns auf den aktuellen Stand – und lädt zudem alle Benutzerinnen und Freunde von ILIAS auf unseren neuen Discord-Server ein.

Hallo Richard. Als wir im Frühjahr 2021 über das PHP8-Projekt sprachen, sagtest Du: "Es würde mich sehr freuen, wenn wir alles schaffen könnten – aber das wäre schon ein kleines Wunder." Ist dieses Wunder geglückt?

Wir sind auf dem besten Wege. Rund 90% sind bereits fertig bearbeitet und ein Großteil unseres Codes befindet sich nun im Review. Allerdings ging diesem erfreulichen Status auch ein erkenntnisreicher – und manchmal schmerzhafter – Prozess voraus: An manchen Stellen hatten wir nicht mehr die Kapazitäten, um alten Code zu retten. So mussten wir uns von einigen Features trennen — zum Beispiel im SCORM-Bereich, aber auch vom PostgreSQL-Support und vom Cloud-Object.

Wie sieht es aus mit den strukturellen Verbesserungen im Code, die Ihr im Rahmen der Überarbeitung vornehmen wolltet?

Die PHP-8-Arbeitsgruppe hatte zu Beginn verschiedene Pakete geschnürt, die jeweils klare Kriterien für die Überarbeitung des Codes enthielten: Ein "Must"-, ein "Should"- und ein "Sustainability"-Paket.

Bereits das "Must"-Paket sah strukturelle Verbesserungen vor – mehr als für PHP 8 nötig gewesen wäre. Dieses Paket konnten wir für fast alle Komponenten umsetzen. Die andere Pakete sahen weitergehende Verbesserungen vor und konnten in einigen Komponenten realisiert oder teilweise realisiert werden, wie zum Beispiel in Services/Cron oder Services/Component.

Trotz dieser Maßnahmen wird das nächste große PHP-Update sicher wieder eine ganze Menge Arbeit bedeuten. Aber immerhin laufen unsere Unit Tests bereits unter PHP 8.1. Wir sind also schon einen Schritt weiter als es streng genommen nötig wäre.

Du hast eben die Code Reviews erwähnt, die momentan durchgeführt werden. Was ist das und wie laufen diese ab?

Bei den Reviews handelt es sich um eine nachvollziehbare Prüfung des Codes durch Dritte, ob die Kriterien der besagten Pakete eingehalten werden. Dies soll sicherstellen, auch gegenüber unseren Finanziers, dass die zugesagten Verbesserungen allesamt umgesetzt wurden.

Konkret bekommt jede überarbeitete Komponente ein Review durch eine andere Organisation. Hier kommen auch Entwicklerinnen und Entwickler zum Einsatz, die sonst nicht an ILIAS programmieren – oder zumindest keine Maintainer sind. So bekommen wir einen frischen Blick auf den Code und auch Nicht-Maintainer*innen haben eine Chance, sich bezahlt mit ILIAS-Code zu beschäftigen.

Wer einen Eindruck der aktuellen Arbeiten erhalten möchte, kann sich gerne mal unsere Pull Requests auf GitHub anschauen: die erste Seite ist voll von Review-Ergebnissen! Es geht also zügig voran. Dennoch benötigen die Reviews mehr Zeit als ursprünglich vermutet. Wir halten den Qualitätsgewinn, den wir hier erreichen können, für sehr wertvoll. Deshalb haben wir die Betaphase von ILIAS auf dem letzten Jour Fixe um einige Wochen verschoben.

Screenshots einiger ILIAS-PHP-8-Reviews auf GitHub

Welche Überraschungen gab es im Laufe des PHP-8-Projekts? Was nimmt die Community mit?

Für die Anwenderinnen und Anwender verspricht die kommende ILIAS-Version dank PHP 8 Zukunftssicherheit, mehr Stabilität und bessere Performanz.

Auf Entwicklungsebene wissen wir heute viel besser, wo wir stehen. Es ist jetzt klar, welchen Umfang an Code wir realistischerweise maintainen können – und wo es zu viel wird. Darüber hinaus haben wir eine gute Form der Zusammenarbeit gefunden, um so ein riesiges Projekt umzusetzen. Auch das nehmen wir für die Zukunft mit.

Eine erfreuliche Überraschung war die hohe Bereitschaft in der ILIAS-Community, für diese nicht sichtbaren Arbeiten Gelder bereitzustellen. In unserer Wahrnehmung lief das noch einmal deutlich besser als beim Update auf PHP 7. Dies freut uns sehr!

Zusammenfassend ist die Umsetzung der PHP-8-Unterstützung der größte koordinierte Vorgang, den wir als Community je gestemmt haben. Alle Service-Provider, Maintenainer und Finanziers der verschiedensten Institutionen haben super zusammengearbeitet. Die Kommunikation auf dem Jour Fixe und den Entwicklungskonferenzen hat gut geklappt, ebenso die Code Reviews. Wir sehen darin eine tolle Erfahrung, die zeigt, was für große Dinge wir gemeinsam schaffen können!

ILIAS-Community auf Discord

Jetzt möchte ich gerne noch auf ein anderes Thema zu sprechen kommen, das auch auf der letzten DevConf vorgestellt wurde: den Open ILIAS Workspace. Welche Ziele verfolgt Ihr damit?

Es begann mit der Frage, wie eigentlich neue Personen in die ILIAS-Community kommen: Was mache ich, wenn ich einen ersten Kontakt herstellen möchte? An wen wende ich mich?

Bisher war das oft ein weiter Weg. Zwar kann man sich auf der Docu-Installation anmelden und etwas in den Foren posten. Doch manchmal erhält man dort keine Antwort – und manchen Interessierten ist das Forum womöglich schon zu stark formalisiert.

Um aber neue Mitglieder in die Community zu bekommen, ist aus unserer Sicht ein schneller und direkter Kontakt wichtig. Bereits im Vorfeld hatten sich einige Sub-Communities aus dem ILIAS-Umfeld auf verschiedenen Plattformen gegründet – zum Beispiel auf Skype, Teams oder Slack.

Wir wollten nun einen gemeinsamen Ort finden, an dem wir zusammenarbeiten und uns austauschen können – und der jedem offen steht. Dies sollte ein transparenter und partizipativer Prozess sein, weshalb wir über den Jour Fixe Vorschläge und Feedback zu verschiedenen Tools eingesammelt haben.

Die Wahl ist letztlich auf Discord gefallen. Was ist das und wie kann man sich dort beteiligen?

Discord ist eine Plattform für Online-Communities, die ursprünglich aus dem Gamer-Umfeld stammt. Inzwischen wird sie jedoch auch anderweitig genutzt.

Um mitzumachen, klickt einfach auf diesen Link und meldet Euch an: https://discord.gg/bJFJwUMVHn

Der Link führt zum Discord-Server der ILIAS-Community. Dort sind fast zu jeder Zeit etliche ILIAS-affine Menschen online. Auch Neulinge sollten schnell verstehen, wie es funktioniert.

Was kostet der Spaß denn? Und wie sieht es aus mit dem Thema Datenschutz?

Die Teilnahme an Discord ist kostenfrei möglich. Das Tool finanziert sich momentan über Risikokapital und bestimmte Upgrades, die Anwenderinnen und Anwender kaufen können. Es handelt sich dabei um Avatare oder besondere Effekte. Hier erkennt man noch die Herkunft der Firma aus dem Spielebereich.

Die Datenschutzerklärung ist aus meiner Sicht gut nachvollziehbar. Allerdings handelt es sich bei Discord Inc. um eine US-Firma. Inhalte können von dieser Firma gelesen werden. Sicherlich ist perspektivisch auch ein Verkauf von Discord an ein anderes Unternehmen denkbar. Wie bei allen Online-Diensten, muss man also auch bei Discord abwägen, ob man ihn benutzen möchte.

Weshalb konnte sich kein Open-Source-Tool in der Community durchsetzen? Mit Mattermost und BBB stand doch eine gute Alternative zur Wahl, die man selber hätte hosten können…

Die beiden Tools haben ähnliche Features, aber einen unterschiedlichen Fokus. Sicherlich ist Mattermost ein tolles Werkzeug. Die Entscheidung fiel jedoch auf Discord, weil es uns erlaubt, dort unsere Community weiter auszubauen und neue Leute anzulocken. Im Gegensatz dazu scheint Mattermost eher dazu geeignet, die Kommunikation in einer bestehenden Gruppe zu erleichtern.

Um ein paar konkrete Beispiele zu nennen: Bei Mattermost muss man Kanäle erst suchen, während sie einem bei Discord direkt präsentiert werden. So hat man einen leichten Einstieg. Man sieht  auch sofort, wer alles online ist. Bei Mattermost ist hierfür ein weiterer Klick nötig.

Letztendlich gab es während der Testphase auf Discord auch die meiste Aktivität. Und diese nimmt auch weiter zu: Während wir gerade sprechen, sind 28 Leute online!

Screenshot des ILIAS-Discord-Servers

Welche Regeln gibt es beim Einsatz von Discord?

Die wichtigste Regel: Discord ist kein Ersatz für andere Tools der Community! Wenn es bereits ein dezidiertes Werkzeug gibt, soll dieses weiterhin genutzt werden. So sollen Diskussionen über Bugs nach wie vor auf Mantis erfolgen. Feature-Ideen gehören ins Feature Wiki. Wir wünschen uns zudem, dass SIGs ihre Tätigkeit nicht auf Discord verlagern, sondern wie bisher BBB nutzen. Dokumente sollten auf der Docu-Installation veröffentlicht werden.

Discord soll nur ein weiteres, niedrigschwelliges Angebot sein – aber keine Voraussetzung, um an der Community teilzunehmen!

Als Technical Board würden wir uns natürlich sehr freuen, wenn möglichst viele Mitglieder der ILIAS-Community einmal auf unserem Discord-Server vorbeischauen. Man lernt dort schnell Leute kennen, mit denen man bisher noch keinen direkten Kontakt hatte. Das Netzwerk ist sehr viel offener als andere Bereiche.

Wir freuen uns über Vorschläge aus der Community, was wir dort noch machen wollen. Weitere Kanäle können wir gerne anlegen – und dank der guten Rechteverwaltung auch an engagierte Teilnehmerinnen übergeben. So haben wir zum Beispiel einen Haskell-Lesekreis gegründet. Dort wollen wir gemeinsam funktional programmieren lernen. Wer weitere Ideen in dieser Art hat, kann sich immer gerne melden!


Comments

  • User Avatar of Fabian

    Kruse, Fabian [Fabian]

    Bugs sind natürlich nur eine Teilgruppe der denkbaren Issues. Kannst gerne ein Language Issue für diesen Blogpost melden! ;)

    Created on7. Apr 2022
  • User Avatar of dstrassner

    Strassner, Denis [dstrassner]

    Wir sprechen doch über Issues :-)

    Created on7. Apr 2022
    Last edited on7. Apr 2022