起因
“想参与到某个开源项目”这个念头最早应该可以追溯到刚加入 NyaaCat Community 的时候,发现原来之前在其他 Minecraft 服务器玩到的 RPGItem 插件 原来是开源的!并且一直有在积极维护,这也太酷了吧!
但是这个时候的我并没有编程基础,更喜欢把时间花在使用这些插件以及玩游戏上面。
第一份工作
我的第一份工作的主要职责之一就是基于一个 Django 框架的开源项目进行二次开发,在这之前我没有任何实际的 Web 后端开发经验。 但是开源社区的文档和当时的 Leader 教会了我很多 Web 相关的基础知识,直到现在都受益匪浅。
这个时候我就开始想着,我应该如何才能对帮助过我这么多的“开源社区”做一些贡献呢?
但是直到第一份工作结束,我也没有尝试对开源社区提交过一次 Issue 和 PR 。
第一次贡献
在某论坛闲逛时,发现了一个作者在推广自己开源的轻量级的 Web 文件服务器,当我尝试部署到本地时,发现缺少了依赖,于是我提交了我的第一个 Issue和PR 。 于是我开始焦急的等待,想着作者什么时候会合并呢?想着自己终于迈出了第一步。 大概三小时后,邮件提示我 Issue 和 PR 都被关闭了。 作者回复我说 注意到了这个问题,并自己修复了。 虽然是一个微不足道的修复,但是被这样关闭有一种莫名其妙的沮丧感。
第一个开源项目
其实写 ncmp 这个脚本的念头在大学时就产生了。 在某次查看私信时偶然发现获得了网易云音乐合伙人资格,刚开始还会兴致勃勃认认真真的去评分,到后面由于歌曲质量/重复操作很无聊等等原因,每天每首歌都开始评3分摆烂,想着能维持资格就行。
在第一个 PR 被拒绝后,我开始写我自己的开源项目。 参考了其他脚本的实现方式,并使用我更熟悉的 Github Actions 去实现定时任务。
于是我第一个真正意义上对其他人有用的开源项目 ncmp
就这样诞生了。
Dify
最开始了解到 Dify 是在前司研究 Agent 平台时,尝试过 Dify / Flowise / Bisheng 等项目,但是 Dify 的体验在我这里绝对是断层式的领先。无论是在 说明、文档、社区支持、UI还是代码质量上,综合体验与其他开源平台拉开了很大的差距。 所以即使 Dify 的 Lisence 有一些限制,也还是说服公司选择了 Dify 。
我的成长离不开这些优秀的开源项目,我也一直想着,我能为真正的开源社区做一些什么?
我开始在 Dify 上找一些我能解决的 Issue 并尝试提交 PR 。 不得不说,即使你从来没有为开源项目贡献过代码,Dify 仓库绝对是一个很好的开始。它不仅有:
- 详细的文档指导
- 氛围很棒的社区
- Issue Labels 分类明确,易解决的 Issue 会被标记为
good first issue
- 完善的 Issue / PR template ,你只需要根据提示填写内容即可
- ……
总之,我开始在业余时间给 Dify 提交 PR,收获颇丰。
- 我也可以数格子了!
- 群里抽到的 Dify SaaS Pro !
- 100k stars 时,来自官方的感谢! (很荣幸成为这 18 分之 1 )
- Contributions Top 50 !
我也尝试设计过一个大的需求(workflow schedule),由于后续发现官方已经有计划了遂弃坑23333
杂乱的文档:
第一次尝试设计UI:
在为 Dify 贡献的过程中,也学习到了很多设计,无论是前端还是后端,这真的是一个很棒的项目! 在此感谢 Dify 的所有开发人员以及社区运营们没有你们就没有这么棒的项目诞生!
虽然我很少与开发者们交流,在群里也是一直潜水w 但这份感谢是由衷的。
I Love Dify !
Memobase
在五一之前,我主动找到了 memobase 的作者 gusye (坚白),说想为 memobase 开发 Dify 插件。 既能为 memobase 生态添砖加瓦,又能学习到 dify 插件开发,何乐而不为呢?
在插件开发的过程中也找到了 memobase 中的一些小bug以及文档中的一些小错误。 五一假期期间花了两天完成了该插件,放假一个人写代码好舒服!
嘿嘿插件被夸啦
Summary
我没有什么远大理想,写代码是我的爱好,为开源贡献只为满足我自己的虚荣心。
写下这段流水账记录我自己尝试开源贡献的历程,希望能鼓舞到想要尝试开源但是始终没有开始的人。 尽管去做吧!不要太在意别人的目光!
以及正在筹划自己的新项目,敬请期待~