GitHub Actions - Eine Aktion zum Bauen und Testen von Zikula-Modulen

in  Builds & Tests , , , , ,

Vor ein paar Wochen haben wir unsere generator-action vorgestellt, welche die einfache Generierung von Zikula-Erweiterungen mit dem Standalone Generator von ModuleStudio erlaubt. Diese Action wird als Docker Image bereitgestellt und kann auch losgelöst von GitHub Actions verwendet werden. Die zikula-action Analog dazu steht auch eine weitere GitHub Action zur Verfügung: die zikula-action. Dieses Docker Image basiert auf der ebenfalls bereits vorgestellten phpqa-Toolbox und hat somit Zugriff auf zahlreiche Tools rund um Analyse, Tests und Qualitätssicherung.

ModuleStudio 1.4.0 wurde soeben veröffentlicht

in  Generator , , , ,

Eine neue Version von ModuleStudio steht zum Download auf der Projektseite bereit. ModuleStudio 1.4.0 bringt komplette Unterstützung von Anwendungen für das gestern veröffentlichte Zikula 3 und dem damit einhergehenden modernisierten Stack: Symfony 5, Twig 3, Doctrine 2, Bootstrap 4 und Font Awesome 5. Einen kurzen Überblick über die wichtigsten Neuerungen gibt die Release-Ankündigung.

GitHub Actions - Eine Aktion zum Generieren von Zikula-Modulen

in  Builds & Tests , , , , ,

Der Standalone-Generator ModuleStudio bietet einen Standalone-Generator, mit dem sich jederzeit eine Anwendung über die Kommandozeile generieren lässt. Einige allgemeine Informationen hierzu sind der Dokumentation zu entnehmen. Ein simples Beispiel für die Nutzung findet sich ferner in diesem Artikel. Eine Besonderheit hierbei ist, dass die verwendete jar-Datei bei jedem Build des Generators aktualisiert wird. Es handelt sich also immer um den aktuellen Git-Stand. Damit bietet es sich an, den Standalone-Generator zur kontinuierlichen Integration zu verwenden.

Funktionen im Generator zur Versionierung von Daten

in  Generator , , ,

ModuleStudio erlaubt die Nutzung unterschiedlicher Doctrine-Erweiterungen, indem diese im jeweiligen Anwendungsmodell aktiviert und ggf. konfiguriert werden. Neben Baumstrukturen (tree / nested set), lesbaren Permalinks (sluggable) oder Übersetzungen zur Umsetzung mehrsprachiger Daten (translatable) sowie weiteren Funktionen steht hier auch die Möglichkeit zur Verfügung, die Änderungen an Datensätzen in Form einer Revisionierung aufzuzeichnen. Dieser Beitrag gibt einen Überblick über die damit einhergehenden Features. Als gemeinsame Basis der im Folgenden beschriebenen Funktionen kommt die Loggable-Extension für Doctrine zum Einsatz.

Spannende Neuerungen im Zikula Core

in  Zikula Apps , , , , ,

In Zikula 3 werden endlich weitere hilfreiche Funktionen von Symfony verwendet. Zikula 2.x hat bereits auf Symfony 3.4.x aufgesetzt, aber aus Rücksicht auf die Abwärtskompatibilität noch nicht alle Potenziale ausgereizt. Die aktuelle Arbeitsversion von 3.0.0 basiert indes auf Symfony 4.2.4 und setzt noch stärker auf die mit Symfony einhergehenden Möglichkeiten. Besonders angetan bin ich von den Modernisierungen bei der Dependency Injection: mit dem sogenannten Autowiring werden Services automatisch injiziert, es ist keine manuelle Definition (via YAML oder XML) mehr notwendig.

ModuleStudio 1.3.2 ist jetzt verfügbar

in  Generator , , ,

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. Der Artikel zum Release gibt einen Überblick über die wichtigsten Neuerungen. Alle Änderungen im Detail lassen sich indes dem Changelog entnehmen.

Die letzten Verbesserungen im ModuleStudio-Tooling

in  Zikula Apps , , ,

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.

Automatisierte Tests - ein Zwischenstand

in  Builds & Tests , , ,

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.