【问题标题】:What are the ethics & etiquette of forking someone else's github project to release it as a gem?分叉别人的 github 项目以将其作为 gem 发布的道德和礼仪是什么?
【发布时间】:2011-06-12 19:30:59
【问题描述】:

我在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,然后从头开始?

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

【问题讨论】:

  • 在您过多担心细节之前,您可能需要写信给原作者并确认他们已经放弃了该项目。如果碰巧他们正要重新开始工作,那么当您要合作时担心所有这些将是一种耻辱。

标签: git rubygems github fork


【解决方案1】:

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

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

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

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

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

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

【讨论】:

    【解决方案2】:

    目前我所知道的唯一例子是缓存货币宝石。它被分叉了几次,顺序如下:

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

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

    【讨论】:

      【解决方案3】:

      关于检查项目的状态,有一个名为 http://stillmaintained.com/ 的新网站,有些人在其中注册他们的项目是维护、寻找维护者还是放弃。

      【讨论】:

      • 这对网站来说是个好主意。很容易添加我的项目,然后查看其他人的。谢谢
      • 此站点已不存在。
      • @Naktibalda 也许它只是在寻找维护者......知道我们可以在哪里找到相关信息吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      • 2023-04-02
      • 2011-11-06
      • 2012-08-05
      • 1970-01-01
      相关资源
      最近更新 更多