Eine zweite Entwicklung ist ebenfalls sehr zu begrüßen, nämlich die Hinwendung zur zeitgemäßen Modularisierung in Form von Paketen mittels sog. Binary Repositories. Der Kerngedanke dabei ist, wiederwendbare Bibliotheken nicht in jedem Projekt neu zu übersetzen sondern direkt in binärer Form zu nutzen. Die Nachvollziehbarkeit der Paket-Versionen genießt dabei einen hohen Stellenwert. In der Regel wird dabei die sog. semantische Verisonierung verwendet. Ingesamt hat die Praxis des Dependency Managements mit Binary Repositories viele Vorteile, die hier aufzuzählen den Rahmen sprengen würde und von denen der Geringste einfach die Verkürzung der Build-Zeiten ist.
Anders als bei Applikationen beinhaltet die Buildautomatisierung von Bibliotheken nicht ein Deployment einer lauffähigen Software sondern das Deployment eines Paketes in ein Binary Repository wie Maven oder NuGet. Ebenso wichtig ist allerdings die konsistente Versionierung:-Artefakt Software-Artefakt "ausgeliefert" kann die Verwendung ein- und derselben Versionsnummer zu vielerlei Problemen führen.
Eine grundlegende Anforderung der Buildautomatisierung ist daher, den Build fehlschlagen zu lassen falls es
- den Code-Änderungen gibt (ansonten müsste ja nicht gebaut werden)
- die Versionsnummer nicht geändert wurde und
- schon "eine Auslieferung existiert".
Das Datum sollten wir uns merken, denn dann ist es leicht möglich die Buildautomatisierung von NuGet-Pakten um eine bedeutende menschliche Fehlerquelle zu erleichtern.
No comments:
Post a Comment