分享别人的github项目将其作为宝石发布的道德和礼仪是什么?

ste*_*tef 33 git fork rubygems github

我正在做一些关于CultureGrid的业余时间编码.他们有一个SOLR API来访问1.2米的文化艺术品.我已经发布了一个gem来使用它们的服务,但我对使用Datamapper和SOLR适配器后端以更好的方式做到这一点有了一个很好的想法.

我刚刚在Github上发现了一个名为dm-solr-adapter的项目.它是2008年其他人工作的一个分支,使用它你必须克隆项目并运行一个rake任务来安装它(在heroku上使用不多,所以我必须提供它).不幸的是,这项任务现在被打破了,因为他们没有固定他们的宝石版本,Bones在版本2和3之间发生了很大的变化.

基本上 - 它需要一些重新编码才能让它成为一个宝石,如果我要这样做,我不妨自己释放它并按我所知的方式去做 - 使用珠宝商代替.

所以,当然我会删除所有作者,但我只是想知道这里的道德和礼仪是什么.我是否在gem中包含我的用户名,还是使用原始的gem名称?这可能会破坏其他人的安装,即使gem没有列在Rubygems.org上吗?我遵循他们的编号惯例吗?他们似乎选择了"1.0.0"并坚持下去,没有进一步的活动.或者我只是从版本0.1.0开始?

如果不这样做,我只是抓住我想要的东西,将它包含在我的新项目中并给出帽子提示?对于那些可能想要做同样事情的人来说,这听起来并不是很有用.

或者我可能会把我觉得有用的东西拿出来,制作一个叫做dm-solr-backend之类的全新宝石并从头开始?

哦,困境 - 你会做什么?

Bob*_*man 19

所以,如果你不打算发布一个gem,只需继续前进并假设许可允许它,并且不要担心它.这是100%可以,甚至在这一点上预期的行为.Forks实际上是接受贡献者补丁的最简单方法之一.网络图通常是评估项目健康状况以及潜在改进领域的好方法.

如果您打算发布gem,因为原始版本已经无法维护,您应该:

  • 将其发布为 username-originalgemname
  • 联系原作者并提出接管.然后以原始名称推送新宝石.

如果您打算发布一个gem,因为您需要更改gem而不会使整个社区受益,您应该:

  • 将gem解压缩到供应商目录中,永不释放
  • 将其发布为 username-originalgemname

在大多数情况下,名为gem的gem版本没有问题username-originalgemname.这是GitHub gem存储库所采用的模型,这就是大多数人在这一点上处理forks的方式.


Sha*_*aun 5

我目前所知道的唯一一个例子是 cache-money gem。它已经分叉了几次,顺序如下:

在每种情况下,该项目都处于休眠状态一段时间。除了 GitHub 上的链接显示了 fork 的来源,在任何这些情况下都没有原始代码的归属(中间 fork 甚至忘记更新文档以指定从 gem 安装时要安装哪个 fork)。

只要你善意地联系原始维护者并且项目已经闲置了一段时间,就去做吧。只需确保更新文档即可。;)