Alle noch im Winterschlaf?

in  Verschiedenes  , ,

Alle noch im Winterschlaf?
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.

Rewrite von Content geplant

in  Zikula Apps  , , , , ,

Rewrite von Content geplant
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.

Automatisierte Tests - ein Zwischenstand

in  Builds & Tests  , , ,

Automatisierte Tests - ein Zwischenstand
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.

Ran an die Tests!

in  Builds & Tests  , ,

Ran an die Tests!
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.

Kategorien in Zikula - weit mehr als nur Themen

in  Basics  , ,

Kategorien in Zikula - weit mehr als nur Themen
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.

Vereinfachung der DSL in Bezug auf Variablen

in  Metamodell  , , ,

Vereinfachung der DSL in Bezug auf Variablen
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.