Skip to content

Add QUIQQER Tooling

Jan Wennrich schlägt vor, feat-quiqqer-tooling in next-4.x zu mergen.
    Dieser Merge Request fügt diverse Tools zu diesem Paket hinzu.  
    Dazu zählen unter anderem PHPStan, PHPUnit, PHP_CodeSniffer und CaptainHook.
    
    Außerdem wird eine verbesserte Pipeline hinzugefügt.  
    Die Pipeline läuft schneller als die vorherige.  
    Außerdem nutzt sie die oben genannten Tools, um den Code zu überprüfen und seine Korrektheit und Konformität sicherzustellen.
    
    Wenn dein Projekt PHPUnit nutzt, passe bitte die `.gitlab-ci.yml` Datei an.  
    In der Datei wird beschrieben, wie du PHPUnit in der Pipeline aktivierst.  
    Spiele die Änderungen dann in den Feature Branch ein.
    
    Wenn der Merge Request anzeigt, dass die letzte Pipeline erfolgreich durchgelaufen ist, kann der Merge Request gemergt werden.  
    Die folgenden Inhalte sind dann irrelevant.
    
    Ist der Merge Request blockiert, dann ist die neue Pipeline fehlgeschlagen.  
    Was genau fehlgeschlagen ist, offenbart ein Klick auf das 'X' im roten Kreis oder auf die ID der Pipeline.  
    Alle Jobs/Tests, die fehlgeschlagen sind, sind mit einem 'X' markiert.  
    Ein Klick auf den entsprechenden Job, zeigt die Konsolenausgabe des Jobs an.  
    Dort steht was konkret schiefgelaufen ist bzw. nicht korrekt ist.
    
    Um die Fehler zu beheben und mergen zu können, gehe wie folgt vor:
    1. Installiere das Paket in der Version des Feature Branches (`dev-feat-quiqqer-tooling`)
    2. Stelle sicher, dass du Composer und PHIVE global installiert hast
    3. Führe `composer dev:init` aus
    
    Um Codestyle Fehler (phpcs) zu finden, führe `composer dev:lint:style` aus.  
    Viele Fehler können automatisch behoben werden, führe dazu `composer dev:lint:style:fix` aus.  
    Wenn keine Fehler mehr auftreten, spiele deine Änderungen in den Branch ein.  
    Die Pipeline sollte neu starten und hier nun keine Fehler mehr melden.  
    Für weitere Informationen nutze das PHP_CodeSniffer Wiki: https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki
    
    Um PHPStan Fehler zu sehen, führe `composer dev:lint:phpstan` aus.  
    Da das PHPStan Level standardmäßig sehr hoch ist, können sehr viele Fehler auftreten.  
    Du musst nicht (!) alle Fehler beheben. Gehe stattdessen wie folgt vor:  
    - Setze in der `phpstan.dist.neon` das Level auf `1`.  
    - Führe nun PHPStan - wie oben beschrieben - erneut aus.    
    - Nun werden alle kritischen Fehler gelistet, die behoben werden sollten.  
    - Wenn du alle Fehler behoben hast oder sie nicht behebbar sind, generiere eine Baseline.  
    - Nutze dazu den Befehl `tools/phpstan --generate-baseline --allow-empty-baseline`.  
    - Erhöhe dann das Level schrittweise und wiederhole die vorigen Schritte, bis du Level `8` erreicht hast.  
    - Wenn keine Fehler mehr auftreten, spiele deine Änderungen in den Branch ein.  
    
    Die Pipeline sollte neu starten und hier nun keine Fehler mehr melden.  
    Für weitere Informationen nutze die PHPStan Dokumentation: https://phpstan.org/user-guide/getting-started
    
    Um PHPUnit Fehler zu sehen, führe `composer dev:phpunit` aus.  
    Gibt es Fehler überprüfe folgendes:  
    - Stelle sicher, dass die per PHIVE installierte PHPUnit Version korrekt ist (siehe `.phive/phars.xml`).  
    - Stelle sicher, dass deine PHPUnit Config Datei korrekt ist.  
    - Stelle sicher, dass deine Tests mit allen PHP Versionen funktionieren.
    
    Mit dem Befehl `composer run` kannst du dir alle ausführbaren Tool-Befehle anzeigen lassen.  
    Vielleicht ist dort noch etwas hilfreiches für dich dabei.
    
    Wenn nichts hilft, können einzelne Jobs/Tests in der Pipeline auch deaktiviert oder modifiziert werden.  
    Siehe dazu https://dev.quiqqer.com/explore/catalog/quiqqer/stabilization/ci-cd-components/quiqqer-package-bundle#how-to-use

Merge Request-Berichte