Konzept einer Versionierung eines Projektes welches in Pakete unterteilt ist

11/01/2008 - 13:16 von Christoph Herrmann | Report spam
Hi,

ich bin gerade beim Erstellen eines geeigneten Konzepten für eine
Versionierung und würde gerne mal eure Meinungen dazu wissen bzw. ob Ihr
irgendwelche Verbesserungsvorschlàge hàttet oder Probleme sieht.

Hintergrund:
Ich habe eine Anwendung, welche in verschiedene Pakete unterteilt ist,
wobei jedes Paket einen Namen und eine Version besitzt und generell von
anderen Paketen abhàngig sein kann, wenn es diese benutzt. Dabei ist es
wichtig, dass nicht nur geschaut wird, ob das abhàngige Paket existiert
und geladen wurde, sondern auch, ob dessen Version kompatible ist.

Lösungsansatz:
Jedes Paket hat eine Versionsnummer, die sich aus drei Nummern
zusammensetzt, zum Beispiel "1.1.0".

Die erste Stelle wird immer erhöht, wenn neue Features implementiert
wurden und sich dabei öffentliche vorhandene Schnittstellen geàndert
haben zum Beispiel dann auf "2.1.0" und somit Änderungen an jedem darauf
aufbauenden Paket gemacht werden müssen. Ändert sich dabei an dem
anderen Paket nichts, werden nur die Paketinformationen angepasst,
sodass das Paket nun zur Version "2" kompatible ist und zur
Kennzeichnung der Änderung wird auch die zweite/dritte Stelle des
Paketes mit geàndert, je nachdem ob durch die neuen Features auch im
aufbauenden Paket neue Möglichkeiten darbieten. Bei der Prüfung wird
dann immer nur die erste Stelle geprüft bzw. auch nur diese für eine
Abhàngigkeit angegeben.

Die zweite Stelle wird jeweils erhöht, wenn ein Paket neue Features
anbietet, aber sich dafür keine vorhandenen öffentlichen Methoden
geàndert haben, daher alle aufbauenden Pakete noch kompatible sind. Die
dritte Stelle wird erhöht, wenn in einem Paket Fehler bereinigt wurde.

Daher das Paket A hat die Version "1.1.0", das Paket B besitzt die
Version "2.5.2" und ist abhàngig von Paket A der Version "1". Ändert
sich nun die öffentlichen Schnittstellen in Paket A bekommt dies die
neue Version "2.1.0". Paket B muss darauf hin überprüft werden, àndert
daraufhin bei Paket B ebenso die öffentliche Schnittstelle bekommt es
auch neue Version und auf Paket B aufbauende Pakete müssen überprüft
werden. Ändert sich in Paket B nur intern etwas, wird jeweils die
zweite/dritte Versionsstelle erhöht. In beiden Fàllen wird bei Paket B
die Information geàndert sodass es ab nun von Version "2" von Paket A
abhàngig ist.

Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/
 

Lesen sie die antworten

#1 Friedrich Dominicus
11/01/2008 - 17:42 | Warnen spam
Christoph Herrmann writes:

Hi,

ich bin gerade beim Erstellen eines geeigneten Konzepten für eine
Versionierung und würde gerne mal eure Meinungen dazu wissen bzw. ob
Ihr irgendwelche Verbesserungsvorschlàge hàttet oder Probleme sieht.


Warum neu erfinden, hast Du Dir das handling von Versionen mal in Ruby
gems und/oder Tcl/Tk angeschaut.

Bis dann
Friedrich

Please remove just-for-news- to reply via e-mail.

Ähnliche fragen