开始为开源做贡献

发布于:2020-12-24 16:05:33

0

61

0

开源 项目

取决于您正在从事的项目,对开源做出的贡献可能令人生畏和困惑。此外,大多数大型开源项目的学习曲线都很陡峭。但是,正如开源的广泛使用所证明的那样,即使您是新手,也有很多机会可以进入并蓬勃发展。

开源是指在许可下可供公众查看,使用,修改和分发的源代码。它通常是由其用户社区共同开发和维护的。一些著名的开源项目包括Django,Postgres,MongoDB,Vue,Go,Ruby,TypeScript,Git等。

尽管开源项目的重点是创建有价值的可访问的开源软件,但是个人贡献者可以从贡献中获得很多个人利益。您可以在维护技术技能的同时,帮助维护您使用的软件。在申请工作时,您可以将自己在开源软件上的工作作为技能证明。

通过与您使用的开源上的其他人进行协作,您将成为社区的一部分,在那里您可以练习自己的软技能,例如沟通,给予和接受反馈,情商等。这些社区还向您介绍了很多可以联系的人谁会反过来为您打开有价值的机会。

下面,我们将探讨一些可用于入侵开源的策略。出于说明目的(并且因为我已经在其中做出了贡献),我将使用Angular项目来说明如何为开源软件做出贡献。尽管大多数示例都是Angular项目的示例,但是所描述的所有这些策略都适用于许多开源项目。

为开源做贡献的方法

您可以通过多种方式参与开源。 作为初学者,您可以识别并修复项目中的错误。 例如,Angular项目接受指出错误的问题,甚至接受修复错误的请求。 在这些项目中,您可以建议,帮助设计和使用新功能。 例如,Angular接受有关大型功能的建议,并接受较小功能的请求。 较大的功能将需要更大的社区参与度,并且某些社区要求您在转移到功能开发之前必须赢得信誉修复漏洞。

您的贡献不必仅限于代码。 您可以通过对现有代码和API进行注释以添加项目的上下文和编写文档来为项目提供帮助。 例如,Angular在Github上有两个完整的项目,专门用于文档编制,您可以在此处和此处查看。

了解项目的运作方式

并非所有开源项目都以相同的方式运行。有些允许任何人的贡献。有些要求您努力获得贡献特权。有些人有多个人参与管理项目。其他人则由一个人负责,即所谓的人生仁慈独裁者。

贡献准则可帮助您了解如何参与项目。它将解释如何伸出手,提供用于沟通错误和建议功能的模板,列出维护人员所需的工作,项目目标等。一个令人惊讶的示例是Angular贡献指南,其中列出了各种新的有用信息。贡献者非常喜欢他们的提交消息准则,编码规则,提交准则等。

除了捐款指南之外,某些项目还将制定行为准则。它通常概述社区规则和行为期望。它旨在帮助您了解如何成为一个和able而专业的贡献者和社区成员。例如,Angular的行为准则很棒,列出了他们认为的非职业行为,对社区的责任以及在有人违反行为时如何联系。

大型项目可能具有治理策略和团队文档,这些文档概述了社区中的特定角色,团队,小组委员会,贡献工作流程,讨论的进行方式以及承诺的对象。这些文件对于理解社区的运作方式至关重要。例如,angular.io的“关于”页面列出了所有核心团队成员都是谁,他们的角色以及其他贡献者。在Github上,他们还有一个docs文件夹,其中包含有关贡献的政策。

即使在阅读完文档后,您可能仍然需要向社区中的活跃成员提问。尽管进行了研究,但您可能仍然对项目的某个方面感到困惑。要与其他贡献者进行交互,请加入Slack,IRC等社区交流工具,注册新闻通讯,并订阅他们的邮件列表。 Angular使用Gitter作为其社区沟通工具,并将有疑问/问题的贡献者引导到Stack Overflow,在这里他们可以使用angular标签获得帮助。与社区成员建立联系并与他们建立关系,因为这会使您接触到您可能不知道的项目方面。

掌握项目的技术方面及其组织方式对于做出符合项目标准的贡献至关重要。要了解项目的技术部分,请查阅项目README,Wiki,教程和文档。例如,Angular的文档解释了他们的Github流程,构建和测试,其编码标准,调试,PR审查等。再往前看,请查看合并的pull请求中过去的功能集成和错误修复,有关内容请参见其他贡献者,可以提供丰富的背景信息。随着项目的发展,请注意它,并经常关注问题,功能,讨论,请求请求和错误修复,以不断学习其工作原理。例如,贡献者可以遵循有关表单API的Angular功能请求示例的此示例,以更好地了解Angular表单的工作方式,包大小管理等。

