Wissen / Extensions & individuelle Funktionen / Was passiert mit Extensions bei einem TYPO3 Update

Was passiert mit Extensions bei einem TYPO3-Update?

Extensions sind bei einem TYPO3-Update einer der Punkte, die ich mir als Erstes ansehe.

Bevor überhaupt entschieden werden kann, wie aufwendig ein Update wird, muss klar sein, welche Extensions installiert sind, welche davon noch gebraucht werden und ob sie für die gewünschte TYPO3-Version verfügbar sind.

Dabei ist Extension nicht gleich Extension. Es gibt Erweiterungen, die direkt zu TYPO3 gehören, öffentliche Extensions aus dem TYPO3 Extension Repository und individuell für ein Projekt entwickelte Extensions. Für jede dieser Gruppen gelten beim Update andere Regeln.

Welche Arten von Extensions gibt es?

TYPO3 bringt selbst bereits sogenannte System Extensions mit. Sie gehören zum Core und werden zusammen mit TYPO3 weiterentwickelt. Wenn TYPO3 auf eine neue Version aktualisiert wird, kommen die passenden Versionen dieser System Extensions automatisch mit. Um deren grundsätzliche Kompatibilität muss man sich beim Update also nicht separat kümmern.

Anders sieht es bei Extensions aus dem TYPO3 Extension Repository, kurz TER, aus. Im TER kann grundsätzlich jeder Entwickler Erweiterungen für TYPO3 veröffentlichen. Das ist praktisch, weil sich dadurch viele Funktionen nutzen lassen, ohne sie selbst entwickeln zu müssen. Man schafft sich damit aber auch eine Abhängigkeit vom jeweiligen Entwickler oder Team hinter der Extension.

Was passiert mit Extensions aus dem TER?

Bei jeder wichtigen TER-Extension prüfe ich zunächst, ob es eine Version für die gewünschte TYPO3-Zielversion gibt. Wenn ja, ist der erste wichtige Schritt geschafft. Trotzdem bedeutet „kompatibel mit TYPO3 14“ nicht automatisch, dass man die neue Extension-Version installiert und danach nichts mehr prüfen muss.

Ich schaue mir immer die Changelogs an.

Dort stehen unter anderem sogenannte Breaking Changes. Damit sind Änderungen gemeint, durch die etwas, das mit der alten Version funktioniert hat, in der neuen Version nicht mehr genauso funktioniert. Das können kleine Änderungen sein, die schnell behoben sind. Es können aber auch Anpassungen an Templates, Konfiguration oder Datenstrukturen notwendig werden.

Die Versionsfreigabe einer Extension ist deshalb nur der Anfang der Prüfung, nicht das Ende.

Was ist, wenn eine Extension nicht mehr weiterentwickelt wird?

Das ist das Risiko bei Drittanbieter-Extensions. Wenn ein Entwickler keine Zeit oder keine Lust mehr hat, eine Extension weiterzuentwickeln, gibt es keinen Anspruch darauf, dass irgendwann eine Version für das neue TYPO3 erscheint. Dann muss entschieden werden, wie wichtig die Funktion für die Website ist.

Mögliche Wege sind:

  • die Extension entfernen, wenn sie nicht mehr benötigt wird
  • eine andere Extension als Ersatz einsetzen
  • die benötigte Funktion selbst entwickeln
  • die bestehende Extension selbst an die neue TYPO3-Version anpassen

Welche Lösung sinnvoll ist, hängt stark von der jeweiligen Extension und vom Projekt ab.

Kann man eine öffentliche Extension selbst aktualisieren?

Grundsätzlich ja. Wenn der Quellcode öffentlich verfügbar ist, kann man Änderungen selbst entwickeln und dem Autor zum Beispiel über einen Merge Request anbieten. Bei einem laufenden Kundenupdate ist das aber nur bedingt planbar. Ich habe keinen Einfluss darauf, ob der Autor den Merge Request annimmt und wann er ihn bearbeitet. Man kann den Autor auch direkt kontaktieren. Viele Extension-Entwickler sind bereit, gegen eine finanzielle Beteiligung eine neue TYPO3-Version zu unterstützen oder eine gewünschte Änderung einzubauen. Dafür gibt es allerdings keine festen Regeln oder Preise.

Niemand ist verpflichtet, eine frei verfügbare Extension für eine neue TYPO3-Version weiterzuentwickeln.

Wenn dafür Kosten entstehen, bespreche ich das selbstverständlich vorher mit dem Kunden. Über zusätzliche Ausgaben entscheide ich nicht selbst.

Was ist mit selbst entwickelten Extensions?

Bei eigenen Extensions ist die Situation klarer: Für diese Extensions trägt das Projekt selbst die Verantwortung. Wenn eine individuell entwickelte Extension mit der neuen TYPO3-Version nicht mehr funktioniert, muss sie angepasst werden. Das ist grundsätzlich gut planbar, weil man nicht auf einen externen Autor warten muss. Der Aufwand hängt aber davon ab, wie groß und wie alt die Extension ist und welche TYPO3-Funktionen sie verwendet.

