【问题标题】:Which version of gem to use in semantic versioning?在语义版本控制中使用哪个版本的 gem?
【发布时间】:2015-08-22 17:30:41
【问题描述】:

假设您正在使用Devise gem。您应该在 Gemfile 中使用以下哪个版本:

'devise', '~> 3.5.1'

'devise', '~> 3.5'

使用其中一种的优缺点是什么?

根据 RubyGems:

PATCH 0.0.x 级别更改用于实现级别的细节更改, 比如小bug修复

任何向后兼容的 API 更改的轻微 0.x.0 级别更改, 例如新功能/特性

针对向后不兼容的 API 更改的主要 x.0.0 级别更改,例如 因为如果更新会破坏现有用户的代码

那么使用'devise', '~> 3.5' 是否有意义,因为一旦运行bundle update 就会得到小错误修复?

【问题讨论】:

  • 阅读 RubyGems 的官方文档。Semantic Versioning
  • 我明白那里所说的......问题是使用补丁级别版本来修复错误会更好(即'devise', '~> 3.5'而不是'devise', '~> 3.5.1'

标签: ruby-on-rails ruby gem rubygems semantic-versioning


【解决方案1】:

我认为您应该在 Rails 应用程序中使用完整版本号(或至少包括您的 Gemfile.lock),并在库/rails 引擎中使用其他次要版本号。

我在这里解释 Yehuda Katz 的 Gem Versioning and Bundler: Doing it Right。我可能是错的,但我正在这样做并且到目前为止效果很好。

【讨论】:

    猜你喜欢
    • 2018-08-08
    • 2017-11-04
    • 2016-03-27
    • 2018-02-03
    • 2013-04-08
    • 2020-02-17
    • 2020-03-27
    • 2015-10-28
    • 1970-01-01
    相关资源
    最近更新 更多