开源17年,我决定关闭Canario终端
Closing Canario Terminal source code

我从17岁开始投身开源,曾梦想在Mozilla工作,也推动过许多内部项目开源。但这次,我决定将Canario终端转为闭源。原因很简单:我把它当作自己的工具,而维护开源项目的成本远超想象。如今,AI让低质量问题和PR泛滥,消耗了开发者大量精力。Canario没有遥测,仅用于检查更新。如果你介意闭源,世上还有很多优秀选择。旧版Rio中仍保留着Canario的源码,欢迎自行fork。我将继续维护Rio,但Canario将按我的节奏发展,不再回应外部请求或AI生成的垃圾问题。这并非背叛开源,而是对自我时间和精力的尊重。
人们低估了开源对维护者的成本,它不只是写代码,还包括处理问题、拉取请求、讨论,以及人们免费向你索要东西。
HN 评论区
54- kasajian
他有权对自己的源代码做任何他想做的事,但开源无非就是一张许可证。在 GitHub 出现之前,我们已经有 GPL 2 了。你要么随软件交付源代码,要么在有人请求时提供源代码,哪怕是通过平邮(snail-mail)。
我对这篇文章唯一的异议是这一段:“人们低估了维护方在开源上的成本。这不仅仅是写代码。还有 Issue、Pull Request、讨论,以及人们免费向你索要各种东西。我被垃圾信息轰炸得厉害。而现在有了 AI,向维护者发送垃圾信息变得太容易了:低质量的 Issue、生成的 Pull Request,每一个都要耗费你一点时间和精力。”
这完全是自找的。别开 Issue,别收 PR。把仓库设为除你之外所有人只读。除非你打算把所有源码都留在自己电脑上,永远不推送到任何地方,否则这根本不需要任何精力。好吧,如果是那样,那你确实省去了推送的麻烦。
所以,如果你不想做那些事,没问题。你不必做。但别假装唯一的替代方案就是关闭源码。
- jicea
我认为 SQLite 的“开源但不开放贡献”(Open-Source, not Open-Contribution)模式是一个很好的折中方案,既能保持维护者的理智,又能让代码保持开放 [1]:
“SQLite 是开源的,意味着你可以随意复制它,并对这些副本做任何你想做的事,没有限制。但 SQLite 不是开放贡献的。为了保持 SQLite 处于公有领域,并确保代码不会被专有或受许可的内容污染,该项目不接受那些未提交声明将其贡献奉献给公有领域的人提交的补丁。”
- efficax
随你便,当然。但人们经常抱怨“开源维护”太难。可你完全可以只发布源码,然后就此打住。建个网页,放上代码的 tarball,每次你认为有新版本时就更新一下。你没必要发布 git 仓库,也没必要允许 Pull Request、Issue 以及那一堆乱七八糟的东西。这些跟开源的目的毫无关系,开源的初衷是让你能访问运行在你电脑上的代码,从而掌控它。
- nkrisc
但“开源”并不意味着你必须接受 PR 或应付其他人,对吧?源码不能就放在某个地方,不接受 PR、Issue、评论或任何其他东西吗?
如果他们连这样都不愿意做,那也没关系,这是他们的选择。但似乎有一个合理的折中方案被直接跳过了。
- st3fan
如果你在 GitHub 上,也可以禁用 Issue,并只允许贡献者(也就是你)发起 Pull Request。这样你依然是在“公开”状态下开发,但不接受任何贡献。