OXID-DependencyManager


Seit kurzem ist der OXID-DependencyManager auf GitHub verfügbar.
Dieser handled Abhängigkeiten zwischen einzelnen Modulen.

In einigen Fällen reicht es nicht aus Module als ganzes zu betrachten. Manchmal kommt es vor, dass
einzelne Featuresets als eigenes Produkt angesehen werden oder das eigene Modul auf einem anderen Modul beruht.
Das ein eigenes Modul auf einem anderen basiert kann z.B. auftreten, wenn ein Kunde sich eine Änderung eines
bislang eingesetzen Moduls wünscht. Als Entwickler möchte man im Regelfall das fremde Modul nicht anfassen um aufwärtskompatibel zu bleiben.

OXID ermöglicht im Standard das Überladen von Fremdmodulen, handled aber dahingehend keine Abhängigkeiten. Dahingehend besteht die Möglichkeit
Module zu deaktivieren, bei welchen die davon abhängigen Module aktiv bleiben. Dies führt zu Konflikten sowie massenhaft zu Fehlermeldungen von
OXID. Nicht in allen Fällen kümmern sich die Entwickler um die Module welche auf dem Kundensystem installiert sind, außerdem
kann es vorkommen, dass ein Deployment-Master innerhalb eines Teams definiert ist, dieser muss nicht zwangsläufig über die aktuellen Entwicklungsstände
informiert sein (z.B. weil einige Implementationen als selbstverständlich empfunden werden, aufgrund der Benennung der Git-Branches).

Gerade StartUp Unternehmen haben meist dahingehend kaum eine Möglichkeit Usebility Fehler auzuschließen.
Ein Modul wird deaktiviert, das Submodul ist nach wie vor aktiv. Dies führt im Frontend oder Backend meist zu Fehlern.
Das Debugging dafür kostet enorm viel Zeit oder Ressourcen, bis eines Tages in einem Meeting oder einer Telco genannt wird, dass
ein Submodul zu einem deaktivierten Modul besteht.

All das lässt sich vermeiden. Wir kennen es von Composer, welches sich als Paketmanager für die PHP-Entwicklung etabliert hat.
Es verwaltet allerlei Abhängigkeiten zu Fremdbibliothken. Wenn eine Library zu der Library XY in der Version 1.0.0 nur bis Version 1.9.* der Library ABC kompatibel ist,
so wird diese auch nur bis zur Version 1.9.X geupraded (X ist dabei der unbestimmte Wert der eine Patch-Version annehmen kann), damit diese im späteren Falle kompatibel bleibt (Stichwort: Semantical Versioning).

In dieser Systematik gibt es derzeit ein neues kostenfreies Modul für OXID, welches Wildcards und feste Definitionen handhaben kann.
Aliases o.ä. handhabt dieses Modul nicht, stellt dahingehend trotzdem einen sehr attraktiven Stand dar, der für Die Abhängigkeiten zwischen einzelnen
Modulen greift.

https://github.com/N3XT0R/OXID-DependencyManager/tree/v1.0.0

0

No Responses

  1. Pingback: OXID-DependencyManager - Planet OXID März 29, 2016

Leave a Reply