Eins gleich vorab: Der Großteil der Arbeiten des Wochendes wird für viele Anwender nicht sichtbar sein, da primär Internas verändert wurden.
Folgende Themen wurden bearbeitet:
Die Umstellung der Datenbank auf PostgreSQL
Optimierungen im Wiki
Verbesserung der automatisierten Tests
Überarbeitung der Meldenfunktion
PostgreSQL¶
Die letzten bekannten Fehler im Bezug zur geplanten Migration wurden behoben. Gleichzeitig wurde seitens des Serverteams weiter an der Automatisierung unserer Server mit ansible gearbeitet. Wann eine Migration von MySQL auf PostgreSQL erfolgt, wird im Laufe des nächsten Monats angekündigt.
Wiki¶
Im Zuge der geplanten PostgreSQL Migration wurden einige Unzulänglichkeiten, vor allem aber auch Performanzeprobleme, im Wiki identifiziert. Diese konnten in den letzten Wochen durch einige Optimierungen am Code behoben werden, was vor allem die Anzahl der Serverfehler deutlich reduzieren sollte.
Tests¶
In letzter Zeit hatten wir einige größere Änderungen, welche ein komplettes Durchklicken durch alle Inyoka-Funktionen notwenig gemacht haben. Andernfalls konnten wir nicht sicher gehen, dass das Zusammenspiel der einzelen Teile noch richtig funktioniert. Zwar gibt es Unit tests, allerdings testen diese nicht die Zusammenarbeit verschiedener Komponenten. Darum wurde dieses Wochenende daran gearbeitet, modulübergreifende Integrationtests zu schreiben. Bei diesen Tests wird eine Instanz des Servers gestartet und mithilfe von Selenium 🇬🇧 sowie eines Browsers wird automatisch geklickt und überprüft, dass die Funktion wie erwartet ausgeführt wird. Damit die Tests besser lesbar sind, wurde sich dafür entschieden diese in einem BDD Format zu schreiben. Hierbei werden Schritte in „natürlicher” Sprache beschrieben und dann mit Logik verbunden. Hier ein kleines Beispiel:
Scenario: Login with a valid user Given The user "bdd_user" exits And I am on the "login" page When I fill out the form | field | value | | id_username | bdd_user | | id_password | test | Then it should be successful
Melden Funktion¶
Interne Ansicht der neuen Meldefunktion |
Auch bisher ist es natürlich möglich einzelne Sachen auf ubuntuusers.de zu melden. Am meisten werden dabei Themen im Forum gemeldet, aber auch für Rechtschreibefehler in Ikhaya-Artikeln gibt es eine entsprechende Funktion. Diese sind aber jeweils separat programmiert und zudem sehr beschränkt. So ist es im Forum zum Beispiel nicht möglich einzelne Beiträge zu melden, sondern nur ganze Themen.
Daher wurde Anfang dieses Jahres begonnen ein allgemeingültiges System zu erstellen. Der größere Teil wird für normale Benutzer unsichtbar sein, daher gibt es hier einen Screenshot des internen Teils. Wichtig ist vor allem, dass mit dieser Funktion beliebige Elemente gemeldet werden können (z.B. einzelne Beiträge – zusätzlich zu Themen – sowie beispielsweise Blogbeiträge). Zudem kann dann auch direkt ein Grund ausgewählt werden, wodurch in vielen Fällen eine weitere Erklärung nicht mehr notwendig ist. Natürlich wird es auch weiterhin möglich sein, optional eine Erklärung anzugeben. Zusätzlich dazu wird ein Bearbeiter-Kommentar eingeführt, in dem es möglich ist, den internen Status festzuhalten, so dass z.B. für kleinere Sachen oder Statusinformationen (Wenn es mal länger dauert) kein Thema mehr im internen Moderatoren-Forum erstellt bzw. gesucht werden muss. Dazu kommen statistische Daten wie das Erstellungsdatum der Meldung, wann dieses von wem in Bearbeitung genommen wurde und wann es geschlossen wurde.
Aktuell ist geplant folgende Elemente melden zu können:
Forum: Themen und Beiträge
Beiträge: z.B. aufgrund von Rechtschreibefehlern oder gegen die Regeln verstoßendes Verhalten
Themen: z.B. bei falsch ausgesuchtem Forum oder falscher Ubuntu-Version
Planet: Blogposts
Ikhaya: Artikel und Kommentare
Wiki-Artikel: Einzelne Artikel (evtl. auch Revisionen)
GitHub-Statistiken¶
Zum Schluss wie immer ein paar Statistiken. Es wurden 40 Commits innerhalb von 6 Pull Requests gemergt. Diese haben in 40 Dateien 877 Zeilen hinzugefügt und 202 Zeilen gelöscht.
Vielen Dank an das Webteam für das Einreichen dieses Artikels!