开源项目贡献是什么意思?
开源贡献就是使用一切办法来提升开源项目。一个常见的误解是你只能贡献源代码,完全不是这样。
贡献源代码是参与开源项目的一种形式,但是还有其他方式:
项目的文档。提高文档质量,帮助贡献者和用户更容易参与和使用。
测试应用、发现问题,并在问题管理系统创建问题(issue)。
参与代码校对,帮助提高项目的编码标准。
编写单元测试、端到端测试,使得应用的质量更高。
创建如文章、视频之类的内容来提升项目的知名度。
帮助创建兴趣社区。
以上都是重要的开源贡献方面。
参与开源贡献的好处
贡献开源项目对于开发者来说好处多多,但是主要的好处有:
抓住机会、提高技能水平。
提高软件/应用的代码和文档水平。
接触想法相似的朋友,建立人脉和社区。
理解应用开发和维护的流程。
从 Pull Request 反馈中学习。
学习如何管理自己的开源项目。
开源迷思
我们已经了解了开源模型和它的好处。接下来我们就要学习如何作为项目的维护者 和参与者来开启开源之旅。
在开始之前,让我们先消除一些迷思。
❌ 迷思:我不了解代码,开源不适合我。
✅ 事实:开源不仅仅是编写代码!你可以通过改善文档、测试、创建媒体、内容等各种方式参与进来。所以不要让不具备编码技能成为你参与开源项目的绊脚石。
❌ 迷思:我知道怎么写代码,但是我对开源项目使用的技术不熟悉,我不能贡献。
✅ 事实:相反,这是学习新东西绝佳的机会!开源生态系统提供足够的时间和耐心让你学习和参与贡献。
❌ 迷思:开源项目的维护标准不如企业。
✅ 事实:完全不对,实际上有非常多的企业软件来源于开源软件,所以认为开源项目的质量和标准不高不对。
❌ 迷思:开源项目难以维护。
✅ 事实:开源项目是由贡献者支持的。维护者主要的工作是设定范围、创建路线图、创建社区以及保持社区的贡献热情。
许多开源项目的维护者甚至不需要编写代码。只要维护者提供必要的支持,贡献者就可以将项目运作起来。
❌ 迷思:开源软件总是免费的。
✅ 事实:大多数开源项目是免费的,但不是所有的都是。这是由项目的许可证所决定的。有一些许可证要求必须让使用和分发免费。你需要格外注意项目许可证信息,了解 OSS 到底免费到什么程度。
❌ 迷思:开源项目只适合初学者。
✅ 事实:许多开发者认为开源项目是为初学者和学生设计的,实际上任何人都可以参与进来。对于主题专家来说,利用他们的知识和经验来增强开源项目是有意义的。
开始参与开源需要具备什么条件?
开发者想要快速开始参与开源项目需要了解一些基本技能。这些是可选的,但是如果具备,你将更享受参与开源贡献。
- Git 基础
- 熟悉Github
- Markdown 语法
- 软技能
- 耐心:耐心是所有开发者必备的技能。当你在学习新知识,排查复杂问题的 bug,和其他人一起工作、谈判,给予和吸收意见的时候都需要耐心。事情常常不如预期的节奏推进,所以你需要保持耐心面对现状。
- 好奇心:好奇使人进步。参与开源贡献将拥有无限可能。你需要对解决问题充满好奇心。好奇心不仅适用于解决技术难题,也适用于和他人一起工作。
- 责任心:在开源生态中,你可能不会经常和人见面及交流。你必须对所有查询、任务、请求以及委任于你的事情负责。许多伟大的倡议往往因为人们缺乏责任心而不了了之。
- 谦逊之心:谦虚是成功的关键。有学识但不谦逊的人往往不适合团队协作。
如果你尚未开始贡献开源项目,我将通过这篇文章分享我自己的经验帮助你开启开源之旅。
开源是如何运作的?
开源项目包含以下人物和元素:
项目维护者:维护者有一位或者多位,他们启动开源项目、管理项目、制定决策、集思广益并且和贡献者、用户以及营销平台密切接触。
项目维护者拥有额外的权利来控制项目的各个方面。
项目贡献者:启动开源项目的维护者是早期贡献者。随着项目的壮大,更多人了解到项目并且愿意参与贡献。
项目越大,贡献者越多。任何人都可以查看项目代码、修改代码、请求校对并将改变并入项目中。
源代码和文档库:维护者将项目源代码保存在一个中心化的源代码库(例如 GitHub)。这样所有贡献者就可以访问代码并且参与贡献。
项目许可证:每一个开源项目都必须指定一个分发许可证,给用户和使用者提供清晰的信息。
有各种各样的许可证,维护者可以根据项目做选择。比较广泛被采用的许可证包括:MIT、 Apache License 2.0、 GNU General Public License(GPL)3.0 等。
贡献指南:OSS 项目的维护者创建贡献指南帮助贡献者理解合并请求(pull request)的流程、标准、范围等。
行为准则指南:行为准则指南讨论各种指导方针、对贡献者的协同和行为期望,以及如何提出和解决 issue(问题)。
项目文化:项目文化随着项目社区发展而变化。虽然维护者对其影响重大,但贡献者也有同样的责任来维护一个健康学习、分享和成长的文化。
社区:随着项目发展,围绕项目的社区也发展起来。组织社区交流的常用平台有 GitHub Discussions 和 Discord。
分发:开源项目应该接触到终端用户和消费者,所以应该有一个分发模型将代码转化为最终的产品,进行交付。
用户/客户:用户和客户是开源团队通过源代码构建产品的消费者。
让我们查看下面的图片,图片是一个包含维护者和开发者的开源项目社区。
中心化的仓库里包含源代码。贡献者 fork(分叉)(你马上要学到这个术语)upstream repository(上游仓库)并贡献。一旦完成,项目维护者将其 merges(合并)到主分支(main branch)。
如何开始参与开源项目贡献?
让我们来看看如何开始参与开源项目贡献。下面的清单提供了一些链接和资源助你马上开启开源贡献之旅。
GitHub Explore
GitHub Explore 会向你展示你感兴趣的仓库,你可以给特定仓库设置提醒。
同时,你可以使用话题和趋势来寻找仓库。使用 GitHub Explore 来寻找最合适你的技能、需求以及对你最有启发的项目。你可以通过这个地址查看:https://github.com/explore/。
如何参与 freeCodeCamp 的开源项目?
freeCodeCamp 的仓库绝对是一个宝藏,它提供了许多资源和知识帮助你开启开源之旅。你可以通过这个地址查看:https://github.com/freeCodeCamp/how-to-contribute-to-open-source。
Contributor Ninja
这个网站供你选择一系列编程语言:JavaScript、 HTML、 Rust、 Go 等。你可以通过卡片选择对应的仓库,简单方便,是一个不错的开始。你可以通过这个地址查看:https://contributor.ninja/。
First Contributions
这是一个巨大的清单,包含供你查找和过滤的开源项目。每个项目都有编写清晰的文档。你可以通过这个地址查看:https://firstcontributions.github.io/。
CodeTriage
CodeTriage 是一个包含巨量开放 issue 项目的清单。它将 issue 和文档归类后分发给你。这个网站十分有用,你可以通过这个地址查看:https://www.codetriage.com/。
Up For Grabs
这里包含了各种各样的开源项目,你可以基于自己兴趣筛选。你可以通过这个地址查看:https://up-for-grabs.net/#/。
First Timers Only
如果你之前从未参与开源贡献,并且跃跃欲试,可以考虑阅读这个网站。
在阅读的过程中,你或许会碰到我们讨论过的资源,这个网站能量满满。你可以通过这个地址查看:https://www.firsttimersonly.com/。
Open Source Friday
你本周五或者下周五有什么打算?花点时间给你使用或者喜欢的软件做点贡献?推荐你查看这个网站并且注册。你可以通过这个地址查看:https://opensourcefriday.com/。
希望这些资源对你来说有帮助。
开源项目维护者
到目前为止我们讨论的都是开源项目的贡献者,如果止步于此这篇文章就不完整,所以我们也讲讲开源项目维护者相关的内容。
作为项目维护者,你应该遵循一些标准使得其他人能够理解并且参与贡献你的项目仓库。
提供项目明确的名字和介绍。你也可以添加项目相关的话题。
添加清晰的Readme.md文件介绍项目的目标、如何使用、设置等。如果说源码是项目的心脏,那 README 文件就是项目的脸面。
建立社区档案。开源仓库维护者可以通过它来检查工作、了解哪里需要帮助。
建立编码行为准则。
创建贡献指南。
决定 issue 的模板。
创建 Pull Request(PR)模板。
激活 GitHub 赞助。
你可以通过阅读这篇文章了解更多细节。
在结束之前…
就这么多!到这里,我们就到了本文的结尾。希望这篇文章对你有所启发,并且给了你足够的动力开始为开源做贡献。
在我们结束之前,我想再提几个开源项目和仓库:
EddieHub
ReactPlay
Hacktoberfest
First Contributions
The Hive
原文链接:https://www.freecodecamp.org/news/a-practical-guide-to-start-opensource-contributions/
作者:TAPAS ADHIKARY
译者:PapayaHUANG