释放现有项目的完整重写的正确礼节是什么?


12

我是开源世界的新手。我正在从事的项目位于Github上。(仅供参考)我正在处理的项目是Plex Media Server的插件。我计划将插件提交给Plex,以便将其包含在他们的“应用程序商店”中。现在我的问题。

刚开始时,我发现了一个较旧的半废弃插件,可以满足我的要求,但效果不佳。我首先为该回购做贡献。我立即被选为拥有该回购协议全部权利的协作者,因为当前所有者说他太忙了,无法再使用它了。但是,当我开始更深入地研究代码时,我意识到它是徒劳的。现有的代码库很糟糕,没有有效的方法来修复它。我最终只是从头开始。我在新插件中使用的唯一代码是我最初提交的代码。

现在该项目已准备好发布。但是,我不确定如何执行此操作。我看到的选择如下:

  1. 创建一个新的仓库,而忽略现有仓库。我不确定我是否应该提到以前的仓库和它的贡献者。我没有使用任何代码/资源,而是创建了一个全新的代码库。尽管该插件执行的功能与旧的相同,但它以全新的方式和更有效的方式进行了操作。

  2. 我分叉现有的存储库,删除现有的代码,然后提交新代码。我真的是Git的新手,所以我不确定这是否可行。

  3. 我将对现有回购的更改提交给我,看看当前的贡献者怎么说。

在这三个选项中,我强烈倾向于第一个。但!我是开源的新手,我想确保自己按照正确的礼节做事。我不想让我的第一个项目浮出水面,成为一场灾难。选项2听起来不错,但是我不确定是否应该这样做。我不确定历史记录和差异会如何工作。我们最多只谈论500-1000行代码。因此,这不是一个庞大的代码库。

感谢您提供的任何输入!


10
由于所有代码都是新代码,因此我倾向于使用#1,因为旧项目的历史确实无关紧要。但是,最好在自述文件中添加“基于……的想法”。
彼得·罗威尔

2
@PeterRowell,请在评论中注明该评论,以便我支持!
MattDavey 2013年

@PeterRowell感谢您的建议。好主意啊。
马特·凯勒

1
对于2,无需删除现有存储库。无论您做什么,我都相信原始开发人员会感激您告诉他您正在分叉该项目
James

Answers:


13

由于所有代码都是新代码,因此我倾向于使用#1,因为旧项目的提交历史记录确实无关紧要。但是,最好在自述文件中添加“基于……的想法”。

我非常肯定我们(或我们的算法)来自何处。如果你回顾历史的迷雾中,你会看到,我们都站在那些来到在─的肩膀所有我们的。例如,我在1980年代开发并销售了一个相似性搜索引擎,对于某些人来说,它似乎是非常激进的(当时布尔是金刚)。但是我所使用的算法的核心是基于距我20年之前在康奈尔大学的Gerard Salton所做的工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.