Mit den meisten ModuleStudio-Versionen werden nicht nur Korrekturen und Verbesserungen im Generator, sondern auch kleinere Veränderungen für die Editoren vorgenommen. Dieser Beitrag stellt zwei spezifische Neuerungen im Detail vor.
Verbesserte Fehlertoleranz verzeiht falsche Änderungen In ModuleStudio 1.3.0 wurde beispielsweise dafür gesorgt, dass invalide Änderungen im textuellen Editor - egal ob unabhängig vom graphischen Editor oder eingebettet im Diagramm - dazu führen, dass das komplette Diagramm gelöscht wird.
Wie im Handbuch gezeigt, werden nicht (mehr) erkannte semantische Elemente im Diagramm markiert, was besagt, dass sie beim nächsten Speichern verschwinden würden.
Gegenwärtig passiert nicht wirklich viel Spektakuläres. Dennoch sind einige Aktivitäten im Gange. Dieser Beitrag gibt einen kurzen Überblick.
Im Zikula Core wurden nach dem letzten Cross-Release zwischenzeitlich neue Vendor-Updates eingespielt. So gab es unter anderem bereits neue Symfony Upgrades für Zikula 1.5.6 und 2.0.6. Bei ModuleStudio sind seit dem Release von 1.3.0 ein paar kleinere Änderungen für 1.3.1 eingeflossen. Auch wenn diese recht bescheiden aussehen, so ist es doch die Summe der kleinen Dinge, die im Ergebnis die Qualität des Produktes ausmacht ;-) Es scheint, als wäre nun ein Momentum erreicht, was Stabilität und Funktionsumfang anbelangt.
Eine neue Version von ModuleStudio steht zum Download auf der Projektseite bereit. Wer das Tool bereits nutzt, kann auch die integrierte Update-Funktion nutzen, um das Programm zu aktualisieren. Einen kurzen Überblick über die wichtigsten Neuerungen gibt die Release-Ankündigung.
Eines der wichtigsten Module für Zikula ist Content, da es in vielen Projekten als gemeinsames Dach fungiert und Inhalte aus unterschiedlichen Quellen in eine einheitliche Schnittstelle zu den Redakteuren bringt. Daher ist es unabdingbar, dieses Modul fit für die aktuelle Generation Zikula 2.x zu machen.
In den letzten Wochen haben wir überlegt, was konzeptionell für eine neue und modernisierte Version 5 des Content-Moduls notwendig ist. Anfang Januar ging es dann endlich an die ersten Schritte: die Modellierung des Moduls.
Seit dem kürzlich angekündigten Start der Testautomatisierung von ModuleStudio ist bereits eine Menge geschehen. So gibt es knapp 1.000 Tests für die DSL, darunter vorwiegend für UI-unabhängige Komponenten, wie den Parser, den Serialisierer, den Formattierer und die Validierungsregeln. Hier haben wir eine Testabdeckung von etwa 95% erreicht und konnten einige Fehler in der Validierungsschicht beheben.
Auch der Generator wird bereits mit einer Abdeckung von über 90% getestet. Hier ging es bislang allerdings vorwiegend darum, möglichst viele Varianzen zu durchlaufen, um zum Beispiel Null Pointer Exceptions zu verhindern.
Mittlerweile ist ModuleStudio bei der Version 1.2.0 angelangt. In der letzten Zeit hat sich wieder eine Menge in dem Projekt getan. Der Vollständigkeit halber wird daher hier für weitere Infos auch die Ankündigung der Version 1.1.0 mit verlinkt.
Release 1.1.0 Release 1.2.0
Schon ewig geplant, aber lange schmählich vernachlässigt, habe ich bei ModuleStudio die automatisierten Tests. Zwar ist schon seit Längerem die Infrastruktur dahingehend ausgerichtet, was beispielsweise die Git-Struktur und die Jenkins-Pipelines anbelangt, allerdings bringt das relativ wenig, wenn es fast nur Dummy-Tests ohne jeglichen Inhalt gibt.
Da ModuleStudio 1.1.0 kürzlich veröffentlicht wurde, konnten danach in der Entwicklungsversion 1.2.0 einige Altlasten entfernt werden. Da hat es sich im Hinblick auf Timing und Ausgangslage angeboten, endlich zu starten.
Der Zikula Core enthält eine zentrale Verwaltung für Kategorien, mit denen man vielfältige Lösungen umsetzen kann. Die häufigste Verwendung von Kategorien ist sicherlich eine thematische Zuordnung von Inhalten. So lassen sich beispielsweise Newsartikel unterschiedlichen Themengebieten zuordnen. Dieser Artikel ist etwa in der Kategorie “Basics”. Im Folgenden wird ein Überblick darüber gegeben, was sich darüber hinaus noch alles mit Kategorien machen lässt.
Zunächst einmal bietet das Kategoriensystem einige Funktionen, die allgemein nützlich sind.
Gegenwärtig arbeiten wir an der Konzeption einer Änderung in der Modellierungssprache von ModuleStudio, die uns schon seit Längerem umtreibt. Noch aus der Anfangsphase des Projektes gibt es neben den Feldern einer Entität auch Elemente für Variablen, die zentrale Konfigurationseinstellungen repräsentieren. Diese Variablen wurden bislang allerdings eher stiefmütterlich behandelt. Anstatt diese nun weiter aufzubohren, geht die Strategie eher in die Richtung, die normalen Feldtypen auch für Variablen wiederzuverwenden.
ModuleStudio kann anhand des Containers eines Feldes immer noch erkennen, ob es sich hierbei um ein Feld einer Entität oder um eine Konfigurationseinstellung handelt.
Das zweite Service-Update für ModuleStudio 1.0 wurde heute veröffentlicht. Weitere Informationen können auf der Release-Seite eingesehen werden.