Automatisierung einer TYPO3-Upgrade-Analyse

worked on by: Juliane Wundermann

Outline

1. Einleitung

TYPO3 CMS ist ein freies Content Management System, in das mit Hilfe von Erweiterungen (Extensions) weitere Funktionen integriert werden können. Viele dieser Erweiterungen stammen von Fremdanbietern. TYPO3 wird beständig weiterentwickelt. Ist die Major-Version zu alt, läuft der Support durch das TYPO3-Team aus. Um den Verlust der Unterstützung zu vermeiden ist in vielen Fällen ein Upgrade der TYPO3-Major-Version problemlos möglich. Im Fall des Upgrades muss für die Fremderweiterungen geprüft werden, ob diese mit der gewünschten Version weiterhin lauffähig sind. Zum Beispiel kann sich die PHP-Version oder die Struktur der Systemkonfiguration ändern. Erweiterungen, die mit den neuen Versionen nicht mehr kompatibel sind, müssen angepasst bzw. ersetzt werden

Die Dauer des Upgrades wird häufig mit dem Stundensatz des jeweiligen Unternehmens multipliziert und bildet damit einen großen Bestandteil der finalen Kosten für den Kunden. Deswegen soll möglichst vor Beginn der Umsetzung geprüft werden, wie lange das Upgrade dauern wird. Hiermit soll bezweckt werden, dass sowohl die Kosten vor Beginn des Upgrades für den Kunden bekannt, als auch die Kosten (Personal, Hardware, Räumlichkeiten, …) nach Fertigstellung des Projekts des beauftragten Unternehmens gedeckt sind.

Die Aufwandsermittlung für die Upgrades der Fremderweiterungen erfolgt durch Sichten der einzelnen Erweiterungen auf Quellcodeebene durch einen/eine Entwickler*in. Dieser Prozess ist einerseits sehr zeitaufwändig und andererseits in wiederkehrende Arbeitsschritte gegliedert. Das Ziel dieser Arbeit ist es, die einmaligen und wiederkehrenden Arbeitsschritte zu identifizieren, diese wenn möglich zu automatisieren und dadurch die Kosten des Upgrades



2. Herangehensweise

Zu Beginn der Arbeit werden grundlegende Begrifflichkeiten und Fragen geklärt. Dazu gehört die Beschreibung von TYPO3 und die Notwendigkeit von Upgrades sowie Upgrade- Analysen. Außerdem wird das derzeitige Verfahren einer Upgrade-Analyse vorgestellt.

Im Anschluss wird aufgezeigt, wie die Analyse eines TYPO3-Upgrades durchgeführt wird. Hierfür wird ein Interview ausgearbeitet. Die Auswertung dieses Interviews soll dazu führen, mögliche Schwachstellen des bestehenden Verfahrens zu entdecken und die Kriterien zu verbessern. Es soll geklärt werden, welche Schritte vorgenommen wurden. Besonderes Augenmerk wird auf Abweichungen vom bekannten Verfahren und deren Gründe gelegt. Weiterhin soll die Zeitkalkulation überprüft werden. War die Zeitprognose zu gering angesetzt, sollen Abweichungen analysiert und Anpassungsstrategien entwickelt werden.

Die Extension „ns_ext_compatiblity“ wurde an einigen Stellen als Möglichkeit benannt, einen Überblick über den aktuellen Stand eines Systems zu liefern.4 Deswegen wird anschließend analysiert was die Extension bietet. Dazu werden sowohl die enthaltenen Funktionen und Templates als auch die generierten Informationen betrachtet.

Im Verlauf der Bachelor Arbeit soll weiterhin geprüft werden, wie die Informationen aus den Tools TYPO3 scanner und phpcs visuell aufbereitet werden können. Dafür muss entschieden werden, welche Funktionen und Templates aus der Extension „ns_ext_compatiblity“ verwendet werden können. Bei Bedarf müssen die bestehenden Funktionen angepasst und erweitert werden.

Im Anschluss soll die Funktion zur Kalkulation der Dauer eines Upgrades auf eine höhere Major-Version entwickelt werden. Dies erfolgt auf Grundlage der Auswertung des Interviews, der bestehenden Extension ns_ext_compatiblity und der oben genannten Open Source Tools.

