最近我使用了一个由单个开发人员创建的不错的 gem,它托管在 Github 上。
在我的工作中,我不得不对它进行了一些实质性的修改,增加了一些改进。有些是特定于项目的,有些是特定于 gem 的,还有一些是独立的改进。
对于特定于 gem 的改进(例如,错误修复),我分叉了 repo,应用了修复,并提出了拉取请求。
然而,然后,我注意到独立改进属于原始 gem 的并行、持续分支的类别。更清楚地说,你以前见过它;我重写了原始 gem 的视图以使用 Twitter Bootstrap 框架。所以,我也把它推送到了 Github,但是,当然,没有提出拉取请求——相反,我更新了 README 来解释有什么不同,并感谢 gem 的原作者。
我的问题是,在这种情况下还应该做什么,假设 gem 是其他人想要使用的东西并且要在 rubygems 等上发布?我是否应该简单地编辑 .gemspec 并保持原作者的信息完整,但将我的信息添加到作者/电子邮件字段,并重写任何其他已更改的内容?还是应该完全重写 .gemspec?
此外,如果原始发行版具有远程测试框架(如travis.yml),这些应该被删除,还是留在原地?
是否还有其他通常必须更改/重新创建的文件?
到目前为止我已经更新了
.gemspec
README.md
CHANGELOG.md
lib/libraryname/VERSION.rb #called as a constant in .gemspec
最后一个问题本身提出了一个单独的额外问题,版本控制如何在并行发行版中工作?