如何为开源项目做出贡献——初学者指南

2021-08-25 15:17:08 浏览数 (3602)

如果您是一名开发人员,您可能会遇到“开源”这个词。如果您曾经想知道它的全部内容以及如何做出贡献,那么您来对地方了。在 2020 年 Hacktoberfest 期间,我抛开了我对如何以及贡献什么的所有恐惧,并为开源世界做出了我的第一个贡献。由于这是我第一次,我从一些初学者友好的项目开始,然后慢慢变得更高级。现在,如果您是一名新开发人员,您可能想知道开源到底是什么?如何开始?你应该期待什么?好吧,在本文中,我们将涵盖所有这些以及更多内容。

什么是开源?

开源是指在许可许可下向公众提供以查看、使用、修改和分发的源代码。

开源代码通常符合公司或个人的最大利益,无论他们是个人、公司、小型企业、非营利组织还是政府机构。

为开源项目做出贡献是一种学习、教授、分享和积累经验的有益方式。您应该为开源项目做出贡献的原因有很多,例如:

  • 改进您每天依赖的软件
  • 如果您需要,请找一位导师
  • 学习新技能
  • 分享你的技能
  • 更深入地了解您正在使用的软件
  • 建立您的声誉并帮助您发展事业
  • 此外,它很有趣,让您满意

如何为开源做贡献

为开源项目做出贡献并不一定意味着您必须为代码库做出贡献。您可以通过多种不同的方式为开源做出贡献,例如:

  • 您可以在项目文档中添加描述以详细说明某一点
  • 您可以针对特定项目提供指导
  • 您可以添加示例来展示代码的工作原理
  • 您可以为项目编写教程
  • 您可以为项目添加翻译
  • 您可以回答有关项目的问题(例如在 Stack Overflow 或 Reddit 上)
  • 您可以提议指导另一位贡献者
  • 您可以修复拼写错误并正确排列项目的工作文件夹

所有这些以及更多方式都可以为开源项目做出贡献。

在为开源项目做出贡献之前需要了解什么

每个开源社区都是不同的。每个社区都有不同的人,他们提供不同的角色和奖励。他们每个人都有自己的规则和贡献的期望。

一个典型的开源项目会有这些人:

  • 作者- 这是创建项目的人。他们有权为其他成员分配新角色以帮助维护项目。
  • 所有者-所有者拥有项目的管理所有权(并且可以与作者为同一人)
  • 维护者- 这些人负责推动项目的愿景和目标。他们通常是对项目方向负责并致力于改进项目的人
  • 贡献者- 贡献者以一种或另一种方式添加到项目中。他们遵循相同的代码审查流程,遵守相同的代码风格要求,等等。
  • 社区成员/用户- 这些有价值的社区成员可以提供有关功能、错误报告等的反馈。

所有开源项目都应该具备的重要元素

每个开源项目都应该有以下指南和信息:

  • 许可证- 如果一个项目没有开源许可证,那么它就不是开源的。该许可证有助于保护贡献者和用户。没有这种保护,企业和精明的开发人员通常不会接触项目。如果您想知道如何获得,请单击此处阅读更多信息。
  • README - 这是一本说明如何开始项目的手册。一个好的 README 应该包含潜在贡献者想要了解的有关项目的所有不同内容。您可以在此处阅读有关如何编写好的 README 文件的更多信息。
  • 如何贡献 - 这些指南帮助人们贡献并展示需要什么类型的贡献者(此文件不是必须的)
  • CODE_OF_CONDUCT - 行为准则是​​一份文件,用于确定您对贡献者和参与者的行为方式的期望。采用和执行行为准则有助于为您的社区创造一个积极的环境。

要创建开源项目,您需要创建一个环境,让人们可以分享他们的挑战并进行深入讨论。这可以通过以下工具实现:

  • 问题跟踪器 - 这是人们讨论与项目相关的问题的地方
  • 拉取请求 - 这是人们审查正在进行的更改的地方
  • 同步聊天频道 - 这是专门供人们分享他们的想法并进行对话(如 Slack、Discord 等)

如何找到要参与的项目

既然您已经了解了开源项目的工作原理,那么是时候寻找可以贡献的项目了。

贡献在各个层面都有效——不要过度思考你将如何去做。而是想想您已经使用的一些项目,以及如何对它们进行更改或改进。

研究表明,大约 30% 的临时贡献是文档、错别字修复甚至翻译。

如果你是第一次贡献者——每个人在某个时候都是这样——这里有一些链接可以让你开始进入开源世界:

在开源软件的世界中,问题会很快得到报告和修复。所以,如果你想解决一个问题,一定要尽快尝试解决它。

如何选择开源项目

找到您想要帮助的项目后,请确保它符合以下标准,以确保它是一个不错的候选人:

首先,您必须检查:

  • 它有许可证文件吗?
  • 最近一次提交是什么时候完成的?是最近的吗?(也就是说,项目是否积极维护/工作?)
  • 它有多少贡献?
  • 人们多久提交一次?

如果您看到很多最近的活动,那很好——这意味着它有一个活跃的社区来维护它。

