Datenabgleich nicht möglich, wenn package.xml unvollständig

  • Affected Version
    WoltLab Suite 5.3

    Ich habe gerade in einem meiner Plugins den Ordner für das PIP "acpTemplate" erstellt, sprich "acptemplates". Lade ich den Ordner danach hoch, wird er korrekt von den Devtools im WSC erkannt und lässt sich theoretisch abgleichen.


    Klicke ich auf den Datenabgleich für das entsprechende PIP, kommt allerdings folgende Fehlermeldung:


    Requested URL
    POST /acp/index.php?ajax-proxy/&t=effdab25e4bc48484adc824a722385d74c0e67ab
    Referrer
    https://localhost/acp/index.php?devtools-project-sync/1/
    Error Message
    Unknown file 'acptemplates.tar'
    Type
    InvalidArgumentException
    File (Line)
    /opt/bw-dev/lib/system/devtools/package/DevtoolsInstaller.class.php (112)
    Stacktrace
    1. /opt/bw-dev/lib/system/setup/Installer.class.php (121): wcf\system\devtools\package\DevtoolsInstaller->getTar(…)
    2. /opt/bw-dev/lib/system/setup/Installer.class.php (54): wcf\system\setup\Installer->install(…)
    3. /opt/bw-dev/lib/system/devtools/package/DevtoolsInstaller.class.php (31): wcf\system\setup\Installer->__construct(…)
    4. /opt/bw-dev/lib/system/devtools/pip/DevtoolsPackageInstallationDispatcher.class.php (89): wcf\system\devtools\package\DevtoolsInstaller->__construct(…)
    5. /opt/bw-dev/lib/system/package/plugin/ACPTemplatePackageInstallationPlugin.class.php (49): wcf\system\devtools\pip\DevtoolsPackageInstallationDispatcher->extractFiles(…)
    6. /opt/bw-dev/lib/system/package/plugin/AbstractPackageInstallationPlugin.class.php (70): wcf\system\package\plugin\ACPTemplatePackageInstallationPlugin->install(…)
    7. /opt/bw-dev/lib/data/package/installation/plugin/PackageInstallationPluginAction.class.php (106): wcf\system\package\plugin\AbstractPackageInstallationPlugin->update(…)
    8. /opt/bw-dev/lib/data/AbstractDatabaseObjectAction.class.php (204): wcf\data\package\installation\plugin\PackageInstallationPluginAction->invoke(…)
    9. /opt/bw-dev/lib/action/AJAXProxyAction.class.php (75): wcf\data\AbstractDatabaseObjectAction->executeAction(…)
    10. /opt/bw-dev/lib/action/AJAXInvokeAction.class.php (94): wcf\action\AJAXProxyAction->invoke(…)
    11. /opt/bw-dev/lib/action/AbstractAction.class.php (47): wcf\action\AJAXInvokeAction->execute(…)
    12. /opt/bw-dev/lib/action/AJAXInvokeAction.class.php (61): wcf\action\AbstractAction->__run(…)
    13. /opt/bw-dev/lib/system/request/Request.class.php (83): wcf\action\AJAXInvokeAction->__run(…)
    14. /opt/bw-dev/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
    15. /opt/bw-dev/acp/index.php (9): wcf\system\request\RequestHandler->handle(…)


    Unter der Fehlermeldung verstehe ich, dass er die Datei "acptemplates.tar" nicht finden kann. Kein Problem: Ich lasse das Build-Script drüber laufen, habe dann die entsprechende Datei und lade diese ebenfalls hoch. Ein erneuter Datenabgleich führt allerdings zum gleichen Fehler.


    Nach einigem rumprobieren lag es wohl daran, dass ich das PIP nicht als instruction in den install-instructions in der package.xml hinzugefügt hatte.


    Einerseits denke ich, sollte die Fehlermeldung dann vielleicht eine andere sein (irgendwie sowas wie "Kann install-instruction für PIP acpTemplate nicht in der package.xml finden"). Und andererseits war mein Stand, dass die package.xml nicht für die Nutzung der DevTools benötigt wird, zumindest nicht für die install-instructions, und die möglichen PIPs allein anhand der Suchmuster im Dateisystem gesucht werden. Ich verstehe dann den Abgleich mit der package.xml nicht.


    Hier sollte nochmal etwas nachgebessert werden, sofern möglich.

  • Damit er das Verzeichnis aber korrekt findet, muss die entsprechende Instruktion in der package.xml zusätzlich zum Ordner im Dateisystem vorhanden sein.

    Das Verzeichnis wird durch die DevTools anhand des Standard-Suchmusters bereits erkannt. Dann sollte, sofern das PIP nicht vorhanden ist, auch kein Abgleich möglich sein, solange er gar nicht weiß, ob es das korrekte Verzeichnis ist.


    Oder dient dies dem speziellen Fall, dass man die Templates zum Beispiel in den Ordner files packt und andersrum?


    Aktuell ist es wie gesagt so, dass sobald das Verzeichnis gefunden wird, das PIP im Datenabgleich angezeigt wird. Daher ist meine erste Reaktion darauf, dass er es bereits richtig erkannt hat und ein Abgleich ohne weitere Anpassungen möglich ist. Fehler im Verzeichnis oder darin befindlichen Dateien natürlich ausgeschlossen.