0

在创作 gem 时,对于依赖项的版本限制,推荐的做法是什么。例如,我知道我的 gem 适用于 ruby​​zip 2.x 版,但我也知道它也适用于 1.9。我应该说

spec.add_runtime_dependency 'rubyzip', '>1.8'

或者如果 ruby​​zip 版本 1.9 已经过时了,更常见的是为 2.x 行“推送”更改?此外,如果我使用上述行,我将面临与未来版本不兼容的风险,但另一方面,将 coice 留给用户。

注意:问题是一般性的,对 ruby​​zip 的依赖只是一个例子。

4

1 回答 1

2

如果您知道您的 gem 可以与 ruby​​zip 一起使用1.9,那么真的没有必要强迫人们使用>=2.0它。

当然,更新依赖项对于您的库用户来说是一个好主意,但成为“更新您的软件警察”不是您的工作!

指定版本必须< 3是通常是可取的(尽管开发人员并非始终如一地这样做),因为存在一个合理的风险,即主要依赖项版本会与您的代码的此版本不兼容。

所以,作为一种妥协,你可以这样做:

spec.add_runtime_dependency 'rubyzip', '>=1.9', '<3'

请参阅文档以获取有效的语法示例。

于 2019-05-21T11:26:19.087 回答