将别人的github项目分叉为gem发布,有什么道德和礼仪?[英] What are the ethics & etiquette of forking someone else's github project to release it as a gem?

本文是小编为大家收集整理的关于将别人的github项目分叉为gem发布,有什么道德和礼仪?的处理方法,想解了将别人的github项目分叉为gem发布,有什么道德和礼仪?的问题怎么解决?将别人的github项目分叉为gem发布,有什么道德和礼仪?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我在闲暇时间围绕 CultureGrid 编写代码.他们有一个 SOLR API 来访问 120 万件文物.我已经发布了一个 gem 来使用他们的服务,但是我有一个很好的想法,即使用带有 SOLR 适配器后端的 Datamapper 以更好的方式完成它.

我刚刚在 Github 上轻松找到了一个名为 dm-solr-adapter.它是 2008 年其他人工作的一个分支,要使用它,你必须克隆项目并运行 rake 任务来安装它(在 heroku 上用处不大,所以我不得不出售它).不幸的是,该任务现在被中断了,因为他们没有固定他们的 gem 版本,并且 Bones 在版本 2 和 3 之间发生了很大变化.

基本上 - 它需要重新编码才能使其成为宝石,如果我要这样做,我不妨自己发布它并按照我知道的方式去做 - 改用 Jeweler.

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

如果做不到这一点,我是否只是抓住我想要的部分,将其包含在我的新项目中并给出提示?对于其他可能想做同样事情的人来说,这听起来不是很有用.

或者也许我会利用我认为有用的部分,制作一个名为 dm-solr-backend 之类的全新 gem,然后从头开始?

哦,两难境地——你会怎么做?

推荐答案

所以,如果你不打算发布一个 gem,那就继续 fork(假设许可证允许),不要担心.在这一点上,这是 100% 好的,甚至是预期的行为.分叉实际上是从贡献者那里接受补丁的最简单的方法之一.网络图通常是评估项目运行状况以及潜在改进领域的好方法.

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

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

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

  • 将 gem 解压到供应商目录中,并且永远不要发布
  • 将其发布为 username-originalgemname

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

本文地址:https://www.itbaoku.cn/post/786439.html