如何分叉,做出重大改变,并给予适当的信任?

How to fork, make significant changes, and give proper credit?

我在 github 上有一个 elisp 项目。一些源文件和函数我不想改变,一些我想大刀阔斧地改变,而其他的只是稍微改变。每个源文件顶部的原始版权都提到了它来自的项目。

1) 我应该重命名所有函数还是只重命名代码更改的函数(无论多么小)?

2) 如果我修改了一个文件中的一些函数而不是 all/most 我是否应该重命名文件并更改顶部的版权以反映我的项目而不是原始项目?

3) 如果 many/all 个文件被重命名,我应该如何归功于原作者(除了他们的提交出现在 git 日志中)?

笔记

我分叉是因为我想把代码从原来的目的转向一个非常不同的方向,我的分叉不会被原作者拉进来。

原始项目和我的分支都使用 GPLv3

Elisp 代码按照惯例在 functions/variables 的名称前加上项目名称前缀,以避免命名空间冲突。

** 编辑 **

发帖后发现了一些额外的信息...

How to rebrand/copyright a forked project (GNU/GPL)?

1) Sure. In fact, not changing it at least a little would imply it's the original project, which is a bad idea.

2) You can't remove copyright notices. Add yours on top.

3) Why do you want to remove the reference to the old project? It's a suggestion, but removing it would be impolite and potentially misleading. The Open Source/Free Software communities value correct attribution.

Need advice on attribution/copyright of heavily modified OSS code (BSD, Apache, etc) in source headers

If you copy even a single function out of a file, unless you could convince a court that the function was too trivial for copyright to apply, then the license of the source file stays with the function

在 Stefan 的回答和这些 Whosebug 帖子之间,我决定:

1) 重命名所有文件和函数,即使没有更改以使用我的项目名称。

2) 保留所有现有文件中的原始版权(以及将旧代码移至更符合逻辑的细分部分而产生的一些新文件)

3) 将我的版权添加到所有新旧文件中。

4) 在旧版权上方做一个注释,以检查 git 某个提交 ID 之前的历史记录,以查看 fork 时的原始项目以及对 url 的引用查看最新版本的原始项目。

我认为这些更改应该明确表明这是一个单独的项目,同时保持原作的信誉并避免任何命名空间冲突或侵犯版权。

版权是累积的(即只要您在新代码中继续使用某些原始代码,原始作者仍然适用于该部分代码)。所以不要用你的替换他的版权,而是将你的添加到他的旁边。