开源项目有点像您可能在任何公司工作的项目。会有房屋编码风格,团队文化和完成工作的工作流程。不同之处在于,开源项目可以并且将有不同的团队来工作。

寻找工作项目

查找要处理的项目的一种方法是查找经常使用且喜欢的开源软件。是否有您经常使用并喜欢使用的工具,软件包,框架或语言?通过检查其许可来确定它是否是一个开源项目,以及该项目是否接受捐款并且是否处于活动状态。对已经使用的东西进行处理有助于您做出贡献,因为您已经非常熟悉它的工作原理并具有使用经验。另外,您可以解决困扰您的问题,也可以建议软件中所需的功能。如果要为项目贡献代码,请确保可以使用其编写的语言进行工作。

如果以上方法可能对您不起作用,请尝试使用Github浏览页面查找接受捐款或积极寻求帮助的项目。 Github根据您关注,加注和观看的人员和资源库,建议您可能喜欢的项目。查找项目的另一种方法是使用Github的搜索工具,方法是输入对初学者友好的贡献标签,例如“先发好人”,“先发错误”,“对初学者友好”,简单,低挂果,仅限初学者等。 。过滤搜索结果,以开放状态和您想要使用的语言返回问题。还有很多其他工具,平台和程序,您可以在其中找到开放源代码项目,我将在本文结尾列出。文章,以帮助您进行搜索。

要获得积极的贡献经验,请尽量避免对初学者怀有敌意且普遍存在问题的社区。例如,如果在完成研究后尝试提出合法问题时,您收到了不屑一顾和好斗的评论或侮辱,则最好远离。另一个需要注意的标志是社区内不专业行为的模式。一些开源软件项目因这种事情而声名狼藉。因此,在做出贡献之前先进行研究。

选择要研究的问题并做出贡献

项目可能会列出在任务,错误和问题跟踪器中需要完成的工作。例如,Angular使用Github的项目管理功能来概述和分配任务并跟踪其进度。如果一个项目有一个,请访问它。

根据经验,先尝试最简单和最小的贡献,然后再花最少的精力来建立信心和信誉,然后再尝试更努力。编写文档和修正错别字是一个不错的起点。查找使用前面提到的标记为初学者标记的问题。

选择任务后,认为可以完成,请进行研究。阅读与任务相关的文档,代码和讨论,以更好地了解该做什么。如果您在研究某项内容后仍然坚持使用,请与社区联系,寻求帮助,澄清或指导。但是,请确保您公开讨论与任务有关的问题,以便社区其他成员可以从中学到的知识中受益。例如,在Github上公开讨论一个问题,而在Slack上私下直接讨论该问题。一旦感觉到您对任务有足够的上下文并且知道如何执行任务,请编写一些代码并提交PR。 Github有一个很棒的清单,关于在为项目做出贡献之前要检查的内容,因此不会浪费您的精力。

提交工作

完成贡献工作后,请按照贡献准则将其提交。 有时,即使经过了合理的时间,您的提交也可能不会得到答复。 在这种情况下,请尊重地要求审查或与其他贡献者联系以寻求帮助。 可能需要进行审查后更改。 尝试尽快制作它们,以使您的贡献得到及时整合,并且不会过时或被遗忘。 如果您的贡献被拒绝,请寻求反馈以了解原因。 当审阅者提出问题,发表评论或提供反馈时,请做出回应并定期检查您的工作是否有任何更新。 像对待其他工作一样对待它,要专业,礼貌和尊重。

你在等什么?

开源贡献可以是一个了不起的学习经验。 它使您可以回馈并参与构建有价值的开源软件的社区。 它使您可以使自己使用的软件更好。 尽管开始可能很困难,但是一旦掌握了它,它就会带来巨大的收获。 您无需了解有关项目的所有知识即可做出贡献。 选择一个项目和一个社区,以支持新的参与者,寻找导师并做出自己的贡献。 您可能会遇到一些臭名昭著的社区。 远离它们,因为它们可能会使您完全脱离开源。