Skip to content

Roadmap

Jens Schwidder edited this page Aug 9, 2022 · 4 revisions

Ziele

Es gibt viele offene Wünsche und Anforderungen. Es kommen immer wieder neue hinzu. Aktuell müssen technische Verbesserungen und die Grundlagen für eine einfachere Entwicklung im Vordergrund stehen. Die wichtigsten Ziele sind daher momentan die technischen Voraussetzungen für einen stabilen Betrieb von OPUS 4 und die Bereinigung und Modularisierung der Code-Basis für eine einfachere Entwicklung.

Stabiler Betrieb

Um die Kompatibilität mit aktuellen und zukünftigen Betriebssystemen sicherzustellen, müssen alte Softwarebibliotheken, durch aktuelle Versionen ersetzt werden. OPUS 4 verwendet bisher immer noch Zend Framework 1, dass nur mit PHP bis zur Version 7.1 verwendet werden kann. Der Code muss daher auf Laminas, dem Nachfolder des Zend Framework, umgestellt werden. Dafür sind umfangreiche Änderungen notwendig, vieles wird aber auch gleich bleiben. Der Umstieg auf eine völlig neue Software-Plattform wäre noch aufwendiger.

Für den Umstieg auf Laminas ist es auch erforderlich die Anbindung an die Datenbank neu zu implementieren, da der existierende Code nicht einfach für Laminas-DB angepasst werden kann. Außerdem wird Laminas-DB nicht mehr weiter entwickelt. Wir steigen daher auf Doctrine um. Im Rahmen der neuen Implementation wird der Code vereinfacht und besser dokumentiert. Es werden die Grundlagen für den weiteren Ausbau des Datenmodells von OPUS 4 gelegt.

Vereinfachte Entwicklung

TODO

Kommende Releases

OPUS 4.7.2

In dieser Version soll die Application und alle anderen OPUS 4 Pakete von der Implementation im Framework gelöst werden. OPUS 4 soll unabhängig von der konkreten Umsetzung der Datenbankanbindung werden, um diese dann mit Doctrine neu implementieren zu können, ohne dabei den restlichen Code noch einmal anpassen zu müssen. Das soll denn Umbau erleichtern. Dafür muss auch Funktionalität die bisher im Framework mit der Datenbankanbindung vermischt ist, z.B. für DOIs mit DataCite und die XML Generierung, aus dem Framework herausgezogen werden.

OPUS 4.8

Das Framework wird durch eine neue Implementation der Datenbankanbindung mit Doctrine ersetzt. Dadurch wird die Abhängigkeit auf Zend-DB beseitigt und der Weg frei gemacht für den Umstieg auf Laminas. Die neue Implementation reduziert und vereinfacht den Code. Es werden die Grundlagen für den weiteren Ausbau des Datenmodells gelegt. Das Datenbankschema ändert sich nicht. Durch die Vorarbeiten in OPUS 4.7.2 sollte ein einfaches Umschalten auf die neue Implementation möglich sein.

OPUS 4 v5.0

Mit diesem Release ändern sich die Versionsbezeichnungen. Die Versionsnummer, 5.0, wird vom Namen der Software, "OPUS 4", getrennt.

Vollständige Entfernung von Zend Framework 1 durch die Umstellung auf Laminas. Dabei muss der Code auf PHP Namespaces umgestellt werden und die Verzeichnisstruktur in der Application wird sich wesentlich verändern. Das wird es unter Umständen schwierig machen, lokale Anpassungen in den neuen Code zu übernehmen. OPUS 4 v5.0 wird eine ältere Version von Laminas verwenden, um weiterhin mit PHP 7.1 kompatibel zu bleiben und damit das Update zu erleichtern.

OPUS 4 v5.1

Laminas und alle anderen Abhängigkeiten werden auf die aktuellsten Versionen umgestellt. Damit erhöhen sich die Anforderungen an die PHP Version auf mindestens 7.4. Diese OPUS 4 Version soll PHP 8 kompatibel sein. Im Idealfall sind für den Wechsel von 5.0 zu 5.1 keine weiteren Änderungen im Code notwendig.

Weitere Entwicklung

Nach dem Release von 5.1 können neue Funktionen und Erweiterungen wieder mehr Aufmerksamkeit bekommen. Es muss aber auch weiter an grundlegenden Verbesserungen im Code-Basis. Die Modularisierung muss weiter fortgesetzt werden, um die Weiterentwicklung, insbesondere extern, zu vereinfachen. Das Publish-Modul muss komplett ersetzt werden, um dort Verbesserungen umsetzen zu können.

Externe Entwicklung

Durch die verstärkte Modularisierung von OPUS 4 wird die externe Entwicklung einfacher, weil es mehr Möglichkeiten gibt Erweiterungen ohne Eingriffe in den zentralen OPUS 4 Code umzusetzen. Im Idealfall können Erweiterungen einfach zusätzlich installiert werden, ohne das dafür ein neuer Release von OPUS 4 notwendig ist. Dafür sind gut dokumentierte und stabile APIs notwendig.

Dokumentation

Das OPUS 4 Handbuch muss für die neuen Versionen angepasst werden. Die Entwickler-Dokumentation muss weiter ausgebaut werden. Diese Dokumentation wird schrittweise in die GitHub Wikis wandern.

OPUS 4 Community

Für die Kommunikation mit Nutzern und Betreibern von OPUS 4 Repositorien sollen verstärkt die Möglichkeiten von GitHub eingesetzt werden. Insbesondere für die Planung von neuen Funktionen und Erweiterungen ist die Zuarbeit aus der OPUS 4 Community wichtig, um Entwicklungszeiten verkürzen zu können. Anforderungen sollten auch während des aktuellen, technischen Umbau von OPUS 4 gesammelt und im Detail ausgearbeitet werden.