我有一个gem(在RubyGems上可用)依赖于另一个gem。那个依赖的gem有一个我最近修复过的bug。不幸的是,这种依赖的宝石已经死了;多年来它没有看到更新,而且所有者在上都没有活跃在GitHub上,更不用说提交这个宝石了,所以我不期待我的补丁将被接受 - 当然不会很快。
鉴于此,处理此依赖宝石的修补版本的最佳方法是什么?我是否将它分叉并将新的gem(带有新名称)上传到RubyGems,并依赖于此?我会以某种方式用我自己的宝石包装我的固定版本吗?
答案 0 :(得分:2)
首先检查有问题的宝石许可证(以及您的代码许可证 - 确保事情保持兼容)。
然后 - 如你所说 - 你有多种选择:
upstream
变体,包含开源及其社区)。我选择 fork,fix and re-release 解决方案,但您可能需要明确(在自述文件中)此gem需要一个新的维护者。
这取决于你的意思" best" ( ......最好的方式...... )。最简单的可能是猴子补丁,其次是在您的存储库中包含gem并告诉bundler / Gemfile从那里获取它。此外,没有奇怪的宝石更新将破坏您的代码。但是,如果有任何修复(由像你这样的人:)),你就会错过它们。