阅读(419)
赞(14)
选择一个开源项目加入贡献
2020-09-08 11:34:46 更新
如果你跟着了一条 issue,还发现了令人感到困惑的事情,这很正常,不是你一个人这样。这些工具需要大量的隐式的知识,但是总会有人带着你熟悉这些,当然你要找他们问对的问题。
— @shaunagm , “如何为开源做贡献”
为开源做贡献,除了单词拼写错误之外,大多数时候就像是走在陌生人中间,浑身上下不适。这就像人们已经讨论西边的事情讨论得非常深入了,你突然开始讲东边的事情,肯定会让人感到不舒服。
与其盲目的在项目中游荡,不如静下心来学习规则。这样反而会让你的想法被注意到,也会有人听到你的声音。
分析感兴趣的开源项目
每一个开源社区都是不一样的。
在某一个开源项目扎根多年,这意味着你只是对这一个开源项目无比的熟悉。若是切换到不同的项目,可能会发现完全是另外一回事,所谓的使用词汇、习惯用语、沟通方式都发生了变化。
然而,很多的开源项目还是遵循类似的组织结构的。理解不同的社区角色和全部的流程,可以很好的帮助你快速的切入新的项目。
一个典型的开源项目均会有如下类型的人:
- 作者: 项目的创始人或创始组织
- 归属者: 代码仓库或组织的管理员(不一定和作者是同一个人)
- 维护者: 贡献者,负责项目的未来走向和组织的管理(他们通常也是项目的作者或归属者。)
- 贡献者: 只要是为项目做出了贡献,就算。
- 社区成员: 那些使用项目的人们。他们或许是积极的讨论者,又或者是为项目的方向提出意见的人。
一个较大的项目,可能下面还会细分子社区,或者是针对不同的任务分成不同的小组,比如工具小组、分流、社区事务、以及活动组织等。径直到项目到网站,找到”团队”页面,或者是查看治理文档,从而获得类似到信息。
靠谱的开源项目,一般都会有文档的,这些文档文件通常会在代码仓库的顶级目录列出。
- LICENSE: 根据开源软件的定义,每一个开源项目必须是有开源许可协议 的. 可以这么认为:假如说某个项目源码开放,但是没有任何的许可协议,那么它就不能叫做开源。
- README: README 是一个介绍性的说明文件,对初次光临社区的人们表示欢迎,它通常会解释项目有何用处,为何发起,以及如何快速入门等。
- CONTRIBUTING: README 文件帮助人们来认识项目,而 CONTRIBUTING 文件则是告诉人们对项目如何做贡献。它解释了目前项目需要什么样类型的贡献者,社区的流程是什么样的。并非所有的项目都会有这个文件,它某种程度上也是展示项目对于贡献者的友好程度。
- CODE_OF_CONDUCT: 顾名思义,即是一些参与社区时的一些礼仪、说话方式、行为等,让社区形成一种友好的氛围,不是所有的项目都会撰写行为准则文件,它某种程度上也是展示项目对于贡献者的友好程度。
- 其它文档: 有些项目也许还有其它文档,例如教程、导游,或者是治理规则,这在大型项目中常见。
此外,开源项目还会利用如下一些工具来进行组织讨论,阅读这些归档对于理解社区的想法、是如何工作的有非常大的作用。
- 问题追踪: 这里是人们讨论项目相关问题的地方。
- Pull requests: 审核代码、以及相关的问题讨论。
- 论坛或邮件列表: 一些项目会使用会话式的主题(例如 “How do I…“ 或 “What do you think about…“ 来替代 Bug 报告或特性请求)。然而有一些项目关于讨论全部实用问题追踪。
- 即时在线聊天: 有一些项目会使用聊天频道(诸如 Slack 或 IRC),从而能够随意的谈话、协作和快速交流。