用于语义版本控制的 Twiddle wakka

Twiddle wakka for semantic versioning

来自thoughtbot

~> 1.1 means that when you bundle install, you’ll get the highest-released gem version of thin between the range >= 1.1 and < 2.0

~> 3.0.3 means that when you bundle install, you’ll get the highest-released gem version of rails between the range >= 3.0.3 and < 3.1

来自semver 2.0

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.

那么 ~>0.1.0 会把你从 1.0.0 > x >= 0.1.0 带走吗?

此外,当人们说他们正在努力“获得 one point oh 版本”时,他们指的是 v1.0.0 吗?即使在 1.

后面有两个 0

与twiddle-waka(~>)基本相同,只有最后一位可以改变。

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

在我看来,要指定一个遵循 semver 意图的版本,可以指定一个次要 twiddle-waka,例如。 ~> 0.2。因此,您可以获得功能升级(至 0.3(.x)0.4(.x)0.x.y,甚至 0.10.99!),但不会 backwards-breaking 更改(至 1.01.0.x).

而且如果你希望能够进行 MAJOR 更改,那么在同一规格下从 1.0 变为 2.09.0,那么我猜你真的没有版本规范! ;o)

也就是说,一些对您的项目更 fundamental/central 的 gem 可能会受益于更密切的关注,例如 patch-level ~>~> 4.2.17。 (这是我在 Rails 项目中对 Rails 使用的策略。)基本上,任何可以使 upgrade/step-up non-trivial 的东西。

(是的,提到 "one point oh" 包括 1.0.01.0.1 等等)