开源入门开发者指南

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

Opensource.com

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

明智地选择

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

设置您的开发环境

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

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

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

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

进入循环

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

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

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

取得联系

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

您也可以通过电子邮件发送给维护者或开发人员之一,询问有关如何参与的提示。再次,解释您尝试做的事情,但保持简短和礼貌。请记住,他们是在业余时间做这件事,并且可能很忙。

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

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

提交补丁

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

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

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

奖励

为开源做贡献会带来难以置信的回报。您会遇到许多志同道合的人,并在沿途结交许多朋友。您的代码可能会在提交后的几个月内在数百万台计算机上运行并产生影响。这可能需要付出很多努力,尤其是当您刚开始时,但这绝对是值得的。只需选择一个项目,然后开始成为一名开源开发人员!

初学者入门
开源

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

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

3 条评论

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

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

嗨 Eudris,

谢谢您的美言!

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

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

回复 作者 Eudris Cabrera

再次感谢您的建议。

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

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

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

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.