开源入门开发者指南

还没有读者喜欢这个。
Get started with open source, orange flames

Opensource.com

想要为开源项目做贡献,但不知道从哪里开始?在一个不熟悉的代码库中找到要修复的第一个问题似乎非常困难,如果代码库有数百万行代码,则更是如此,但通常比看起来容易得多。本文应该会为您提供一些关于如何入门的提示和想法。

明智地选择

开发者出于各种原因为开源项目做贡献。有些人想修复错误或添加缺失的功能,而另一些人则希望获得经验或有机会使用有趣的技术。无论您的理由是什么,请确保选择您关心并且自己使用的项目。您最终可能会花费大量时间在上面,与项目建立联系将有助于您保持动力。

设置您的开发环境

在您可以为项目贡献任何代码之前,您需要能够在您的计算机上编译、测试和调试它。设置开发环境也是熟悉代码库的良好第一步。

克隆项目的存储库,看看如何做到这一点。通常,项目的“README”文件中会有具体说明。安装所有工具和依赖项并配置您的系统。如果有自动化测试,请确保您可以运行它们。

对于较小的项目,这可能非常简单。如果您处理的是解释型语言,您甚至可能不需要做任何事情。另一方面,如果您是第一次编译 Linux 内核、GTK 或类似大小的应用程序,则可能需要一段时间。

掌握构建系统非常重要。您将能够试验代码,更改代码,并查看会发生什么。这也将使您更容易理解人们在说什么。

加入循环

加入邮件列表,访问 IRC 频道,查看错误跟踪器,并阅读项目 Wiki。开源项目背后的团队通过多种方式进行沟通。在开发者所在的地方。如果您不想参与,则无需亲自参与,只需看看发生了什么。

如果您自己是应用程序的用户,并且如果您已经设置了开发环境并尝试编译它,那么沟通很可能会更有意义。

加入大型项目的邮件列表每天可能会给您的收件箱带来数十甚至数百封电子邮件。其中许多将是补丁或毫无意义。不要担心,当然也不要觉得有义务全部阅读。观察开发人员的工作方式,您将慢慢开始弄清楚这一切。

保持联系

当您一直在阅读邮件列表,关注错误跟踪器一段时间,但仍然没有找到任何工作要做时,不要害怕提问。首先尝试 IRC 频道——解释说您一直在试验该项目,并且正在寻找一些事情要做。如果项目页面指定了与他们沟通的首选方式,请尝试该方式。

您也可以通过电子邮件发送给维护者或开发者之一,询问如何参与的指导。同样,解释您尝试做的事情,但要简短而礼貌。请记住,他们是在业余时间做这件事,并且可能很忙。

请注意不要将这些初学者问题发送到项目邮件列表或论坛。您的电子邮件可能会发送给成千上万的订阅者,他们可能只期望在那里进行技术讨论。确保一般性问题是受欢迎的。

在您开始添加重要功能或进行重大重构之前,请务必先询问他人。您的更改可能与作者的计划背道而驰并被拒绝。并非所有维护者都热衷于接受新贡献者的大量更改集。首先赢得他们的信任。

提交补丁

这里的一般规则是:如果您希望您的代码包含在上游,请尽可能让维护者更容易做到这一点。不要忽略补丁提交指南,并遵循首选的代码格式和命名约定。如果有单元测试,请运行它们并修复您破坏的所有测试。如果您要添加新代码,也请为其添加测试覆盖率。

如果收到的第一个代码审查不完全是积极的,请不要气馁。抓住机会从审查员的异议中学习,更改您的代码,然后再次提交。这不一定意味着您错得离谱,只是维护者有不同的做事方式,并且正在努力保持代码库的一致性。

如果您的更改最终被拒绝,无论原因是什么,都不要放在心上,尝试其他方法。考虑先与维护者交谈,以便您了解他们想要什么。如果您的想法差异很大,那么转向另一个项目可能会更容易。项目有很多,您肯定会找到一个适合您的项目。

奖励

为开源做贡献可能非常有意义。您将结识许多志同道合的人,并在这一过程中结交许多朋友。您的代码可能会在提交后的几个月内在数百万台计算机上运行并产生影响。这可能需要大量辛勤工作,尤其是在您刚开始时,但这非常值得。只需选择一个项目并开始成为开源开发者!

初学者入门
开源

关于如何开始使用开源的文章集合。

标签
User profile image.
Radek 是一位软件工程师、作家,也是 Writing Analytics 的创始人,Writing Analytics 是一款旨在帮助作家创建可持续写作习惯的编辑器和写作跟踪器。他喜欢编程、读书和写作。

3 条评论

给开源初学者的好建议。感谢您与社区分享您的经验。

如何推广开源项目或引起社区的关注?
任何想法和建议将不胜感激!

嗨 Eudris,

谢谢您的好评!

如果您想获得更多用户,我的策略可能是通过文章和教程在不同的地方展示该项目的功能。我会专注于它为人们解决什么问题以及它如何提供帮助。这个想法是说服人们值得花时间学习使用它。可能值得花一些时间将您的程序打包到主要的 Linux 发行版中,以便人们更容易获得它。

如果您正在寻找贡献者,一个好的起点是现有用户。这在很大程度上取决于它是什么类型的项目,但是如果有些用户喜欢使用该项目,那么他们既有能力也有兴趣成为贡献者。没有什么比好的文档和参与指南更好的了。我会专注于让您的项目更容易设置开发环境 - 有一些工具可以帮助您做到这一点(DevAssistant,repo)。有些人甚至提供了预配置的 VM 映像。尽可能让人们更容易入门。如果您坚持下去,最终会有人加入。

回复 ,作者:Eudris Cabrera

再次感谢您的建议。

这里有人使用 Asterisk (PBX) 吗?

我想邀请大家看看 http://astivetoolkit.org
一个工具包和服务器,用于在 Asterisk 中使用 Java 构建语音应用程序。

帮助 Astive 变得更好,在社区给我们一些反馈,以便我们能够做出更好的 Astive。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.