我们人类是社会性动物,而且非常聪明和先进,所以我们不需要阅读一篇关于如何参与开源的文章。 另一方面,猫在社交上有些笨拙,有时冷漠,有时又过于敏感,而且有点容易受惊。 当一只猫试图参与开源时,它通常表现得过于强烈,或者因不愉快的经历而受到惊吓,或者无法正确沟通。

这篇文章是为有兴趣参与开源的猫而准备的,但是因为猫不会阅读,你应该大声读给你的猫听,特别是如果你的猫对电脑表现出兴趣。
猫抓板和错误报告
如果你想在现实生活中完成某件事,通常的请愿流程是这样的:找到一个人,对着他们叫,抓挠沙发,把东西从架子上弄下来,总之就是制造麻烦,直到他们停止正在做的事情来满足你的要求。
在软件开发中,当试图让一个闭源应用程序改变一些对你不起作用的东西时,这些也是有效的策略。你在社交媒体上发帖,你在发布者的论坛上抱怨,你威胁说除非他们做你想做的事情,否则你将停止购买他们的产品。 你甚至不必坚持到底,因为发布者可能主要从企业账户中赚钱,不会回应你。
然而,在开源软件中,这个过程完全不同。
首先,你在项目使用的任何错误跟踪器上提交一个错误。 有些使用自己安装的正式错误跟踪器,如 Bugzilla 或 Mantis。 其他的则使用 GitLab 或 GitHub 中的问题跟踪器。

opensource.com
如果你已经为你的问题编写了一个解决方案,附上补丁。 就这样,你完成了!你刚刚成为了一名开源开发者,这对一只猫来说真是令人印象深刻。
如果你没有代码修复,跟踪你的错误的进度。 仅仅因为你提交了一个错误报告并不意味着项目的开发者会自动同意你对问题的评估,或者他们会突然找到时间来修复它,所以要有耐心并准备好沟通。 最重要的是,要诚实。 如果开发者说他们根据你的反馈更改了应用程序,并要求你测试更改,但你不知道如何安装更新,那就说出来。 这不是一场比赛,这是一个讨论论坛。 开发者可能没有时间一步步地指导你完成整个过程,但至少他们会知道不要依赖你来获得关于修复的即时反馈。
你刚刚成为了一名开源开发者,这对一只猫来说真是令人印象深刻。]重要的是要知道提交错误和提供反馈是一种重要且意义重大的贡献形式,因为坦率地说,这是一项艰苦的工作。 浏览错误跟踪器,注册帐户,跟踪未解决的问题,对不同的观点保持耐心; 这不是一件小事,但它是开发者的反馈和数据,并且非常受欢迎。 如果你这样做,你就是一个合法的、完全成熟的开源 QA(质量保证)贡献者。

也许你正在寻找一些更永久的东西,一个可以称之为家的地方。 如果你正在寻找一个真正能让你全心投入的项目,最好预先投入你的努力。
调查你的领地
如今,无论你是否正在寻找一个好的开源项目,找到它并不难。 随便看一眼 GitLab 或 GitHub 都能很快得到结果。
使用开源通常会提供参与开源的途径。 关注你使用的项目,你一定会发现他们需要的东西。 无论是推广、美术作品、维基或网站维护、文档或代码,总有一些事情可以做。
你可能使用了很多开源软件,而且你肯定可以在互联网上找到很多软件。 那么你应该贡献给哪个? 你如何决定?
研究你的目标
就像你研究蟋蟀、老鼠、其他猫和人一样,你也必须研究未来的开源项目。

有很多很棒的项目,每个项目都有令人兴奋的社区。 他们中的大多数都非常热情好客,他们对项目的热情具有感染力。
但是因为你只是一只猫,而且你一天中的大部分时间都在睡觉,所以你不能以贡献者的身份加入每一个项目。
通过经常访问邮件列表、错误报告和论坛来了解开源项目周围的社区。 了解关键人物,看看他们如何对待彼此和他们的访客,并自己决定他们的行为是否与你自己的行为一致。
从小礼物开始
作为第一批为应用程序设计和编写代码的人员之一,会有一种内在的熟悉感和信任感。 从项目一开始就参与其中的人自然会成为项目社区中值得信赖的成员,不仅因为他们投入了大量的时间和精力,还因为他们只是坚持参与了项目的各种困境。
你可能渴望将自己融入一个项目,但你必须表明你心中始终牢记其最大利益,并且你会坚持一段时间。

你对开源项目的第一次贡献可能是很小的和比较随意的。 在它的门阶上放一只死的(或大部分死的)老鼠或鸟对你来说可能是一个好的开始,因为你是一只猫,但更有用的是修复文档,进行小补丁,或者,如果你是一名训练有素的程序员,可以接手两年前被忽略的增强请求,而这些请求一直被忽略,因为还有更紧迫的事情要做。
一个小贡献不仅表明了帮助的意愿,还表明了你帮助的能力,这对任何项目来说都是最重要的。 对于每一个实际提交的贡献者来说,有五个人会走进 IRC 频道或问题跟踪器,说他们想提供帮助,但从未做过。
诀窍是
- 倾听需要什么。
- 宣布你打算做出改变。
- 做出改变。
- 提交你的改变。
重复几次,最终项目的参与者开始将你视为可靠的贡献者和社区的活跃成员。 通常没有入会仪式,所以如果你是一只薛定谔的猫,不要害怕明确地宣布自己是该项目的一部分。 了解社区的其他成员,并与你正在帮助维持的项目一起成长。
处理拒绝
有两种拒绝:一种是人为的,一种是软件的。
人为的拒绝就像变质的猫粮:远离它,否则会让你生病。 如果你仅仅因为个人原因而对某个项目有不好的经历,请退后一步,回顾你如何接近该项目以及你如何呈现你的贡献。 如果你觉得你做的一切都是正确的,但受到了不公平的对待,那就赶紧离开。 无论该项目多么重要或有影响力,都不值得忍受虐待。
另一方面,基于代码的拒绝发生得非常频繁,实际上是可以预料的。 尤其是在你最初的贡献中,你给项目的东西不一定是项目想要得到的可能性很高。 也许你的编码风格与现有代码不符。 也许你的文档修复的语气不合适。 也许你弄错了什么。 也许维护者不想承诺自己支持你的添加。 有很多因素会导致拒绝。这种拒绝并不意味着你没有做出贡献。 这只是意味着你的贡献没有被纳入主分支,但它仍然可以作为一种贡献。 谁知道呢? 也许你的贡献会被维护者重写并以某种方式添加进来,或者也许你的贡献会迫使人们关注一个原本被忽视的项目领域,或者也许它会在以后添加进来,一旦你证明你打算坚持支持你添加到代码库中的东西。
在概率游戏中,拒绝是一件好事。 以与接受合并分支相同的优雅来接受它,然后将注意力转移到你的下一个贡献上。 你应该擅长这类事情; 毕竟,你是一只猫,所以你总是能脚踏实地。
开源就像猫薄荷
一旦你开始贡献,下一步就是学习更多并再次贡献。开源最大的吸引力之一就是它没有上限;你可以不断学习新技巧,构建更好的东西,而且你永远不会耗尽可能性。就像猫薄荷一样。你会爱上它的。

本文于 2020 年 3 月更新。
6 条评论