我在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之类的全新宝石并从头开始?
哦,困境 - 你会做什么?
答案 0 :(得分:19)
所以,如果你不打算发布一个gem,只需继续fork(假设许可允许它)并且不用担心它。这是100%可以,甚至在这一点上预期的行为。 Forks实际上是接受贡献者补丁的最简单方法之一。网络图通常是评估项目健康状况以及潜在改进领域的好方法。
如果您打算释放宝石,因为原件已经无法维护,您应该:
username-originalgemname
如果您打算发布一个宝石,因为您需要更改宝石而不会使整个社区受益,您应该:
username-originalgemname
在大多数情况下,名为username-originalgemname
的gem版本没有问题。这是GitHub gem存储库所采用的模型,这就是大多数人在此时处理forks的方式。
答案 1 :(得分:4)
目前我所知道的唯一一个例子就是cache-money gem。按顺序分叉了几次:
在每种情况下,该项目已经休眠了很长一段时间。除了GitHub上的链接显示来自fork的位置,在任何这些情况下都没有归属于原始代码(中间叉甚至忘记更新文档以指定从gem安装时要安装哪个fork)。
只要您善意地与原始维护人员联系并且项目已经闲置一段时间,那就去吧。只需确保您更新文档。 ;)
答案 2 :(得分:4)
关于检查项目的状态,有一个名为http://stillmaintained.com/的新站点,其中有些人注册他们的项目是维护,寻找维护者还是放弃。