Über den Sommer haben wir Verbesserungen am Paket-Filter und den Labels der Installationen vorgenommen. Der Filter für installierte Pakete wurde um die Eingabe einer Versionsbedingung ergänzt. Damit ist es nun möglich, gezielt nach bestimmten Versionen von Erweiterungen und Paketen zu suchen und diese Installationen entsprechend zu filtern. Im folgenden Beitrag werde ich dir Beispiele vorstellen, wie du diese neue Funktion sinnvoll einsetzen kannst.

Beim Klick auf das Vorschaubild werden Daten von YouTube geladen und deine IP-Adresse übermittelt. Weitere Informationen zum Datenschutz im Zusammenhang mit YouTube findest du in unserer Datenschutzerklärung.

Beispiel: Alte Version von Erweiterungen finden

Obwohl du regelmässig Updates mit trakked durchführst, kann es sein, dass nicht die neuste Version einer Erweiterung installiert wird. Das kann verschiedene Gründe haben. Eine davon ist, dass die Installation der neuen Version gar nicht erlaubt ist.

Denn welche Version eines Pakets (Erweiterung) installiert werden darf, hängt unter anderem von der Definition eines Pakets in der composer.json ab. Je nach Versionseinschränkung (Version Constraint) eines Pakets dürfen von Composer nur bestimmte Versionen installiert werden.

Nehmen wir an, du verwendest die Erweiterung terminal42/contao-pageimage. Aktuell ist die Version 3.4.3 installiert. Es ist aber bereits Version 4.1.7 verfügbar. Diese wird jedoch nicht installiert.

In deiner composer.json wird vermutlich ein ähnlicher Eintrag wie dieser vorhanden sein:

"terminal42/contao-pageimage": "^3.4"

Durch die Angabe von "^3.4" wird festgelegt, dass Composer alle Version ab 3.4.0 jedoch kleiner als 4.0 installieren darf. Und somit wird die neue Version 4.1.7 niemals installiert. Weitere Details dazu findest du in der Dokumentation von Composer.

Wie kann dir nun trakked helfen?

Mithilfe des Filters «installierte Pakete» kannst du herausfinden, welche Installation eine Erweiterung installiert haben. Jetzt kannst du zusätzlich eine Versionsbedingung eingeben und so gezielt die veralteten Installationen finden.

Bleiben wir bei unserem Beispiel.

Wir würden in trakked also nach der Erweiterung terminal42/contao-pageimage einschränken und zusätzlich die Versionsbedingung <4.0 eingeben.

Nun zeigt dir trakked alle Installation an, die noch eine ältere Version wie 4.0 verwenden. Diese Installationen kannst du gezielt prüfen und entsprechend die Version über den Contao Manager bzw. direkt in der composer.json ändern. Beim nächsten Update wird dann immer die neuste Version von terminal42/contao-pageimage installiert.

Beispiel: Gezielt Updates durchführen

Ein weiteres Beispiel wäre die Suche nach einer konkreten Version einer Erweiterung, um gezielt Updates durchzuführen.

Nehmen wir an, eine Erweiterung beinhaltet in der Version 1.2.2 einen Fehler und es wurde ein Update (1.2.3) bereitgestellt. Du möchtest jetzt herausfinden, welche Installationen von diesem Bug betroffen sind und nur diese Installationen aktualisieren.

Dazu filterst du im ersten Schritt nach der Erweiterung und gibst dann in der Versionsbedingung die fehlerhafte Version an. In unserem Beispiel (=1.2.2).

Jetzt markierst du nur diese Installationen und lässt das Update von trakked durchführen. Dadurch sparst du Zeit und vermeidest unnötige Updates.

Beispiel: Fixierte Versionen finden

Manchmal kann es vorkommen, dass eine bestimmte Version eines Pakets fixiert wurde. D. h. in der composer.json wurde eine konkrete Version festgelegt, die installiert werden darf. Dadurch wird allerdings verhindert, dass zukünftig eine neuere Version eines Pakets installiert werden kann.

Nehmen wir an, die Erweiterung terminal42/notification_center wurde aufgrund eines Problems bei mehreren Installationen auf die Version 1.16.12 fixiert. Ein paar Monate später fällt dir ein, dass du diese Fixierungen wieder entfernen solltest. Das Problem, du hast vergessen zu dokumentieren, auf welche Version fixiert wurde und bei welchen Installationen du das gemacht hast.

Genau hier kann wieder die Versionsbedingung helfen.

Du prüfst im ersten Schritt über den Contao Manager oder Packagist, welches die aktuelle Version des Notification Centers ist. Stand heute wäre das 1.7.2. Anschließend filterst du in trakked nach dem Paket notification_center und gibst bei der Versionsbedingung <1.7.2 ein.

Jetzt musst du nur noch die betroffenen Installationen prüfen. Dazu kannst du die Paketliste nutzen und entsprechend die Versionsbedingung der composer.json ansehen.

Die zuvor genannten Beispiele dienen lediglich dazu, dir eine Vorstellung davon zu geben, wie du die Funktion nutzen kannst. Es gibt mit Sicherheit noch zahlreiche weitere Möglichkeiten.

Solltest du einmal nicht sofort sehen, warum ein Paket installiert wurde bzw. nicht installiert werden kann, dann kannst du dies mithilfe der Kommandozeile und Composer herausfinden. Verwende dazu diese Befehle:

php composer.phar depends «paketname»
php composer.phar prohibits «paketname» «version»

Mehr dazu auch in der Dokumentation von Composer.

Übertragung des Installationsstatus auf Labels

Eine weitere Verbesserung betrifft die generierten System-Labels. So siehst du auf den ersten Blick, warum eine Installation als Rot oder Orange markiert wurde.

Verwendest du z. B. eine veraltete Contao oder PHP-Version, siehst du das nun auch direkt an der Label-Farbe.

Sehen wir uns in Kiel?

In einigen Wochen findet die Contao Konferenz in Kiel statt. Wir sind auch dabei und freuen uns auf den persönlichen Austausch. Wenn du Fragen zu trakked hast, sprich uns an! Gerne zeigen wir dir anhand unserer Live-Demo die Funktionen und Vorteile von trakked.

Einen Kommentar schreiben

Bitte addieren Sie 6 und 4.