“欢迎来到第三届开源项目吐槽大会!今晚我们承诺——不删issue,不拉黑用户,不阴阳怪气(才怪)。让我们有请第一位受害者,哦不,分享者!”
README迷惑行为大赏
项目A维护者(扶了扶黑眼圈):
“我家README有三宝:截图过时、文档失踪、部署全靠脑补。最神奇的是有个‘快速开始’章节,总共就三行代码——第一行`git clone`,第二行`npm install`,第三行写着‘如果报错请查看详细文档’。点开详细文档链接,你猜怎么着?404!”
“我补充!上次按照README操作,项目直接把我生产数据库清空了!提了个issue,维护者回复:‘这个功能很危险,建议不要在生产环境使用’。那你写在快速开始里干嘛?!”
那些年我们追过的issue
“我在issue里见识过最伟大的行为艺术——有人用莎士比亚体写bug报告,维护者用十四行诗回复‘无法复现’;有人画了三十张流程图分析问题,最后发现是少了个分号;最绝的是那个‘#314:项目无法呼吸’,点开一看,原来是内存泄漏...”
“你们见过凌晨四点的新issue吗?标题:‘紧急!!!救命!!!’,内容:‘快看我博客链接!’。或者这种:‘这个简单功能三天能做完吗?我大学生创新创业项目急用,做得好可以给你写进致谢里’。”
依赖地狱生存指南
“我家项目的依赖关系,比《百年孤独》的人物族谱还乱。昨天`left-pad`突然宣布维护宇宙和平,今天`is-odd`决定转行卖 NFT。最恐怖的是那个深度 17 层的依赖包,作者三年前发了条推特:‘已出家,勿扰’,但每周还在自动发布版本更新...”
文档,一种薛定谔的存在
“我的浏览器书签分类:1. ‘看起来有用的文档’ 2. ‘五年前也许有用的文档’ 3. ‘404但说不定哪天恢复的文档’。最经典的是那个写着‘最新文档请访问 wiki’的wiki页面,点进去只有一行字:‘文档迁移中,请查看GitHub pages’,而这个pages链接指向——你猜对了,最初的文档地址!”
“简单”的贡献流程
“第一步:阅读代码规范(57页PDF);第二步:运行测试套件(需要配置Kubernetes集群);第三步:签署贡献者协议(需要公证处盖章);第四步:等待核心成员回复(平均响应时间:三个星座周期)。我在‘错别字修正’的PR里经历了七轮review,最后维护者说:‘算了,我直接改了’。”
维护者忏悔室
“我承认,那个‘即将发布’的新特性已经挂了四年;是的,我知道文档里的示例代码根本跑不起来;当然,每次发版都说是‘重大重构’其实就改了版本号...但你们知道最痛苦的是什么吗?昨天有人给我发邮件:‘我用你的项目赚了1000万,这是5美元咖啡券以表感谢’。”
当开源遇见“商业化”
“我们公司基于某开源项目开发了商业产品,现在每天收到三种私信:1. ‘能不能赞助我们团队’ 2. ‘你们违反了开源协议’ 3. ‘请问这个按钮不工作了怎么办’。最魔幻的是,有一次我们提交了 5000 行代码的PR,维护者回复:‘这个功能不符合项目哲学’,然后他亲自用 50 行代码实现了一样的功能——虽然每十分钟崩溃一次。”
---
“感谢各位冒着被拉黑的风险说出心里话!最后提醒:吐槽归吐槽,记得给你讨厌的项目点个Star,给让你熬夜三天的维护者发个感谢邮件。毕竟在开源的世界里,我们都在同一座‘屎山’上,有人往上堆代码,有人努力挖楼梯。”