在Github上分配Ruby/Rails gem的正确协议/礼仪是什么,可以作为一个持续的并行分支维护?

rcd*_*rcd 10 ruby gem rubygems ruby-on-rails github

最近我使用了由一个开发人员创建的一个很好的gem,它在Github上托管.

在我的工作中,我不得不对其进行大幅修改,增加了一些改进.有些是针对特定项目的,有些是针对特定于宝石的,有些则是独立的改进.

对于特定于gem的改进(例如,bug修复),我分叉了repo,应用了修复,并发出了一个pull请求.

然而,然而,我注意到独立的改进类型属于原始宝石的平行,持续的分叉.为了更清楚,你以前见过它; 我重写了原始gem的视图以使用Twitter Bootstrap框架.所以,我也把它推到Github,但是,当然,没有提出拉取请求 - 相反,我更新了README来解释不同的东西,并归功于宝石的原始作者.

我的问题是,在这种情况下应该做什么,假设gem是其他任何人想要使用的东西,并且要在rubygems上发布等等?我是否应该简单地编辑.gemspec并保持原作者的信息不变,但是将我的信息增加到作者/电子邮件字段,并重写其他更改的内容?或者应该完全重写.gemspec?

此外,如果原始发行版具有远程测试框架(如travis.yml),是应该删除它们还是留下它们?

是否有其他文件通常必须更改/重新创建?

到目前为止我已经更新了

.gemspec
README.md
CHANGELOG.md
lib/libraryname/VERSION.rb #called as a constant in .gemspec
Run Code Online (Sandbox Code Playgroud)

最后一个问题本身就提出了一个单独的奖励问题,版本控制如何在并行发行版中工作?

小智 7

听起来你已经正确处理了bugfix/fork.

根据gem的许可证,将其作为yourname-originalname发布.

您已经做出了整体社区可能感兴趣的重大变化,这是分叉和发布的公认标准.

它也解决了你的奖金问题.更改您要发布的任何内容.它现在基本上是一个新项目.仍然很好地归功于原来的开发当然:)