Paketinstallation: "classname" validieren

  • App
    WoltLab Suite Core

    Hallo zusammen,


    durch eine automatische Codeformatierung der objectType.xml ist mir kürzlich ein schwerwiegender Fehler unterlaufen. Es wurde nämlich im Tag "classname" eine ungewollte Leerzeile eingefügt, wodurch ein "Class not exist" Fehler, nach der Installation des Updates geworfen wird. Das Problem hätte der WSCore bereits vor der Installation feststellen können um das fehlerhafte Update zu verhindern. Dazu gleich zwei mögliche Vorschläge:


    1. Whitespaces entfernen

    Bei der Paketinstallation könnte man einfach die Werte per trim entsprechend aufräumen, sodass Formatierungfehler und unerwünschte Leerzeilen/-zeichen automatisch entfernt werden und die Installation glatt durchläuft


    2. Validator verbessern

    Den Key "classname", welcher sehr häufig in Installationsanweisungen Verwendung findet, könnte man standardmäßig per class_exists prüfen und die Installation eines fehlerhaften Updates erst gar nicht zulassen, sofern die angegebene Klasse nicht existiert (und dem Paket nicht beiliegt)


    Viele Grüße,

    Daniel

  • Generell könnte die Paket-Installation verbessert werden. Denn viele Fehler werden erst während der Installation von Paketen festgestellt, was die gesamte Installation in einen inkonsistenten Zustand bringen kann. Und wenn es nur Tippfehler in der SQL-Datei sind.

  • Und wenn es nur Tippfehler in der SQL-Datei sind.

    Das wollte ich mir mal ansehen, da ich hier wenig Hoffnung auf Nachbesserungen von WoltLab habe; prinzipiell sollte das Paket ja nur geprüft veröffentlicht werden und dann kein Problem auftreten.

  • Ich meinte das sogar ganz allgemein, egal ob Pluginstore oder nicht. ^^

    Allerdings hast du damit Recht und selbst hier werden auch ab und zu grobe Fehler übersehen, was ja auch menschlich ist. Deswegen wäre hier eine verzeihliche API (z.B. doppeltes Spalten anlegen oder nicht vorhandene Foreign Keys löschen) schick. Eventuell mit Auflistung der Fehler danach. Bisher kann man ja alles in die Tonne kloppen, wenn beim SQL-PIP was schief geht, weil das nicht vor der Fehlermeldung geloggt wird.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!