关于对继承开源项目的探讨
前言
众所周知,这个世界上无时无刻不有新的开源项目出现,同时也有许多开源项目停更,可能是暂时的,可能永远也不会更新了。作为开发者,看到这些优秀但更新缓慢的项目,可能会产生帮他续接甚至是取而代之的想法。这时我们就需要考虑如何才能合理的接过项目了。
探讨
众所周知,开源项目大多会有它的开源协议,作为底线,想必大家都不会违反它的,所以接下来我们只会探讨遇到如 MIT
等宽松协议的情况。
方案一:复刻项目
复刻一个项目是非常简单的,只要点 Fork
就能复刻了,Github 等平台会自动帮你在项目开头留一个回到原项目的链接,一般情况下也不需要和原作者商量,继续下去就行了。
正面例子
所有正常复刻的项目
反面典型
把项目复刻下来,然后换成违规内容。
方案二:新建项目
如果不想一直活在原项目的阴影下,还可以选择新建一个项目,把原有内容复制到新项目里。在符合开源协议的情况下,这个新项目就完全是一个独立的项目了。
虽然一些宽松协议不阻止我们移除原作者的信息,但是作为一个合格的开源开发者,我们仍然需要在我们的项目中标注来源,这是对开源社区的尊重,也是对自己作品的保护,毕竟你如何对待别人,别人就可能会如何对待你,到时连谴责都不会有人理。
示例做法
首先我们最好先给原项目提个 issue
,不过由于原作者可以一直失踪,或者自己比较社恐(比如我),也可以忽略这一步,大部分人是不会介意的,但是如果被原作者找上门,我们最好还是献上态度诚恳的道歉。
接下来就是新建项目,项目名最好与原项目不同,但是千万不要用自己的名字往上加,这会让人觉得你是开源小偷,我们只需要取一个中立的名字就行了。
当我们在复制粘贴完成后,我们就需要去修改项目的 README
文件了,我们需要在显眼的位置上写明本项目基于XXX开发
,然后在项目历代作者(如果有的话)里面加上自己的名字,鸣谢可有可无,如果有人把我名字从基于挪到鸣谢里面我会很生气的。
接下来就可以做自己想做的事情了,我们可以选择先开发到自己满意的程度再上传,毕竟一个一模一样的项目多少有点尴尬。
正面例子
反面典型
大设计师:我观此项目与我有缘
本人案例
方案三:“夺舍”
有些时候我们已经成为项目的贡献者了,并且还和项目所有者很熟,这时候我们完全可以选择取而代之,毕竟一个新的项目还需要重新积累名望,现在我们直接继承就好了。
当然这里的“夺舍”只是戏称,一般我们应该称之为移交社区,要是有人真的骗别人把项目弄到自己名下了,别说是我教的,我强烈谴责还不及呢。
正面例子
反面典型
大设计师:我观此作者与我有缘