我今天遇到了一种情况,我正在维护的应用程序中使用的 gem 被猛拉。
虽然我听说过,但我以前从未见过被拉出的宝石,并认为这是一种不好的做法。
我已尝试更新 gem,但在使用以前或旧版本时应用程序开始失败。
既然 gem 是免费托管的,并且可能被应用程序使用,那么拉取它们的逻辑是什么?您如何管理被拉出的宝石?
我今天遇到了一种情况,我正在维护的应用程序中使用的 gem 被猛拉。
虽然我听说过,但我以前从未见过被拉出的宝石,并认为这是一种不好的做法。
我已尝试更新 gem,但在使用以前或旧版本时应用程序开始失败。
既然 gem 是免费托管的,并且可能被应用程序使用,那么拉取它们的逻辑是什么?您如何管理被拉出的宝石?
对于您决定在项目中使用的每个 gem,您应该有一个替代方案(另一个 gem 或您自己的实现)的想法。我看到人们强迫性地使用 gem,而不关心它的质量、作者、更新频率。盲目地依赖一个 gem 是很危险的,在 Gemfile 中添加另一行的决定不应该掉以轻心。
关于 yanked gems,如果即使是作者也从 interwebz 中删除了 gems,你可能应该考虑在你的项目中对它做同样的事情。那或者如果你真的很喜欢这颗宝石,请托管一个分叉,给予信用并不断发展它。:)
Rubygem 的文档建议 yanking 是为了:
我从来不需要处理这种情况,但我看到了三个选项:
总而言之,猛拉 gem 似乎是一种极端的措施,总是有充分的理由,所以你应该更喜欢升级/重构而不是坚持使用具有潜在危险或已弃用的 gem ......我猜。