Frage

Wenn Sie ein Projekt haben, dass Versionen einer Bibliothek und einer Anwendung, wie Sie mit version-Nummern zwischen den beiden.

Beispiel:Ihr Projekt liefert eine Bibliothek, wandeln verschiedene Dateiformate Ineinander.Die Bibliothek ist freigegeben für die Integration in andere Anwendungen.Aber Sie geben auch ein command-line-Anwendung, die verwendet diese Bibliothek und implementiert eine Schnittstelle, die die Funktionalität.

Neue Versionen der Bibliothek führen zu neuen Versionen der Anwendung (zu nutzen mit allen neuen features), aber neue Versionen der Anwendung möglicherweise nicht ausgelöst wird, neue Versionen der Bibliothek.Nun, wie sind die Versionen, die zahlen behandelt:Völlig unabhängig, oder sollte Bibliothek - und-Anwendung-version angewiesen sein, die in irgendeiner Weise?

War es hilfreich?

Lösung

Ich würde sagen, verwenden Sie separate version zahlen, und natürlich dokumentieren, was mindestens Bibliothek version ist erforderlich für jede Version von die app.Wenn Sie immer die gleiche versions-Nummer und Sie immer nur das testen der app gegen den gleich nummerierten library-version installiert, dann Sie sind nicht wirklich getrennte Komponenten, so don ' T sagen, Sie sind.Lassen Sie die ganze Menge wie ein Klumpen.

Wenn Sie Sie trennen, können Sie immer noch geben Ihnen die gleiche Versionsnummer, wenn es angebracht ist - zum Beispiel nach einem schweren Kompatibilität brechen könnten Sie Version 2.0 von beiden gleichzeitig.

Das folgende Beispiel zeigt:xsltproc (ein Befehlszeilen-app) ist freigegeben als Teil von libxslt (Bibliothek), also keine eigene Versionsnummer.Aber libxslt hängt von zwei anderen Bibliotheken und die Versionsnummern, die von diesen unabhängig sind.

$ xsltproc --version
Using libxml 20628, libxslt 10120 and libexslt 813
xsltproc was compiled against libxml 20628, libxslt 10120 and libexslt 813
libxslt 10120 was compiled against libxml 20628
libexslt 813 was compiled against libxml 20628

Andere Tipps

Völlig unabhängig-version zahlen, aber die Befehlszeile (oder jede andere abhängig sind) sollte die app sagen, welche version der Bibliothek kompiliert wurde gegen Sie im Abschnitt Hilfe oder ein banner.

Auf diese Weise werden Sie in der Lage sein zu sagen, welche Funktionalität die apps haben und reduzieren Sie mögliche Verwirrung, insbesondere angesichts der Tatsache, dass jemand kompilieren könnte eine neuere app-version gegen eine alte Bibliothek, die für jede Grund.Auch Sie entkoppeln und Sie können Funktionen hinzufügen, die auf der Bibliothek, ohne je auf die Veröffentlichung einer neuen app-version und so weiter.

Wenn Sie sicher sind, Sie werden immer wollen, dass alle apps und die Bibliothek zu gehen, im Gleichschritt dann könnten Sie gleichen zahlen, aber das ist das hinzufügen einer Einschränkung für nicht einen guten Grund.

Wir Bauten eine Anwendung, die einen Rahmen.Wir trennen Versionsnummern für beide.

Dies funktioniert gut, vor allem, dass jetzt die Rahmen und Anwendung gewachsen, die groß genug ist, um entwickelt werden, die von verschiedenen teams.

Also meiner Meinung nach...halten Sie die Versionsnummern trennen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top