现在您应该继续检查以下内容:

  • 有多少未解决的问题?
  • 维护者需要多长时间做出回应?他们及时吗?
  • 是否对某个问题进行了积极的讨论?
  • 问题是否定期关闭?
  • 有多少开放的拉取请求?
  • 最近多久合并最新的拉取请求?最近?
  • 拉取请求是否首先被审查?(他们应该是。)
  • 维护者是否感谢人们的贡献?

如果上述所有条件都满足您的需求,那么就去做吧,并开始为这些项目做出贡献。

开源之前需要考虑什么

好的,所以您迫不及待地开始为您的第一个操作系统项目做出贡献。让我们通过一些提示来帮助您选择要处理的内容。

项目使用什么编程语言?

任何应用程序背后最基本的技术都是它使用的编程语言。GitHub 上一些最流行的语言是 JavaScript、Python、Java、Ruby 和 PHP——但还有更多。

有许多项目可能适合您的技能和兴趣。所以只要找到一个你觉得工作起来很舒服的。

项目类型

在您选择了您想要使用的语言后,您需要选择您喜欢的项目类型。只需环顾四周并选择一个您感兴趣的主题的项目。

一旦你找到了一个项目,你就会想要真正做出贡献。你将通过提交拉取请求来做到这一点。让我们现在谈谈。

如何提交拉取请求

如果你处于这个阶段,你已经找到了一个项目,你可以开始了。那么让我们来谈谈如何实际提交拉取请求。

首先,什么是拉取请求?这是您在 GitHub 中请求更新的方式,也是您在将代码合并到另一个分支之前让某人检查您的代码的方式

提交 PR 的步骤

  • Fork the repository在右上角,您将看到术语“fork”。您需要做的就是单击它,您将在您的帐户中创建同一个项目的副本。URL 将更改为:
https://github.com/<YourUserName>/projectname
  • 将它克隆到您的本地机器在您的计算机上,如果您安装了 Git,请打开 CMD 并运行此命令。如果您还没有 Git,请参阅此处,它将向您展示如何开始使用 Git。然后继续执行以下步骤:
git clone https://github.com/<YourUserName>/<projectname>

这将在您的本地计算机上创建项目的副本。现在您已经克隆了 repo,我们需要做两件事:

首先,您需要创建一个分支。更改到您计算机上的存储库目录(如果您还没有):您可以通过以下方式执行此操作:

cd project folder name

现在使用 git checkout 命令创建一个分支:

git checkout -b your-new-branch-name

例如:

git checkout -b lary-mak-blog

接下来,您需要进行必要的更改并提交这些更改。在进行更改并添加新文件之后,是时候将这些更改添加到您创建的分支中了。

要查看您所做的所有更改,请运行以下git status命令:

git status

这会显示您最近所做的所有更改。现在要添加它们,请使用以下git add *命令:

git add *

现在使用以下git commit命令提交这些更改:

git commit -m "<initial commit> "
  • 将更改推送到 GitHub您可以使用 `git push 命令轻松完成此操作:
git push origin <add-your-branch-name>

替换<add-your-branch-name>为您之前创建的分支的名称。

  • 提交您的更改以供审核如果您转到 GitHub 上的存储库并刷新页面,您将看到一个比较和拉取请求按钮。单击该按钮。

很快,维护者会将您的所有更改合并到该项目的主分支中(除非他们需要您的更改)。合并更改后,您将收到一封通知电子邮件。

对另一个仓库的拉取请求类似于“推送”。但是,它允许做一些事情:

首先,它允许您为另一个存储库做出贡献,而无需管理权限来对存储库进行更改。

其次,它允许其他人查看您的更改并提出更正、添加、编辑等建议。

第三,它让仓库管理员可以控制添加到他们项目仓库中的内容。

在你的第一个拉取请求之后下一步是什么?

恭喜!您刚刚完成了作为贡献者经常遇到的标准 fork -> 克隆 -> 编辑 -> 拉取请求工作流程!

现在找到一个项目并做出更多贡献。一定要留意Digital Ocean举办的开源月,这样你就可以参加Hacktoberfest 并有机会赢取一些很酷的东西。

为开源做贡献的好处

既然您已经了解了如何为操作系统做出贡献,那么贡献的一些好处是什么?

  • 为开源项目做出贡献的人可以比仅仅使用该技术更深入地了解该技术
  • 您可以根据在现实世界中有效和无效的经验,专注于添加和利用有益于企业的功能。
  • 它可以建立你的士气和声誉。为开源项目做出贡献的人可以获得其他社区成员的见解和经验。
  • 为开源做出贡献可以清晰地了解项目的未来
  • 如果您在 GitHub 上,那么您在该平台上所做的大部分事情都是公开的。通过在贡献和与其他贡献者沟通时始终尽最大努力来利用这一点。你永远不知道谁在找,你的下一个雇主可能在那里

为什么你应该为开源做贡献

作为开发人员,这就是为什么我认为您应该为开源做出贡献的原因:

  • 它可以帮助您编写更清晰的代码
  • 它可以帮助社区和您的同龄人了解您。这种认可可以为您的职业生涯带来很多机会。
  • 它可以帮助您了解有关项目的更多信息
  • 它提高了您的编码技能

有关更多信息,请阅读w3cschool后续文章。