为开源事业作了点贡献

CNCF这几年太火了,他的很多项目在云原生领域都有决定性的影响力,像著名的Kubernetes、Etcd、Containerd等等。最近刚好也在学习这些东西,也顺便想找个机会为这么多开源项目做点贡献。很巧地,在论坛里看到Kubernetes旗下一个项目正在呼吁社区帮忙维护一个项目,我马上就联系项目管理员加入了。

这个项目在这里: kubernetes/kompose ,在学习K8S期间,也考虑过怎样把自己机器上众多 docker compose 都交给K8S,比如开发中经常会用到的数据库、Nodejs、AI等,没想到社区已经有一个已经相对成熟的开源方案了,后来试用了一下效果还不错。如果要为这个项目做点什么,就应该先熟悉一下整个项目的架构和流程,然后从issues入手尝试解决一些小问题,最后再考虑去完善一些新的功能模块。

解决问题通常是比较简单的,但顺利走完整个流程还要费点劲,特别是第一次提交代码。我看到一个issue中有人希望能增加对fish shell的自动补全支持,就很快在代码中实现了,但第一次提交就出问题了,后来才知道,首先代码要fmt、lint等,一步都不能少,否则可能无法通过极其严格的CI,并且在提交代码之前要先签署CLA——Linux基金会的贡献者许可协议,再在commit的时候通过本地GPG签名自己提交的代码,最后才是push。这么复杂的流程应该是CNCF的项目特有的,对普通项目的贡献至少是不需要签CLA的。

支持开源项目对绝大多数人来说就是无私奉献,只有对社区产生了比较大的影响力了才可能会有额外的收获。作为普通开发者,对一个项目的贡献一方面是对社区的回馈,毕竟职业生涯中是肯定会借用别人肩膀的;另一方面通过贡献代码提升自己的技能和影响力。也有人已经习惯了伸手,但是请记住:没有什么理所当然,绝大多数人都是把业余时间投入开源项目的,所以应该多一点理解和尊重,毕竟,道德应该用来要求自己,法律才是用来要求别人的。

评论

此博客中的热门博文

加拿大SUV移民项目的流程和花费

SUV 项目 DIY 的挑战和误区

移民是自己规划出来的,而不是大力出奇迹