2017-01-17 5 views
1

Von thoughtbot:Twiddle wakka für semantische Versionierung

~> 1.1 bedeutet, dass bei der Installation bündeln, werden Sie die höchste Freigabe gem Version dünner zwischen dem Bereich erhalten> = 1,1 und 2,0 <

~> 3.0.3 bedeutet, dass bei der Installation bündeln, werden Sie die höchste Freigabe gem Version von Schienen zwischen dem Bereich> = 3.0.3 und < 3,1

von semver 2.0 erhalten:

Given a version number MAJOR.MINOR.PATCH, increment the: 

MAJOR version when you make incompatible API changes, 
MINOR version when you add functionality in a backwards-compatible manner, and 
PATCH version when you make backwards-compatible bug fixes. 

So wird dann ~>0.1.0 Sie von 1.0.0 > x >= 0.1.0 nehmen?

Ist auch die v1.0.0 was Leute beziehen, wenn sie sagen, dass sie arbeiten, um die one point oh Version heraus zu bekommen? Auch wenn es zwei 0s nach dem 1.

Antwort

1

Grundsätzlich mit dem Twiddle-Waka (~>) kann nur die letzte Ziffer ändern.

~> 0.1.0 werden Sie nicht auf etwas jenseits 0.1.x, also nicht 1.0.0, nicht einmal 0.2.0.

Meiner Meinung nach, um eine Version nach semver Absichten zu spezifizieren, würde man eine kleine Twiddle-Waka, z. ~> 0.2. Somit erhalten Sie Funktionserweiterungen (bis 0.3(.x), 0.4(.x), 0.x.y, sogar 0.10.99!), Jedoch keine rückschrittlichen Änderungen (zu 1.0 oder 1.0.x).

Und wenn Sie in der Lage sein wollen MAJOR Veränderung haben, so 1.0-2.0 und 9.0 auf der gleichen Spezifikation zu gehen, dann denke ich, die Sie nicht wirklich eine Version der Spezifikation! ; o)

Das heißt, einige Edelsteine, die für Ihr Projekt fundamentaler/zentraler sind, werden wahrscheinlich davon profitieren, genauer verfolgt zu werden, mit einem Patch-Level ~>, z. ~> 4.2.17. (Das ist eine Strategie, die ich zum Beispiel mit Rails in einem Rails-Projekt verwende.) Im Grunde alles, was das Upgrade/die Erweiterung nicht trivial machen würde.

(und ja, "ein Punkt oh" zu erwähnen, enthält 1.0.0, 1.0.1 usw.)

+0

so '~> 0.1' würden Sie nehmen möglicherweise bis zu' 0.9.99' und '~> 1.0' würde Sie möglicherweise bis zu 9.99.99? – mbigras

+1

'~> 0.1' stimmt mit' 0.9.99' überein, ja. '~> 1.0' entspricht' 1.9.99', aber nicht mehr als '2.0', also nicht' 9.9.x'. Wenn 'MAJOR' sich ändern kann, dann denke ich, dass Sie keine Versionsspezifikation haben; o) –