如何为开源做出第一份贡献
本指南将向你介绍开源世界,并帮助你做出第一次贡献
从微型库到全功能框架,从网络应用到桌面应用,从移动应用到整个操作系统,开源社区为我们提供了卓越的解决方案,这一切都要归功于来自世界各地的人们,他们全天候地贡献着代码、文档、翻译等。
由于项目的多样性和庞大的数量,为社区做出第一次贡献可能是一项令人不知所措的任务,出于这个原因,我决定建立这个指南,帮助你找到出路,迈出成为开源贡献者的第一步。
在我们开始之前,我想强调的是,与流行的看法相反,开源贡献并不一定只限于开发者。你可以在代码之外的许多方面做出贡献,从帮助设计、文档、翻译、测试、规范,甚至提供财政援助等等。如果你不知道如何编码,也不要害羞;我们欢迎所有的贡献,并帮助建立一个更好、更开放的世界。
这很好!现在我们已经熟悉了你的贡献的重要性,但你为什么要这样做呢?
为什么人们要为开源项目做贡献?
这是一个很好的问题,可以让我们开始。在某些情况下,人们为开源做出贡献只是为了好玩,为了实践,或者仅仅是因为他们想与世界分享他们正在做的事情。然而,为开源项目做贡献是非常有益的,在这里,我们将探讨几个原因,为什么这是真的。
赚取经验
当你还没有实践经验的时候,找到一份工作是非常困难的,但是如果不先找到一份工作,如何获得实践经验?进入开源世界。如果你没有经验,开源社区不会拒绝你。也许一开始,你必须把你的贡献提高到与你的专业知识相匹配的水平,但逐渐地,随着你赢得知识和经验,你可以参与到更复杂的任务中。
以后你可以把你所有的开源贡献作为简历或投资组合的一部分展示给潜在的雇主或客户,以验证你的资历和证明你知道自己在说什么。
展示对你所做的事情的热情
撇开这个出色的笑话不谈,许多开发者会因为各种原因从事副业;公司在面试时经常会问一些类似于 "你在空闲时间从事什么工作?"的问题,希望得到一些与从事开源项目有关的答案。公司喜欢那些热爱自己工作的候选人;因为只有当你热爱某件事情时,你才会把它做到最好。
在开源项目上工作会让雇主看到你对工作的热情,不会安于现状,并且有学习和掌握新技术和工具的能力。
对一个项目或技术有更好的了解
利用一个应用程序或库是一回事,但确切地知道它是如何工作的会给你一个全新的视角。例如,知道如何创建一个网络组件将使你能够创建网络应用;然而,了解组件库的工作原理将使你能够提高应用的效率,并最大限度地利用这些功能。
让你使用的项目更好
有多少次你在使用一个应用程序或库时,注意到有一个小功能是你很想看到的,比如有一个选项可以导出PDF或使用某些功能的快捷键?好消息是,如果你使用的是一个开源的应用程序,你可以自己建立这个功能,并把它纳入应用程序,让其他人也使用它。这不是很好吗?
与社区联系
因为即使是开发者也是人,我们喜欢成为某些东西的一部分;被认可、分享和谈论我们所喜欢的东西会让我们的心充满力量,而成为社区的一部分就是这样。
此外,当我们谈论开源时,我们不能只谈论一个社区,而是要谈论成千上万个专注于不同项目或技术的社区,按语言或地点分组,有足够的选择让我们找到我们感到舒适和受欢迎的地方。
你自己的原因
我不能在这里涵盖所有的原因;我甚至不知道所有的原因;我列出了一些流行的选择,但我很想听听你的意见;是什么让你对开源项目做出贡献?
做出你的第一个贡献
你一路走到了这里;这真是太棒了!你知道吗?接下来,让我们跳到做出第一个贡献的步骤。
1.决定你要如何贡献
也许你已经有了一个关于如何贡献的想法,但对于下一步来说,你必须事先知道你将做出什么类型的贡献。你打算用代码做贡献吗?测试?文档?翻译?
我想在这里暂停一个重要的说明,没有什么贡献是太小的;所有的贡献都有帮助。正是由于许多小的贡献,项目才会变得伟大。
也许你有一个以上的想法,这很好;只要在接下来的步骤中记住它们。
2.选择一个项目
对大多数人来说,首先想到的是他们日常使用的项目;然而,这些不一定是让你开始的最佳选择。根据一个项目的成熟度和复杂性,可能很难有人开始做贡献。理想情况下,你会找到一个适合你经验水平和知识领域的项目。
但那时你如何找到一个项目呢?幸运的是,有几个网站可以追踪那些对初学者友好的项目,它们以不同的方式进行追踪,但它们大多集中在维护团队标记的特定开放任务上。
在所有这些网站中,你都可以应用过滤器,将项目与你的兴趣和专长相匹配。除了这些网站,你还可以使用GitHub的探索模块来寻找相关的项目;然而,这并不是一个精心策划的适合初学者的项目列表;它是一个寻找有趣或趋势性话题的绝佳工具。
你也可以在这一步挑选不止一个项目;这也可以是一个长期的迭代过程。
3.找到第一个好问题
在上一步中,你选择了你愿意合作的项目;现在,是时候让你承担一个具体的问题或任务了。许多开源项目都在GitHub上,所以我们将按照该平台的步骤来解释这个过程;不过,如果你的项目碰巧托管在其他平台上,那么步骤也会非常相似。
根据你的技能水平,你可能想从一个简单的任务开始,一些项目维护者会让你更容易进入这些任务。尽管GitHub没有特别的功能来突出任务的复杂性,但人们还是有一些标准的方法来标记它们。
在GitHub上最常见的是给问题贴上特定的标签,像 "很好的第一个问题"或 "仅限新手"这样的标签,在你熟悉项目和项目的具体内容之前,一开始是很容易承担的任务。
另一个经常使用的标准标签是 "需要帮助";这个特殊的标签是由维护者在不同的复杂情况下寻求外部帮助而使用的。
在任何情况下,无论一个任务是否包含这些标签,你都应该对这个问题进行评论,并与项目维护者讨论你对帮助的兴趣,确保他们可以接受,并且目前没有其他人在做这个任务。
下面是一个根据这些标准使用标签的项目的例子。
请注意,不是每个人都会使用相同的标签,这些标签是以项目为单位配置的,它们是由一个自由文本字段创建的,所以确切的名称可能会有所不同。
4.检查贡献要求
所有的项目和维护者都是不同的,虽然整个开源社区的规则基本相同,但项目可能会有一些例外或特殊要求。这些特殊性可能包括要使用的模板、特殊的代码提示规则、沟通要求、风格指南等。
在大多数情况下,一个项目的所有这些特殊性都会在项目源的CONTRIBUTING.md文件中得到充分的记录。
请确保你阅读它;它可能包含有用的信息。
5.分叉项目并开始工作
由于问题或任务的内容以及贡献指南,你已经知道了你要解决的问题以及如何去做;现在,是时候工作了。
贡献开源的通常过程是 "分叉 "项目,这将在你自己的账户上创建一个项目的副本,你可以在那里处理代码,进行测试,当准备好时,你可以通过拉动请求表将你的修改转移到主项目中。
将项目分叉到自己的账户并下载到自己的电脑上是非常容易的。
分叉了项目之后,就可以在本地电脑上克隆它来工作了。
你可以通过复制你喜欢的选项的URL,HTTPs或SSH,以及使用命令来克隆项目:
git clone <url copied>
最近GitHub增加了一个新的选项,叫做GitHub CLI;如果你安装了它,并且选择了这个选项,你可以简单地复制和粘贴完整的命令,而不仅仅是URL。
如果你需要更多关于如何使用GIT的细节,请查看我的GIT介绍
一旦代码在你的电脑上,按照说明进行设置,让它运行起来,进行修改,准备好后,把它们推送到你的账户。
6.提交一个拉动请求
现在,你已经解决了问题,或者在你的项目副本上实现了一个新的功能;你按照说明进行了测试和记录;现在是把这些修改合并到主项目的时候了。
将你的修改转移到主项目的过程是通过创建一个拉动请求来完成的。拉动请求是一个你提交给主项目的表格,它包含了你在提交中的修改,一个标题和一个描述。
在你提交拉动请求(PR)后,维护者会对其进行审查,可能会发生三种情况:
- 维护者会接受你的PR,你的代码修改就会正式生效!"。恭喜你,并感谢你的贡献
- 维护者会对你的代码进行评论,给你一些提示,以提高你的交付质量,改变代码的结构方式,或类似的事情。你必须解决这些评论,而且每次你在PR的同一分支下向你的仓库推送修改,维护者都会得到通知。然而,对他的评论作出回应总是好的,甚至在你准备好修改时再增加一个回应,这样他/她就能再看一下。
- 你的PR会被拒绝;这种情况在心脏经纪人那里是很少见的。如果发生这种情况,不要气馁;要阅读并理解为什么维护者总是会在评论区提供反馈。并记住,如果你已经和他们联系过,按照建议进行工作,你就很少会出现这种情况。
从你在PR上点击创建的那一刻起,直到你收到反馈,有一种特殊的感觉,它是令人兴奋的,可怕的,也是令人紧张的。随着时间的推移,这种可怕的感觉可能会消失,但如果你像我一样,其他两种感觉会一直存在。
幸运的是,如果你想在创建PR方面得到一些练习,有一个很酷的项目会真正做到这一点。你可以提交他们的PR,所以你可以得到练习,而且他们完全很酷。
他们还提供了整个过程的步骤说明,所以请确保你去看看;这个回购叫做第一贡献。
总结
开源是一个让我着迷的话题,也许也是我写了这么多关于它的原因。在指南中,我们涵盖了进入开源的原因,开源的潜力,以及它对世界的影响。
我真的希望我和我的热情一样,你现在感觉到更多的准备来贡献和帮助改变世界。请记住,无论你的贡献有多大,你都会帮助把事情做得更好,当我们都在这样做的时候,就会有惊人的事情发生。
写这篇文章是一件非常有趣的事情;感谢您的阅读!