编辑别人的开源模块的正确编程礼仪是什么?我是开源编程世界的新手,我不确定编辑小型非社区项目的最佳实践。我想在游戏刚开始的时候做到这一点,这样我养成了良好的习惯。
我想使用的模块是一个托管在Google代码上的36行模块,具有GPLv3许可证。这个模块的功能与我所说的非常相似,但不是我需要的。我看待它的方式我可以做一些事情:
一个。下载模块并对其进行编辑以完成我需要的工作(这种方式将保留作者的所有功劳)
B中。将模块直接复制到我的程序中,并使其完成我需要的工作。 (这种方式不会给作者留下任何信用)
℃。制作一个新模块,完全符合我的要求,然后将其上传到Google代码中(当我只编辑几行时,这会让我看起来像是完成了所有的工作)
d。给项目的作者发电子邮件,向他展示我想要添加的功能并将其作为补丁提供给他
答案 0 :(得分:4)
如果模块是GPLv3,则GPL许可 要求您在重新分发或传送代码时将代码也放入GPLv3许可证中。因此,简而言之,您无法使用GPLv3模块销售专有二进制程序,而无需提供GPLv3许可的源代码。如有疑问请联系律师:我不是律师
然而,自由软件是一种社区和社会现象。我的实际建议是礼貌地通过电子邮件向项目使用的邮件列表发送一个补丁,为您的改进提供解释。
一个好的社会规则是尽可能多地展示和分享(和讨论),并尽早对社区进行改进。不要偷偷做事!
答案 1 :(得分:2)
D和A.首先提交补丁。如果作者拒绝它或者没有在合理的时间内作出反应,请分叉项目并根据您的需要进行修改。当然,你必须尊重许可证。
答案 2 :(得分:2)
您从选项A开始,然后是D.下载模块。编写补丁。测试一下。使用它一段时间。然后以“context diff”或“unified diff”格式向作者发送补丁。
作者可能不想要你的补丁,在这种情况下你的选择是fork。设置您自己的项目并归功于原始资源。您需要阅读许可条款,但分叉可能是兼容的。