logo

开源初学者指南(三):做好开源贡献的6个技巧

作者:OSCHINA2021.09.22 14:23浏览量:150

简介:本文将介绍六个小技巧,帮助你为开源项目做出有价值、有重点、有效益的贡献。

原文:The Beginner’s Guide to Open Source, Part 3: 6 Tips For A Great Open Source Contribution 作者:Vi Tran,编译:御坂弟弟

参与开源项目是令人兴奋的,这是一个展示你个人技能的机会,同时也能帮助你了解流行的项目、框架和库是如何构建的。成为一个贡献者可以扩展你的能力,将你介绍给由热情的开源贡献者组成的新社区,并帮助你思考如何在开放中进行合作。

然而,为开源项目做贡献并不总是那么容易。例如,如果你不遵循贡献者指南或风格指南,你的拉取请求(PR)可能不会被接受。因此,本文将介绍六个小技巧,帮助你为开源项目做出有价值、有重点、有效益的贡献。

确保贡献是需要的

通常来说,你应该从项目的问题列表开始做出你的第一个贡献。找一个你知道你有时间投入的简单问题,并展示你的技能。要小心那些已经存在太久的问题,这些老问题可能已经被解决了,但没有标记为关闭。如果你不确定,可以联系维护者,询问这个问题是否还需要解决。

保持一个开源项目的健康发展不仅仅需要推出新功能或修复 bug,项目维护者还负责审查合作者的 PR。对于有的项目来说,提交数量可能非常多。因此,如果你的提交被拒绝了,不要气馁。如果你想对项目提出新的功能,应该在提交 PR 之前先创建一个 issue 来讨论你的提案。一旦你得到了项目成员的绿灯,你的提交有可能会与维护者产生更多的合作,从而优化这个过程。

另一个需要注意的是,开源项目的成员会给那些适合初学者的问题打上标签。例如,在 Node.js 项目的 Contribute Page 中,他们会标记推荐适合初学者的问题。

一次解决一个问题

维护者喜欢协作和质量。确保你的工作是 “触手可及” 的:你的贡献不仅能为项目提供价值,而且也是你有信心能够完成的。如果你正在进行一个较大的提交工作,可以尝试将你的问题分解成多个问题,每个问题创建一个分支,然后分别提交审查。影响范围较小的改动会增加你的 PR 在合理时间内被审核和接受的机会。

此外,给你的 PR 起一个简单而有意义的标题,比如说:

  • 修复 ticket #741: Name validation 忽略大小写
  • 在涉及国际化的常见问题中增加三个条目
  • 将所有出现的 xopen() 改为 yopen()

而不要用下面这种:

  • 修复 ticket #741: Name validation 忽略大小写。另外,修改调用记录器时错误信息的措辞。

后一个贡献可能会被拒绝,因为它结合了两个不相关的工作:修复名称验证和纠正错误信息。

你的贡献的意图必须让团队中的每个人都清楚,因此,你需要通过给 PR 赋予有意义的标题和简明的描述来保持有效的沟通,解释你所改变的内容和原因。如果项目有样式指南,请遵守它,并按照维护者推荐的方式提交项目。

理解项目指南

在开始任何工作之前,请花时间阅读项目的贡献指南和样式指南。这些指南描述了项目团队对新贡献者的要求,以及他们在每个步骤中应该如何进行。这些指南通常包括从贡献者礼仪到技术细节的说明,比如创建分支和拉取请求、编码风格、提交消息和测试需求。如果没有这样的指南,请确保你的代码和测试与项目的整体标准和实践保持一致。

争取实现测试全覆盖

维护者总是关心于代码质量和健壮性。有些项目要求对所有的拉取请求进行 100% 的测试覆盖,而有些项目则没有那么严格的规定。这些信息通常在项目的贡献指南中说明。

无论测试要求如何,贡献者应该总是以全面测试覆盖为目标。在本地针对现有的测试运行你的改动,并创建新的测试,这样你的代码就能完全覆盖。另外,确保你的修改不会破坏现有的项目功能。在你熟悉项目测试后,你甚至可以通过为其他贡献者提交的测试覆盖不足的代码创建新的测试来做出贡献。

不要忘记文档

记住,不仅要把你的改动传达给其他团队成员,还要传达给整个社区。更新项目文档,比如 README 文件,清楚地描述你在 PR 中包含的 bug 修复、新功能和其他变化。如果有可能,请提供代码片段和截图来更好地说明你的描述。

文档的更新应该先于贡献。不仅包括文档或 wiki,FAQ 有时也要更新。对于同一个功能,文档在两个不同的地方有两种不同的说法,这是项目中最令人困惑的事情之一。

请求评审

在你提交 PR 之前,请人评审。这个人甚至不必熟悉项目,他们只需要对你正在做的事情有一个大致的了解。也许你还没有清楚地解释 PR,或者你的测试案例看起来不够广泛。多一双眼睛可能会帮助你在发布 PR 之前发现新的问题。有些项目有一个审稿人的名单,所以你可以联系其中的一个人,要求他们进行同行评审。

最后

如果你严格按照以上步骤谨慎认真地对开源项目做出贡献,那么这个过程就会变得更加容易和愉快,并且要习惯设身处地地考虑其他团队成员的时间。开源社区中的每个人,从初学者到资深工程师,都能从开源项目中获益。为开源项目做出贡献是回馈社区的一种很好的方式。以上讨论的技巧并不是做出优秀的开源贡献的唯一方法,但它们是一个好的开始。

相关文章推荐

发表评论