Gerade bei älteren Projekten können eigene Extensions viele Funktionen enthalten, die über Jahre entstanden sind. Deshalb sind Custom Extensions häufig einer der wichtigsten Punkte bei der Aufwandsschätzung eines Updates.

Templates und Konfiguration müssen ebenfalls geprüft werden

Viele Extensions bringen eigene Templates mit. In Kundenprojekten werden diese Templates häufig überschrieben, damit Ausgabe und Design zur Website passen. Genau dort muss man bei einem Update genauer hinsehen. Eine neue Extension-Version kann zum Beispiel Variablen anders benennen, zusätzliche Werte bereitstellen oder bestehende Strukturen verändern. Ein altes überschriebenes Template kann dann zwar noch vorhanden sein, aber nicht mehr korrekt funktionieren. Dasselbe gilt für die Konfiguration einer Extension.

Auch wenn die Extension selbst mit der neuen TYPO3-Version kompatibel ist, können individuelle Anpassungen rund um die Extension trotzdem Arbeit verursachen.

Deshalb vergleiche ich bei einem Update nicht nur Versionsnummern, sondern auch die Stellen, an denen das Projekt die Extension angepasst hat.

Müssen Extensions auch Daten migrieren?

Sehr häufig. Extensions speichern eigene Informationen in der Datenbank. Wenn sich mit einer neuen Version die Struktur dieser Daten ändert, müssen vorhandene Datensätze angepasst werden. Dafür gibt es in TYPO3 unter anderem Upgrade Wizards. Diese übernehmen vorgesehene Migrationen automatisch. Das können beispielsweise neue Datenbankfelder sein, geänderte Feldtypen oder Daten, die künftig anders gespeichert werden. Wenn die Extension ihren Migrationsweg sauber mitliefert, lässt sich das kontrolliert durchführen. Fehlt eine notwendige Migration, muss sie im Zweifel selbst umgesetzt werden.

Prüfe ich beim Update auch, ob eine Extension überhaupt noch gebraucht wird?

Ja. Ein TYPO3-Update ist ein guter Zeitpunkt, um Altlasten loszuwerden. Es kommt durchaus vor, dass eine Extension noch installiert ist, obwohl die dazugehörige Funktion längst nicht mehr benutzt wird. Dann gibt es keinen Grund, diese Abhängigkeit weiterhin durch jedes zukünftige Update mitzuschleppen. Manchmal wird eine frühere Extension sogar komplett überflüssig, weil TYPO3 die Funktion inzwischen selbst mitbringt.

Ein bekanntes Beispiel ist RealURL. Die Extension wurde früher genutzt, um lesbare URLs zu erzeugen. Diese Aufgabe wird seit Jahren direkt von TYPO3 selbst übernommen. In so einem Fall wird die alte Extension nicht aktualisiert, sondern entfernt und die Funktion mit den heutigen TYPO3-Mitteln umgesetzt.

Weniger unnötige Extensions bedeuten in Zukunft auch weniger Abhängigkeiten und weniger Updateaufwand.

Wie wird geprüft, ob nach dem Update noch alles funktioniert?

Nach dem Update teste ich die Extension nicht nur technisch. Die bestehende Website läuft während der Entwicklung normalerweise weiterhin in ihrer alten Version auf dem Live-System. Dadurch gibt es einen sehr guten Vergleich. Ich prüfe auf der aktualisierten Entwicklungsumgebung, ob die Funktionen weiterhin so arbeiten wie auf der bestehenden Website. Das gilt sowohl für das Frontend als auch für das Backend. Wenn eine Extension beispielsweise Formulare bereitstellt, reicht es nicht, dass die Seite ohne Fehlermeldung lädt. Das Formular muss funktionieren. Wenn eine Extension Inhalte im Backend verwaltet, müssen auch die entsprechenden Backend-Funktionen geprüft werden.

Entscheidend ist nicht, ob eine Extension nach dem Update installiert ist. Entscheidend ist, ob die Funktion, für die sie gebraucht wird, danach weiterhin korrekt arbeitet.

Was passiert also mit Extensions bei einem TYPO3-Update?

Zuerst wird geprüft, welche Extensions überhaupt installiert und noch relevant sind. System Extensions werden mit TYPO3 selbst aktualisiert. Bei TER-Extensions muss geklärt werden, ob passende Versionen verfügbar sind und welche Änderungen diese mitbringen. Eigene Extensions müssen bei Bedarf selbst angepasst werden. Dazu kommen Templates, Konfigurationen und mögliche Datenmigrationen.

Eine Extension wird bei einem TYPO3-Update nicht einfach nur mit aktualisiert. Für jede wichtige Erweiterung muss geprüft werden, ob sie zur Zielversion passt, was sich geändert hat und ob ihre Funktionen danach noch genauso arbeiten wie vorher.

Je sauberer diese Prüfung vor und während des Updates gemacht wird, desto geringer ist die Wahrscheinlichkeit, dass nach dem Go-live plötzlich eine Funktion fehlt, von der vorher niemand mehr wusste, dass sie überhaupt von einer Extension abhängig war.