如何为开源项目做贡献——入门指南
如何为开源项目做贡献——入门指南
如果你是一名开发者,你可能会遇到“开源”这个词。如果你曾想知道它的全部内容以及如何为其做贡献,那么你来对地方了。
并为开源世界做出了我的第一个贡献。 由于对我来说是第一次,我从一些对初学者友好的项目开始,然后慢慢提高。
而现在,如果你是新手,你可能想知道开源到底是什么? 如何开始? 你应该期待什么? 在本文中,我们将涵盖所有这些内容甚至更多。
为开源贡献力量,得到的回报就是能够学习到很多、受教很多、且能够锻炼任何你能够想到的经验。
为什么会有人为开源做贡献?这可能是很多人都不明白的地方,这里不妨列出一些!
巩固现有技能
无论是撰写代码、设计用户界面、图形设计、撰写文档、亦或是组织活动,只要你想做,你总能在开源项目中找到自己的位置。
遇见那些和你志趣相投之人
开源项目一般都会有一个和谐、热心的社区,以让大家团结一致。实际上,开源界经常发生这样的情形,很多人的深厚友谊都是通过共同参与开源所建立起来的,至于具体的方式,可能是在一次技术研讨会上相谈甚欢,也可能是一直在聊天室中探讨问题。
寻找导师,并且尝试帮助他人
和他人共同在一个共享的项目下工作,这意味着需要向他人解释清楚自己是如何做的,同理,也需要向他人求助,询问别人是如何做的。相互学习和彼此教学可以让每位参与者都能满载而归。
在公众间建立你的声誉(职业口碑)
根据开源的定义,你在开源下所有的工作都是公开的,这也就意味着开源项目是一个很好展示你实力的地方。
学习领导和管理的艺术
开源为实践领导力和管理技能提供了很好的机会,比如解决冲突、组织团队、工作的优先级排列。
鼓励作出改变,哪怕改变是很微小的
在开源的世界里,作出贡献的不一定非得是花了很长时间拥有大量经验的人。你是否遇到过浏览某些网站发现有拼写错误,希望有人能修改它?其实,在开源的项目中,你只需要做就可以了。没有那么多的顾忌,开源让人们在很舒服的状态做事,而这才是这个世界应有的体验。
什么是开源?
开源是指在许可证的许可下向公众提供可以查看、使用、修改和分发的源代码。
无论是个人、公司、小型企业、非营利组织还是政府机构,开源代码通常符合企业或个人的最大利益。
为开源项目做出贡献是一种学习、教授、分享和积累经验的有益方式。 你应该为开源项目做出贡献的原因有很多,例如:
- 改进你每天使用的软件
- 如果需要,可以找一位导师
- 学习新技能
- 分享你的技能
- 更深入地了解你正在使用的软件
- 建立声誉并帮助你发展你的事业
- 另外,它本身很有趣,会让你感觉很棒
你为开源项目做贡献的原因是什么? 回复这篇文章或通过 larymak 1 告诉我。
如何为开源做贡献
为开源项目做贡献并不一定意味着你必须为代码库做贡献。 你可以通过多种不同方式为开源做贡献,例如:
- 你可以在项目文档中添加描述以详细说明某一点
- 你可以针对特定的项目提供指南
- 你可以添加示例来展示代码的工作原理
- 你可以为项目编写教程
- 你可以为项目添加翻译
- 你可以回答有关项目的问题(比如在 Stack Overflow 或 Reddit 上)
- 你可以对其他贡献者提供建议
- 你可以修复错误并正确地安排项目的工作文件夹
所有包括但不限于这些方式都可以为开源项目做贡献。
为开源项目做贡献之前需要了解的内容
每个开源社区都是不同的。 每个社区都有不同的人,有着不同的角色和奖励。 他们每个人都有自己的职责和预期贡献。
一个典型的开源项目会有这些人:
- 作者 - 创建项目的人。 他们有权为其他成员分配角色以帮助维护项目。
- 所有者 - 所有者拥有项目的管理所有权(可以与作者为同一人)
- 维护者 - 这些人负责推动项目的愿景和目标。他们通常是对项目方向负责并致力于改进项目的人
- 贡献者 - 贡献者以一种或多种方式加入到项目中。他们遵循相同的代码审查流程,遵守相同的代码风格要求等等。
- 社区成员/用户 - 这些有价值的社区成员可以提供相关功能、错误报告等反馈。
所有开源项目都应该具备的重要元素
每个开源项目都应该有以下指南和信息:
- License - 如果一个项目没有开源许可证,那它就不是开源的。许可证有助于保护开源贡献者和用户。没有这种保护,企业和精明的开发者通常不会接触该项目。如果你想知道如何获得开源许可证,请单击 此处 以了解更多信息。
- README - 这是一本说明如何开始项目的手册。一个好的 README 应该包含潜在的贡献者想要了解的有关项目的所有不同内容。你可以阅读更多关于如何编写一个好的 README 文件 点击这里。
- How to Contribute - 这些指南帮助人们做出贡献并展示需要什么类型的贡献者(这个文件不是必须的)
- CODE_OF_CONDUCT - 这是一份文件,用于确定你对贡献者和参与者的行为方式的期望。采纳并遵守行为准则有助于为你的社区创造一个积极的环境。
要创建一个开源项目,你需要创建一个环境,可以让人们分享他们的挑战并进行深入讨论。这个可以通过以下工具实现:
- Issue Tracker(问题追踪器) - 人们在这里讨论与项目相关的问题
- Pull Requests(拉取请求) - 这是人们审查正在进行更改的地方
- Synchronous Chat Channel(同步聊天频道) - 这是专门供人们分享他们的想法并进行对话的地方(如 Slack、Discord 等)
如何找到你想要贡献的开源项目?
既然知道了开源项目如何运作,那么是时候找到一个可贡献的开源项目了。
贡献在各个层面都有效——不要过分思考你将如何去做,而是想想你已经使用过的一些项目,如何对它们进行改进提高。
研究表明,大约 30% 的贡献是文档、错别字修复甚至是翻译。
如果你是第一次贡献(每个人在某个时候都是这样),这儿有一些网址可以让你开始拥抱开源世界:
- Python Project Scripts
- Open Source Friday
- Hebatica
- Pinax
- First Timers Only
- Code Triage
- 24 Pull Requests
- Contributor Ninja
- First Contribution
在开源软件的世界中,问题会很快得到报告和修复。 所以,如果你想解决一个问题,一定要尽快解决它。
如何选择开源项目?
找到你想要贡献的项目后,让它符合以下标准,以确保它是一个不错的选择:
首先,你需要检查:
- 它有许可文件吗?
- 最新提交是什么时候完成的? 是最近的吗? (也就是说,项目是否在积极维护/工作?)
- 它有多少贡献?
- 人们多久提交一次?
如果你看到最近有很多活动,那很好,这意味着它有一个活跃的社区来维护它。
其次,你应该继续检查以下内容:
- 有多少未解决的问题?
- 维护者需要多长时间才能做出回应? 回应及时吗?
- 是否对某个问题进行了积极的讨论?
- 问题是否会定期关闭?
- 有多少开放的拉取请求?
- 最新的拉取请求最近多久合并? 是最近吗?
- 是否首先审查拉取请求? (他们应该是)
- 维护者是否感谢人们的贡献?
如果上述所有条件都满足你的需求,那就去做吧,开始为这些项目做贡献。
在进行开源项目之前需要考虑什么?
所以你迫不及待地要开始致力于自己的第一个开源项目了。让我们来了解一些可能会帮助你选择项目的方法。
项目使用什么编程语言?
任何应用程序背后最基本的技术都是它使用的编程语言。GitHub 上一些最流行的语言包括但不限于JavaScript、Python、Java、Ruby 和 PHP。
你的能力和兴趣也许会契合众多项目,所以选择一个你感觉舒服的项目即可。
项目类型
在你确定了你想要使用的语言后,你需要选择你喜欢的项目类型。只需概览一圈并选择一个你感兴趣的主题的项目即可。
项目一旦确定,你一定想要有一番作为。你将通过提交拉取请求来做到这一点。现在让我们来详细说说这个。
如何提交拉取请求(Pull Request)?
如果你处于这个阶段,已经找到了一个项目,你就可以继续了。让我们来谈谈如何实际提交拉取请求。
首先,什么是拉取请求? 这是你在 GitHub 中请求更新的方式,也是你将代码合并到另一个分支之前让某人检查你的代码的方式。
提交 PR 的步骤
- Fork 存储库
在右上角,你将看到“fork”一词。 单击它,将在你的帐户中创建同一个项目的副本。 URL 将更改为:
https://github.com/<YourUserName>/projectname
- 将其 Clone 到你的本地
在你的电脑上,如果安装了 Git,请打开 CMD 并运行此命令。 如果你还没有 Git,请参阅 此处,它将向你展示如何开始使用 Git。 然后继续执行以下步骤:
git clone https://github.com/<YourUserName>/<projectname>
这会在你的本地电脑上创建项目的副本。现在你已经克隆了存储库,我们需要做两件事:
首先,你需要创建一个分支。切换到你电脑上的存储库目录(如果你还没切换的话):你可以通过以下方式执行此操作:
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 上的存储库并刷新页面,你将看到“Compare and pull request”按钮。 单击该按钮。
很快,维护者会将你的所有更改合并到该项目的主分支中(除非他们需要你的更改)。 合并更改后,你将收到一封通知电子邮件。
对其他存储库的拉取请求类似于“Push”。 但是,它允许做一些事情:
首先,它允许你为其他存储库做贡献,而无需管理权限来对存储库进行更改。
其次,它允许其他人查看你的更改并提出更正、添加、编辑等建议。
第三,它让管理员可以控制添加到他们项目存储库中的内容。
在完成第一个拉取请求后,下一步做什么?
恭喜你! 刚刚完成了作为开源贡献者经常遇到的标准工作流程!fork -> clone -> edit -> pull request
现在,你可以继续寻找其他项目并做出更多的贡献。 并且一定要留意Digital Ocean举办的开源月,这样你就可以参加Hacktoberfest并有机会赢取一些很有意思的东西。
为开源做贡献的好处
既然你已经了解了如何为开源做出贡献,那么做贡献有好处有什么呢?
- 为开源项目做贡献的人比仅仅使用该技术的人更深入地了解该技术
- 你可以根据在现实世界中有效和无效的经验,专注于添加和利用对企业有益的功能
- 它可以建立你的士气和声誉。 为开源项目做贡献的人得到其他社区成员的见解和经验
- 对开源的贡献可以清晰地了解一个项目的未来
- 如果你使用 GitHub ,你在该平台上做的很大一部分事情都是公开的。利用这一点来发挥你的优势,在贡献和与其他贡献者交流时,始终做到最好。因为你永远不知道谁在看着你,你的下一个雇主可能就在那里😊
为什么你应该为开源做贡献?
作为一名开发者,以下我认为你应该为开源做出贡献的原因:
- 它可以帮助你编写更清晰的代码
- 它可以帮助社区和同行了解你。这种认可可以为你的职业生涯带来很多机会
- 它可以帮助你了解有关项目的更多信息
- 它提高了你的编码技能