Ich verstehe die Begründung, wann und warum wir Hauptversion und Nebenversion stoßen sollten. Aber was ist der Punkt A.B
für Major und C
für Moll zu haben? Wann sollte ich A
und wenn B
stoßen? Warum haben wir nicht nur einen Platz für Hauptversion wie in semantic versioning Politik?Warum hat die Versionierungsrichtlinie von Hakell zwei Stellen für die Hauptversion, nicht eine wie in der semantischen Versionierung?
Antwort
Es gibt viele Änderungen, die einen größeren Versionsstoß erfordern, aber tatsächlich sind kleine Änderungen an der Bibliothek. Dinge wie das Hinzufügen einer Functor
oder Traversable
Instanz sind ziemlich kleine Änderungen, aber erfordern eine größere Version Bump. Das Entfernen einer Funktion von der API erfordert einen größeren Versionsstoß.
Aber viele Bibliotheken unterliegen auch riesigen Änderungen. Vollständige Umschreibungen der API Ändern der Semantik von Kerntypen und Funktionen. Ersetzen Sie das Ganze auf der Suche nach besserer Abstraktion.
Die ersten Änderungen erfordern Updates für B. Letzteres für Updates zu A. Es gibt sicherlich in der Mitte zu entscheiden, Anrufe, sicherlich. Aber die grobe Regel ist, dass B für kleine Dinge erhöht wird, die einen größeren Versions-Bump benötigen, und A wird für signifikante API-Änderungen inkrementiert.