今天我遇到了一个情况,即我正在维护的应用程序中使用的宝石被拉扯。
我之前没有见过一块被砸过的宝石,虽然我听说过它,并认为这是一种不好的做法。
我已尝试更新宝石,但在使用旧版或旧版时,应用开始失败。
看到宝石是自由托管的,并且可能被应用程序使用,它们的逻辑是什么?你如何管理被猛拉的宝石?
答案 0 :(得分:9)
对于您决定在项目中使用的每个gem,您应该有一个替代的ideia(另一个gem或您自己的实现)。 我看到人们强迫性地使用宝石而不关心它的质量,作者,更新频率。盲目地依赖一个宝石是危险的,不应该轻易地决定在Gemfile中添加另一行。
关于猛拉的宝石,即使作者从interwebz中删除了宝石,你也许应该考虑在你的项目中对它做同样的事情。那或者如果你真的喜欢宝石,主持一个分叉,给予积分并不断进化。 :)
答案 1 :(得分:4)
Rubygem's doc建议yanking来到:
我从来没有管理过这样的案例,但我看到了三个选择:
总而言之,看起来yanking a gem是一个极端的措施总是有充分的理由,所以你应该更喜欢升级/重构而不是坚持使用有潜在危险或被弃用的宝石...我猜。