Diese Funktionalität ist nicht unzulässig, sie ist jedoch aufgrund der Funktionsweise der meisten Bibliotheksnummern und der Unannehmlichkeiten bei Änderungen des Paketnamens nicht sehr verbreitet.
Wenn ein gepunktetes Versionsnummernschema verwendet wird XYZ Die "Mikro" -Version Z ändert sich häufig bei Bugfixes, die "Neben" -Nummer Y ändert sich bei abwärtskompatiblen Änderungen und die "Haupt" -Versionsnummer X muss sich bei API-Änderungen ändern (und manchmal auch wichtige zusätzliche Funktionalität).
Es sollte niemals einen Grund geben, warum Sie nicht möchten, dass die neuesten Fehler behoben werden, und abwärtskompatible Änderungen sollten auch Ihre Software nicht beschädigen.
Wenn die Bibliothek auf diese Weise entwickelt wurde, sollten Sie immer in der Lage sein, XYZ durch X zu ersetzen. (Y + m). (Z + n). für jedes gegebene m und n. Das heißt, Sie sollten immer in der Lage sein, Ihre Bibliothek durch die neueste in derselben Hauptnummernserie zu ersetzen. Und wenn die Bibliotheksentwickler vorsichtig sind und die nächste Hauptnummer kompatibel ist (z. B. durch die Ankündigung, Dinge zu verwerfen, aber noch nicht zu entfernen), können Sie sogar die nächste Hauptnummer verwenden.
Für Paketentwickler bedeutet dies, dass sie den Namen mit nur einem oder gar keinem Nummernnamen verwenden können, um die neueste Version zu erhalten, indem sie nur das Paket aktualisieren. Wenn sie eine Bibliothek in einem Paket versenden , abc2
dann müssen sie durch Reifen gehen , um ihre eigene Software zu bewegen , die verließen auf , abc2
um den Einsatz zu aktualisieren abc3
, manchmal mit Übergang von Paketen. Es ist bequemer, die Hauptversionsnummer aus einer Bibliothek wegzulassen, wenn dies für die meisten abhängigen Pakete funktioniert. Selbst wenn beide abc2
und abc3
irgendwann in einer Distribution verfügbar sein sollten, abc3
wird dies häufig aufgerufen abc
(genau wie abc2
es aufgerufen wurde, als es noch keine abc3
gab), und sobald keine Pakete abc2
innerhalb der Distribution abhängen, kann es gelöscht werdenabc2
insgesamt.
Das Nummerierungsschema wird nicht einheitlich befolgt, aber ich kann mir nur vorstellen, dass mit dem Aufkommen des Internets Informationen über die Verwendung eines solchen Schemas verbreitet werden und der Druck von Bibliotheksbenutzern (einschließlich Distributionsentwicklern), wichtige Dinge wie die Abwärtskompatibilität ohne klar zu machen Das Lesen einer in der Bibliothek enthaltenen CHANGES-Datei hat dazu beigetragen, dass dies häufiger geworden ist.
Ein Gegenbeispiel, jedoch nicht für eine Bibliothek, ist der Python-Intpreter, der bei einer geringfügigen Änderung der Anzahl nicht mit den gemeinsam genutzten Objekten und dem Beizformat kompatibel ist. Daher sehen Sie Pakete für Python (das neueste in der 2.7-Serie) und Python3 (das neueste in der aktuellen Python3.4-Serie) sowie explizite Pakete für Python 2.6 (nicht weniger verbreitet) sowie Python 3.3.