我有一个gem(在RubyGems上可用)依赖于另一个gem.那个依赖的gem有一个我最近修复过的bug.不幸的是,这种依赖的宝石已经死了; 它已经几年没见的更新,而主人不活跃GitHub上了所有,更不用说制定承诺这种宝石,所以我不希望我的补丁将得到很快接受肯定又没时间.
鉴于此,处理这个依赖宝石的修补版本的最佳方法是什么?我是否将它分叉并将新的gem(带有新名称)上传到RubyGems,并依赖于此?我不知何故用我自己的宝石包装我的固定版本?
首先检查有bug的gem的LICENSE(以及您的代码的许可证 - 确保保持兼容)。
然后 - 正如你所说 - 你有多种选择:
upstream变体,拥抱开源及其社区)。我会选择分叉、修复和重新发布解决方案,但您可能必须明确(在自述文件中)这个 gem 需要一个新的维护者。
这取决于您对“最佳”的含义(...什么是最好的方法...)。最简单的可能是猴子补丁,其次是将 gem 包含在您的存储库中并告诉捆绑程序/Gemfile 从那里获取它。另外,任何奇怪的 gem 更新都不会破坏您的代码。但是,如果需要修复(由像你这样的人:)),你就会错过它们。