Die neue Funktion wird dann an bereits durchgeführten Upgrades getestet. Dadurch existiert ein Vergleichswert für die Ausgabe des Algorithmus. So kann eine Aussage zur Qualität des Ausgabewerts getroffen werden.



3. Ziel

Im Verlauf der Bachelor-Arbeit wird angestrebt, eine TYPO3-Extension zu entwickeln. Diese soll ein bestehendes TYPO3-System mit allen zugehörigen Extensions (sowohl TYPO3-Core- Extensions als auch Dritt-Extensions) auf die Kompatibilität bezüglich einer höheren Major- Version des TYPO3 CMS prüfen. Die erhobenen Daten sollen in einem Backend-Modul visualisiert werden. Zusätzlich wird versucht aus diesen Daten den Arbeitsaufwand (in Stunden) für das Upgrade zu ermitteln. Dazu wurden im Unternehmen Kriterien festgelegt. Diese sollen hinterfragt und gegebenenfalls überarbeitet werden.


4. Literatur/Quellen

Es existiert eine TYPO3-Extension von Dritten (ns_ext_compatiblity), die ein Backend- Modul zur Verfügung stellt. Dieses Modul trägt Informationen des aktuellen Systems zusammen, die für das Upgrade wichtig sind. Die im System enthaltenen Extensions werden in einer Tabelle aufgelistet. Diese informiert unter anderem darüber, ob die jeweilige Extension mit der Major-Version des TYPO3 CMS des Zielsystems kompatibel ist. Weiterhin werden aktuelle Server-Konfigurationen, wie die MySQL- und PHP-Versionen, mit den für das Zielsystem benötigten Konfigurationen tabellarisch gegenübergestellt.

Die Gesamtdauer des Upgrades ist die Summe der Zeitaufwendungen für die Anpassungen der einzelnen Extensions an die TYPO3-Zielversion. Dafür werden bei familie redlich die einzelnen Extensions in Kategorien eingeteilt, denen jeweils ein Zeitfaktor zugewiesen ist. Die Einteilung erfolgt nach Kriterien, die auf Grundlage von firmenintern Untersuchungen aufgestellt wurden. Sie basieren auf der Anzahl, der Schwere und der Singularität jener Veränderungen des TYPO3 CMS, die Auswirkungen auf die Extensions haben. Während einer händischen Upgrade-Analyse passt der durchführende Entwickler die Kriterien je nach eigenem Erfahrungsstand an den tatsächlich vermuteten Arbeitsaufwand an. Dieses implizite Wissen soll festgehalten und zur automatisierten Kategorisierung der Extensions herangezogen werden.

Aktuell werden die im System enthaltenen Dritt-Extensions mit den beiden Open Source Tools „TYPO3 scanner“1 und „phpcs“2 mit der Erweiterung „PHP- Compatibility“3 gescannt. Diese liefern einen Überblick über die Kennzahlen der Extensions, auf deren Grundlage Aussagen über den Aufwand des Upgrades getroffen werden können.

Die Arbeit soll an die Bachelor-Arbeit von Sammy Baghdadi mit dem Thema „Konzeption eines Vorgehens für die Durchführung eines Upgrades von TYPO3“ anknüpfen. Hier wird als Bestandteil eines Upgrades die Analysephase benannt. Die Ergebnisse der Analyse des Systems bilden die Grundlage für das Angebot des Upgrades.

Thesis Requirements

formulate requirements here (together with your adviser)

Milestones and Planning

A milestone is a scheduled event signifying the completion of a major deliverable or a set of related deliverables. A milestone has zero duration and no effort -- there is no work associated with a milestone. It is a flag in the workplan to signify some other work has completed. Usually a milestone is used as a project checkpoint to validate how the project is progressing and revalidate work. (Source: http://www.mariosalexandrou.com/definition/milestone.asp)

Milestone no. Past days CW Goals target accomplished wrench
1 DONE 1 CWXX Goals accomplished

Weekly Status

Week 1 (CW XX)

Activities

  • been there, done that

Results

  • achieved XYZ

Next Steps

  • planning …

Problems