Ruby Twiddle wakka用于语义版本控制

Ruby Twiddle wakka用于语义版本控制,ruby,semantic-versioning,Ruby,Semantic Versioning,发件人: ~>1.1意味着当您捆绑安装时,您将获得范围>=1.1和3.0.3意味着当您捆绑安装时,您将获得范围>=3.0.3和0.1.0会把你从1.0.0>x>=0.1.0带到哪里呢 另外,当人们说他们正在努力“让one point oh版本”出门时,他们指的是v1.0.0吗?即使在1之后有两个0。基本上是旋转瓦卡(~>),也只有最后一个数字可以改变 ~>0.1.0不会将您带到0.1.x之外的任何地方,因此不是1.0.0,甚至不是0.2.0 在我看来,要按照semver的意图指定一个版本,可以指

发件人:

~>1.1意味着当您捆绑安装时,您将获得范围>=1.1和<2.0之间的最高版本的thin

~>3.0.3意味着当您捆绑安装时,您将获得范围>=3.0.3和<3.1之间的最高版本的rails

发件人:

那么
~>0.1.0
会把你从
1.0.0>x>=0.1.0
带到哪里呢


另外,当人们说他们正在努力“让
one point oh
版本”出门时,他们指的是
v1.0.0
吗?即使在1之后有两个0。

基本上是旋转瓦卡(
~>
),也只有最后一个数字可以改变

~>0.1.0
不会将您带到
0.1.x
之外的任何地方,因此不是
1.0.0
,甚至不是
0.2.0

在我看来,要按照semver的意图指定一个版本,可以指定一个小的旋转waka,例如
~>0.2
。因此,您可以获得功能升级(到
0.3(.x)
0.4(.x)
0.x.y
,甚至
0.10.99
!),但不能向后进行更改(到
1.0
1.0.x

如果你想改变
MAJOR
,从
1.0
2.0
9.0
在同一个规范上,那么我想你没有真正的版本规范;o)

这就是说,一些对您的项目更基本/更核心的宝石可能会从更密切的关注中受益,使用补丁级别
~>
,例如
~>4.2.17
。(这是我在Rails项目中对Rails采用的一种策略。)基本上,任何可以使升级/升级变得非常重要的东西


(是的,提到“一点oh”包括
1.0.0
1.0.1
等等)

所以
~>0.1
可能会让你达到
0.9.99
~>1.0
可能会让你达到
9.99.99
~>0.1
匹配
0.9.99
,是的<代码>~>1.0匹配
1.9.99
,但不匹配
2.0
,因此不匹配
9.9.x
。如果
MAJOR
可以更改,那么我猜您没有版本规范;o)
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.