【问题标题】:How to allow a wide range of Rails versions for a gem如何为 gem 提供广泛的 Rails 版本
【发布时间】:2019-03-15 13:44:34
【问题描述】:

我是相当简单的Rails engine gem 的作者,它基本上只包含一个帮助程序和一些javascript。

唯一真正的运行时依赖是 jquery-rails。

希望它应该与任何 Rails 版本 > 5 几乎兼容。在我最初编写 gem 时,我使用了实用的波浪形箭头。

s.add_dependency 'rails', '~> 5.0.0', '>= 5.0.0.1'

这很愚蠢,因为它不适用于 5.1+。我现在将其更改为开放要求 ">= 5.0"gem build 警告说它是不可取的:

WARNING:  open-ended dependency on rails (>= 5.0) is not recommended
  if rails is semantically versioned, use:
    add_runtime_dependency 'rails', '~> 5.0'

在最小化维护和确保良好兼容性方面的最佳做法是什么?

我是否应该将 Rails 依赖声明为 development_dependency,因为它暗示 gem 安装在 rails 引擎中?

【问题讨论】:

  • s.add_dependency 'rails', '~> 5.0' 将允许任何事情 ∈ [5.0, 6.0)
  • @AlekseiMatiushkin 我认为 '~> 5.0' 在最后一个点之后允许任何数字。所以 '5.0' - '5.999999' 但不是 '6.0' 。
  • @Foton 我写的正是这个。

标签: ruby-on-rails ruby rubygems bundler


【解决方案1】:

警告中的建议是很好的建议。

s.add_dependency 'rails', '~> 5.0' 这意味着它适用于 Rails 5.x,但不适用于 6.x。

【讨论】:

    猜你喜欢
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多