什么是道德和安全?把别人的github项目作为宝石发布的礼节? [英] What are the ethics & etiquette of forking someone else's github project to release it as a gem?

查看:122
本文介绍了什么是道德和安全?把别人的github项目作为宝石发布的礼节?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为 CultureGrid 编码。他们有一个SOLR API来访问120万文化文物。我已经发布了一个gem来使用他们的服务,但是我已经有了一个关于使用Datamapper和SOLR适配器后端来更好地实现它的好主意。



我刚刚在Github上找到了一个名为 dm-solr-adapter 的项目。这是2008年其他人工作的一个分支,为了使用它,你必须克隆项目并运行一个rake任务来安装它(在heroku上没有太多的用处,所以我必须提供它)。不幸的是,这个任务现在被破坏了,因为他们没有固定他们的宝石版本,Bones在版本2和版本3之间发生了很大的变化。基本上 - 它需要一点点重新编码让它成为一个宝石,如果我要这样做,我也可以自己释放它,并按照我所知的方式进行操作 - 使用珠宝商。



<所以,当然我会把所有的作者都排成一行,但我只是想知道道德和礼仪在这里。我是否将用户名添加到宝石中?还是使用原始宝石名称?即使该宝石未在Rubygems.org上列出,这可能是否可能会诋毁其他人的安装?我遵循他们的编号惯例吗?他们似乎选择了1.0.0并坚持下去,没有进一步的活动。或者我只是从0.1.0版开始重新开始?



如果没有,我只需要抓住我想要的东西,将它包含在我的新项目中并给出一个帽子提示?对于其他想要做同样事情的人来说,这听起来并不是很有用。



或者我也许会选择一些我认为有用的数据,像dm-solr-backend并从头开始?

哦,困境 - 你会怎么做?

解决方案

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



如果您打算发布宝石,因为原始已经变得没有维护,你应该:


  • 释放它为 username-originalgemname

  • 请联系原作者并提出接受。然后用原来的名字推新的宝石。
  • 如果您打算发布宝石,因为您需要更改宝石,整个社区,你应该:


    • 将gem解包到供应商目录中并且永远不会发布

    • 将其释放为 username-originalgemname



    在大多数情况下,对于名为 username-originalgemname 的gem发行版来说没有问题。这是GitHub gem仓库所采用的模型,所以这就是大多数人在这个时候处理叉子的问题。


    I'm doing some spare time coding around CultureGrid. They have a SOLR API to access 1.2m cultural artefacts. I've released a gem to consume their service, but I've got a nice idea about using Datamapper with a SOLR adapter backend to do it in a better way.

    I just found a project from last year on Github handily called dm-solr-adapter. It's a fork of someone else's work from 2008 and to use it you have to clone the project and run a rake task to install it (not much use on heroku, so I'd have to vendor it). Unfortunately that task is now broken because they didn't pin their gem versions, and Bones has changed considerably between version 2 and 3.

    Basically - it needs a bit of a recode to get it to be a gem, and if I'm going to do that I might as well release it myself and do it the way I know - using Jeweler instead.

    So, of course I'll drop all of the authors a line, but I just wondered what the ethics and etiquette are here. Do I include my username in the gem or do I use the original gem name? Could that potentially trash someone else's installation, even though the gem is not listed on Rubygems.org? Do I follow their numbering convention? They seem to have chosen "1.0.0" and stuck with it, with no further activity. Or do I just start again from version 0.1.0?

    Failing that, do I just grab the bits I want, include it in my new project and give a hat tip? That doesn't sound very useful for others who might want to do the same things.

    Or perhaps I take the bits I find useful, make an entirely new gem called something like dm-solr-backend and go from scratch?

    Oh, the dilemmas - what would you do?

    解决方案

    So, if you're not going to release a gem, just go ahead and fork (assuming the license allows it) and don't worry about it. That's 100% OK and even expected behavior at this point. Forks are actually one of the easiest ways to accept patches from contributors. The network graph is often a good way to evaluate both the health of a project as well as the potential areas for improvement.

    If you intend to release a gem because the original has become unmaintained, you should either:

    • Release it as username-originalgemname
    • Contact the original author and offer to take it over. Then push new gems under the original name.

    If you intend to release a gem because you need changes to the gem that would not benefit the community as a whole, you should either:

    • Unpack the gem into a vendor directory and never release
    • Release it as username-originalgemname

    In most cases, there is no problem with a gem release named username-originalgemname. This was the model that the GitHub gem repository took, so that's how most people handle forks at this point.

    这篇关于什么是道德和安全?把别人的github项目作为宝石发布的礼节?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