Aidermacs:Emacs 里的 AI 代码助手,真正适配 Emacs 的 Aider 体验

fork之前的所有change 没问题,我也没说什么。之后的,是否要说明一下?

不需要。

只要他还再公开代码的情况下没改提交记录󠄃的人的名字,你也没更新协议,也就不需要通知你。

他的代码是我手动改的,不是完全的rebase,所以名字记录被我overwrite掉了。

如果有意见,我不是不可以去改一下加回来,但会导致重写历史,影响Aidermacs的所有用户。之后我可以注意一下。

可以参考AI的说法:

No, if you take inspiration from an upstream commit but rewrite the code yourself, it does **not** violate the Apache 2.0 License—as long as you are not directly copying significant portions of the original code without proper attribution.

Key Considerations:

  1. Independent Implementation :

• If you read an upstream commit, understand the logic, and then write your own implementation without copying the original code, this is generally fine and does not require attribution.

  1. Partial Code Reuse :

• If you copy small snippets (e.g., a few lines, a helper function), it’s good practice to mention the original source in a comment, but this is not strictly required by Apache 2.0 unless there’s a NOTICE file requiring specific attribution.

  1. Direct Code Copying :

• If you copy a commit’s code verbatim (or with minor modifications), you must retain the original copyright and attribution, either in the commit history (if merging) or in the source code comments (if copying manually).

  1. Derivative Works :

• If your new implementation is substantially similar to the original, it may still be considered a derivative work. The Apache 2.0 License allows this, but attribution is expected.

这种情况下建议用 git 的 coauthor

https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors

3 个赞

了解了,下次就用。

谢谢,还有能否请回答的时候不要人身攻击,比如说 注意力,理解能力和阅读能力都有问题 信口开河什么的,看了实在不太舒服。

1 个赞

“信口开河”上升到人身攻击的程度和你指控我“不礼貌”的程度差不多。

注意力,理解能力和阅读能力,我可不是空口无凭,我有非常多的证据证明你的理解能力阅读能力都有一定的问题,还需要我再列一遍吗?算了,反正列了你也没注意力看。

更何况啊,我说你信口开河真的说错了吗?

这可是你的原文啊。

F二级菜单我能打开,C二级菜单却打不开 我 是这样安装 的aidermacs (package-vc-install '(aidermacs :url “[email protected]:MatthewZMD/aidermacs.git”)) transient-20250213.1156 版本

我刚刚也注意到了,还没来得及研究是啥问题就在论坛上被骂了哈哈,我马上来修一下~

哈哈哈,重构时跟("C" "Copy Last Aidermacs Output" aidermacs-get-last-output)混一起了,现在修好了,感谢提bug,可以试一下最新版啦

在上面列了PR 啊: ,那个是fork一两天之后后我做的,不在fork内容里,把这个change手动加到你的repo里 我没有看到注明出处 commit上是你的名字。LdBeth说建议co-author 我理解是说的这件事?

请注意,根据我们此前多次交流的内容,包括过去一个月的多次对话,还有您前面对于我提出关于您理解能力和阅读能力疑问的不服,我们可以合理假定您的理解能力和阅读能力不存在问题。然而,您反复无视关键信息,并仅选择性地回应对自己有利的部分,这种行为已超出正常讨论范畴,表现出明显的恶意误导(trolling),钓鱼引战倾向。请立即停止此类做法。

作为旁观者,我真没有看到 tninja 有什么过激的言论,而且回复也并不多;但是你发了很多贴,而且用词犀利。保持友善,互相尊重与理解。理念不同而已,各自按自己理念开发项目吧。

10 个赞

嗯,我承认我这两天的语气比较犀利,因为有过去一个月在Github的沉淀累计。我以为我和他的问题昨天就已经结束了,安心开发自己的项目。但他今天又跑来对我继续fork他的commit指手画脚,在我们多次给他解释之后,还是当做看不见,继续输出,就如我上面所说:反复无视关键信息,并仅选择性地回应对自己有利的部分,这种行为有明显的恶意误导(trolling)和钓鱼引战 的倾向了。

大丈夫敢作敢当,我在之前的AI使用上有欠妥当,所以我坦然道歉,对tninja的烦躁迁怒到了其他坛友,我也坦然道歉,这是最基本的礼貌。而不是看到有不利自己的内容就无视,别人提供的帮助无视,解释也无视,全部都无视,自己内心不平衡,最后总算发现一个我的漏洞了,赶紧跑过来揪着打,什么儿戏。

由于他不是 100% 直接 pick 的你的 commit,而是自己修改加上的,有没有违反开源协议,就得看这个改动和你重叠的部分是否必要,或者说如果让另一个人去实现同样的功能,是否写出的代码也会差不多。
就好比我们两个写 hello world 写出来一样,总不能说你抄袭我吧。

我也不是律师,具体交给各位自己判断

aider.el:

aidermacs: 分成了两个 commit 混在了其它的修改里

1 个赞

没错,这就是我说的,我看到了他的改动,我自己再进行大量重构时顺手做了,就算没看到他的commit,我自己重构时看到这种问题代码,也会顺手改掉的,每一个字都是我(或者我的aider)写的,没有复制粘贴的行为。

这三天我重构了3,816++4,614 –行代码,他偏偏挑了这几行来说事,不是恶意的可能吗?

好了,我不再自证下去了,于情于理,本来就没有违反任何规定,这个话题到此为止。

大家都消消气、冷静冷静。被 fork 以后的原项目维护者,稍微有一些小情绪也是可以理解的。只要总体而言还是保持在礼貌的讨论范围内,都问题不大,大家不要把问题升级。

之前 bram 也有过一些阴阳怪气 neovim 的时候,比如他曾经在 ML 里说 “neovim 的网站是他们唯一做的好的地方”。这句话总体而言没有很强烈的情绪,但是我们还是可以读出稍微有一点点的阴阳怪气的成分的。但是 neovim 维护者们以及社区总体都对 bram 整体充满了尊敬。尽管 neovim 从一开始的出发点就是因为 bram 拒绝了他们的 patch,并且有趣的是在 neovim 实现了这些功能以后,vim 在后续的版本也实现了类似的功能。

3 个赞

唉,确实是我不够尊敬,是我的问题。我花了一个月想和他合作,最开始我也没打算fork的,甚至 CeleritasCelery 先提出fork的时候我还劝阻了一下他,只是道不同不相为谋,真的没法合作。。。

最讽刺的是,他的帖子名字叫

抛砖引玉

感觉这个的主要难点在于 parse stdout。因为 aider 的 stdout 混杂了用户的输入 (把 stdin 解析成 stdout)以及来自 LLM 的输出。同时还有各种 interactive 的 confirm yes or no 的问题。所以就是一个解析没有提供任何 API binding 的纯文本的内容。我觉得硬解 stdout 做起来收益很低。

aider 除了终端的 UI 以外,也有一个基于浏览器的 UI,因此他们应该是做了一定程度上的前后端分离的。因此如果有能力的话可能需要像 aider 提交一些代码,把前后端分离的再开一些,并且想办法把后端代码抽出一个 binding 然后可以用类似 lsp-bridge 的技术去调用。