标签 贡献 下的文章

这是许多事情的第一步

 title=

有一个普遍的误解,那就是对开源做出贡献是一件很难的事。你可能会想,“有时我甚至不能理解我自己的代码;那我怎么可能理解别人的?”

放轻松。直到去年,我都以为是这样。阅读和理解他人的代码,然后在他们的基础上写上你自己的代码,这是一件令人气馁的任务;但如果有合适的资源,这不像你想象的那么糟。

第一步要做的是选择一个项目。这个决定是可能是一个菜鸟转变成一个老练的开源贡献者的关键一步。

许多对开源感兴趣的业余程序员都被建议从 Git 入手,但这并不是最好的开始方式。Git 是由许多有着多年软件开发经验的超级极客维护的。它是寻找可以做贡献的开源项目的好地方,但对新手并不友好。大多数对 Git 做出贡献的开发者都有足够的经验,他们不需要参考各类资源或文档。在这篇文章里,我将提供一个对新手友好的特性的列表,并且给出一些建议,希望可以使你更轻松地对开源做出贡献。

理解产品

在开始贡献之前,你需要理解项目是怎么工作的。为了理解这一点,你需要自己来尝试。如果你发现这个产品很有趣并且有用,它就值得你来做贡献。

初学者常常选择参与贡献那些他们没有使用过的软件。他们会失望,并且最终放弃贡献。如果你没有用过这个软件,你不会理解它是怎么工作的。如果你不理解它是怎么工作的,你怎么能解决 bug 或添加新特性呢?

要记住:尝试它,才能改变它。

确认产品的状况

这个项目有多活跃?

如果你向一个暂停维护的项目提交一个 拉取请求 pull request ,你的请求可能永远不会被讨论或合并。找找那些活跃的项目,这样你的代码可以得到即时的反馈,你的贡献也就不会被浪费。

这里介绍了怎么确认一个项目是否还是活跃的:

  • 贡献者数量: 一个增加的贡献者数量表明开发者社区乐于接受新的贡献者。
  • 提交 commit 频率: 查看最近的提交时间。如果是一周之内,甚至是一两个月内,这个项目应该是定期维护的。
  • 维护者数量: 维护者的数量越多,你越可能得到指导。
  • 聊天室或 IRC 活跃度: 一个繁忙的聊天室意味着你的问题可以更快得到回复。

新手资源

Coala 是一个开源项目的例子。它有自己的教程和文档,让你可以使用它(每一个类和方法)的 API。这个网站还设计了一个有吸引力的界面,让你有阅读的兴趣。

文档: 不管哪种水平的开发者都需要可靠的、被很好地维护的文档,来理解项目的细节。找找在 GitHub(或者放在其它位置)或者类似于 Read the Docs 之类的独立站点上提供了完善文档的项目,这样可以帮助你深入了解代码。

 title=

教程: 教程会给新手解释如何在项目里添加特性 (然而,你不是在每个项目中都能找到它)。例如,Coala 提供了 小熊编写指南 (进行代码分析的 代码格式化 linting 工具的 Python 包装器)。

 title=

分类的 讨论点 issue 对刚刚想明白如何选择第一个项目的初学者来说,选择一个讨论点是一个更加困难的任务。标签被设为“难度/低”、“难度/新手”、“利于初学者”,以及“ 触手可及 low-hanging fruit ”都表明是对新手友好的。

 title=

其他因素

 title=

  • 维护者对新的贡献者的态度: 从我的经验来看,大部分开源贡献者都很乐于帮助他们项目里的新手。然而,当你问问题时,你也有可能遇到一些不太友好的人(甚至可能有点粗鲁)。不要因为这些人失去信心。他们只是因为在比他们经验更丰富的人那儿得不到发泄的机会而已。还有很多其他人愿意提供帮助。
  • 审阅过程/机制: 你的拉取请求将经历几遍你的同伴和有经验的开发者的查看和更改——这就是你学习软件开发最主要的方式。一个具有严格审阅过程的项目使您在编写生产级代码的过程中成长。
  • 一个稳健的 持续集成 continuous integration 管道: 开源项目会向新手们介绍持续集成和部署服务。一个稳健的 CI 管道将帮助你学习阅读和理解 CI 日志。它也将带给你处理失败的测试用例和代码覆盖率问题的经验。
  • 参加编程项目(例如 Google Summer Of Code): 参加组织证明了你乐于对一个项目的长期发展做贡献。他们也会给新手提供一个机会来获得现实世界中的开发经验,从而获得报酬。大多数参加这些项目的组织都欢迎新人加入。

7 对新手友好的组织

关于作者

Palash Nigam - 我是一个印度计算机科学专业本科生,十分乐于参与开源软件的开发,我在 GitHub 上花费了大部分的时间。我现在的兴趣包括 web 后端开发,区块链,和 All things python。


via: https://opensource.com/article/18/4/get-started-open-source-project

作者:Palash Nigam 译者:lonaparte 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

IBM 工程师 Phil Estes 分享了他的 Linux 爱好如何使他成为了一位开源领袖、贡献者和维护者。

从很早很早以前起,我就一直使用开源软件。那个时候,没有所谓的社交媒体。没有火狐,没有谷歌浏览器(甚至连谷歌也没有),没有亚马逊,甚至几乎没有互联网。事实上,那个时候最热门的是最新的 Linux 2.0 内核。当时的技术挑战是什么?嗯,是 Linux 发行版本中旧的 a.out 格式被 ELF 格式代替,导致升级一些 Linux 的安装可能有些棘手。

我如何将我自己对这个初出茅庐的年轻操作系统的兴趣转变为开源事业是一个有趣的故事。

Linux 为乐趣为生,而非利益

1994 年我大学毕业时,计算机实验室是 UNIX 系统的小型网络;如果你幸运的话,它们会连接到这个叫做互联网的新东西上。我知道这难以置信!(那时,)“Web”(就是所知道的那个)大多是手写的 HTML,cgi-bin 目录是启用动态 Web 交互的一个新平台。我们许多人对这些新技术感到兴奋,我们还自学了 shell 脚本、Perl、HTML,以及所有我们在父母的 Windows 3.1 PC 上从没有见过的简短的 UNIX 命令。

毕业后,我加入 IBM,工作在一个不能访问 UNIX 系统的 PC 操作系统上,不久,我的大学切断了我通往工程实验室的远程通道。我该如何继续通过 Pine 使用 vils 读我的电子邮件的呢?我一直听说开源 Linux,但我还没有时间去研究它。

1996 年,我在德克萨斯大学奥斯丁分校开始读硕士学位。我知道这将涉及编程和写论文,不知道还有什么,但我不想使用专有的编辑器,编译器或者文字处理器。我想要的是我的 UNIX 体验!

所以我拿了一个旧电脑,找到了一个 Linux 发行版本 Slackware 3.0,在我的 IBM 办公室下载了一张又一张的软盘。可以说我在第一次安装 Linux 后就没有回过头了。在最初的那些日子里,我学习了很多关于 Makefile 和 make 系统、构建软件、补丁还有源码控制的知识。虽然我开始使用 Linux 只是为了兴趣和个人知识,但它最终改变了我的职业生涯。

虽然我是一个愉快的 Linux 用户,但我认为开源开发仍然是其他人的工作;我觉得在线邮件列表都是神秘的 UNIX 极客的。我很感激像 Linux HOWTO 这样的项目,它们在我尝试添加软件包、升级 Linux 版本,或者安装新硬件和新 PC 的设备驱动程序撞得鼻青脸肿时帮助了我。但是要处理源代码并进行修改或提交到上游……那是别人的事,不是我。

Linux 如何成为我的工作

1999 年,我终于有理由把我对 Linux 的个人兴趣与我在 IBM 的日常工作结合起来了。我接了一个研究项目,将 IBM 的 Java 虚拟机(JVM)移植到 Linux 上。为了确保我们在法律上是安全的,IBM 购买了一个塑封的盒装的 Red Hat Linux 6.1 副本来完成这项工作。在 IBM 东京研究实验室工作时,为了编写我们的 JVM 即时编译器(JIT),参考了 AIX JVM 源代码和 Windows 及 OS/2 的 JVM 源代码,我们在几周内就有了一个可以工作在 Linux 上的 JVM,击败了 SUN 公司官方宣告花了几个月才把 Java 移植到 Linux。既然我在 Linux 平台上做得了开发,我就更喜欢它了。

到 2000 年,IBM 使用 Linux 的频率迅速增加。由于 Dan Frye 的远见和坚持,IBM 在 Linux 上下了“一亿美元的赌注”,在 1999 年创建了 Linux 技术中心(LTC)。在 LTC 里面有内核开发者、开源贡献者、IBM 硬件设备的驱动程序编写者,以及各种各样的针对 Linux 的开源工作。比起留在与 LTC 联系不大的部门,我更想要成为这个令人兴奋的 IBM 新天地的一份子。

从 2003 年到 2013 年我深度参与了 IBM 的 Linux 战略和 Linux 发行版(在 IBM 内部)的使用,最终组成了一个团队成为大约 60 个产品的信息交换所,Linux 的使用涉及了 IBM 每个部门。我参与了收购,期望每个设备、管理系统和虚拟机或者基于物理设备的中间件都能运行 Linux。我开始熟悉 Linux 发行版的构建,包括打包、选择上游来源、开发发行版维护的补丁集、做定制,并通过我们的发行版合作伙伴提供支持。

由于我们的下游供应商,我很少提交补丁到上游,但我通过配合 Ulrich Drepper (将一个小补丁提交到 glibc)和改变时区数据库的工作贡献了自己的力量(Arthur David Olson 在 NIH 的 FTP 站点维护它的时候接受了这个改变)。但我仍然没有把开源项目的正式贡献者的工作来当做我的工作的一部分。是该改变这种情况的时候了。

在 2013 年末,我加入了 IBM 在开源社区的云组织,并正在寻找一个上游社区参与进来。我会在 Cloud Foundry 工作,还是会加入 IBM 为 OpenStack 贡献的大组中呢?都不是,因为在 2014 年 Docker 席卷了全球,IBM 要我们几个参与到这个热门的新技术。我在接下来的几个月里,经历了许多的第一次:使用 GitHub,比起只是 git clone 学习了关于 Git 的更多知识,做过 Pull Request 的审查,用 Go 语言写代码,等等。在接下来的一年中,我在 Docker 引擎项目上成为一个维护者,为 Dockr 创造下一版的镜像规范(支持多个架构),并在一个关于容器技术的会议上出席和讲话。

如今的我

一晃几年过去,我已经成为了包括 CNCF 的 containerd 项目在内的开源项目的维护者。我还创建了项目(如 manifest-toolbucketbench)。我也通过 OCI 参与了开源治理,我现在是技术监督委员会的成员;而在Moby 项目,我是技术指导委员会的成员。我乐于在世界各地的会议、沙龙、IBM 内部发表关于开源的演讲。

开源现在是我在 IBM 职业生涯的一部分。我与工程师、开发人员和行业领袖的联系可能比我在 IBM 内认识的人的联系还要多。虽然开源与专有开发团队和供应商合作伙伴有许多相同的挑战,但据我的经验,开源与全球各地的人们的关系和联系远远超过困难。随着不同的意见、观点和经验的不断优化,可以对软件和涉及的在其中的人产生一种不断学习和改进的文化。

这个旅程 —— 从我第一次使用 Linux 到今天成为一个领袖、贡献者,和现在云原生开源世界的维护者 —— 我获得了极大的收获。我期待着与全球各地的人们长久的进行开源协作和互动。


via: https://opensource.com/article/18/2/my-open-source-story-phil-estes

作者:Phil Estes 译者:ranchong 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在忙碌的生活中抽出时间回馈给你关心的项目。

 title=

人们不给开源做贡献(或不能做更多贡献)的最常见的原因之一是缺乏时间。人艰不拆,有这么多的优先的事情争夺你有限的注意力。那么,如何才能在忙碌的生活中为你关心的开源项目抽出时间呢?

为了充分披露,我需要提醒你,我延误了把这篇文章给编辑的时间,因为我抽不出时间写它,所以是否接受我的建议,请自行承担风险。

找出你所关心的

贡献的第一步是弄清楚你正在做些什么。你有一个你自己的为之努力的项目吗?有没有一个你想要帮助的具体项目?或者你只是想做某个事情?弄清楚你正在做的事情将帮助你决定你的生活中的优先事项。

找出其他的方法贡献

编写新功能可能需要数小时的设计、编码和测试。这对于那种只有几分钟时间就得离开,然后再从原来的地方重新开始的情况下并不容易。如果你没有办法进行长于 30 分钟的无中断工作,当你试着完成一个大的任务时,你或许会感到沮丧。

但还有或许可以满足你的需求的其它贡献方式,可以让你利用起来空闲的时间。其中一些可以通过智能手机快速完成,这意味着人们可以避免在通勤上浪费时间,并将其用于开源贡献。以下是可以在小块时间中完成的一些事情列表:

  • Bug 分类: 所有的 bug 报告都有必要的信息来诊断和解决它们么?它们是否妥善提交(给出正确的范围,正确的严重程度等)了么?
  • 邮件列表支持: 用户或其他贡献者在邮件列表中提出了问题?也许你可以帮忙。
  • 文档修补: 文档经常(但不总是)可以比代码用更小块的时间来处理。也许有几个地方你可以补充一下,或者也许是时候浏览一下文档并确保它们仍然准确了。
  • 营销: 在社交媒体上谈论你的项目或者社区。写一篇快速入门博文。在新闻聚合里投票和评论。

与你的老板交谈

你可能会认为在上班时间里你不能在开源项目上工作,但是你有问过么? 特别是如果这个项目以某种方式与你的日常工作相关,那你或许可以和你的老板谈谈,让你可在工作时做出贡献。请注意,这可能存在一些知识产权问题(例如,谁拥有你在工作时间内提供的代码的权利),因此首先做一下研究并以书面形式获得授权。

设置最后期限

我所学到的最佳时间管理建议可以归纳为两个规则:

  1. 如果要完成,它必须有一个截止日期
  2. 可以更改最后期限

这篇文章有一个最后期限。它没有特别的时间敏感性,但最后期限意味着我定义了什么时候想完成它,并给编辑一个什么时候可以提交的感觉。是的,如上所述,我错过了最后期限。但你知道发生了什么事么?我设定了一个新的期限(二手才最棒!)。

如果有些事时间敏感的,在你需要返工一两次时,设置最后期限也可以给你一些空间。

将它放到你的日程上

如果你使用日历安排你的生活,那用它安排一些时间来开展你的开源项目,可能是完成此项工作的唯一方法。你计划多少时间取决于你自己,但即使你每周只用一小时作为开源时间,这仍会给你每周一小时的开源时间。

这有一个秘密:有时候,如果你需要时间去做别的事情,或者什么都不想做,那么可以自己取消它。

开拓未使用的时间

你在通勤中感到无聊吗?你晚上睡觉困难么?也许你可以利用这个时间来贡献。现在我认为“每周完全投入工作 169 个小时”的生活方式是一件非常可怕的事情。也就是说,有些夜晚你不能入睡。也许你已经意识到了可以做贡献,而不是躺在床上看看你的 Twitter 上的朋友在世界的另一边做了什么(如我做的)。但是不要养成放弃睡眠的习惯。

停止

有时,贡献最好的方式是一点不贡献。你是一个忙碌的人,不管你是多么的棒,你不能避开你的生理和心理的需要,它们会找上你。花点时间来休息,这也许可以提高你的生产力,使你的工作更快,突然间你就有时间去做那些你一直想做的开源贡献了。

说“不”

我不擅长这个,所以我做的并不好。但是没有人能做到任何想做的事情。有时候,你可以做的最好的事情是停止贡献,就像以前一样,或者没有贡献(参见上文)。

几年前,我领导了 Fedora 文档团队。团队的传统是,在每次发布结束时, 领导会主动提出下台。我已经做了一两次,没有人想要替代我,所以我继续保持着这个角色。但是在我的第二或第三次发布之后,我明确表示,我不会继续担任团队领导了。我还是很喜欢这份工作,但我有一份全职的工作,而且在研究生读到一半时,我的妻子怀了我们的第一个孩子。我没有办法做到始终如一的努力,所以我退出领导了。我继续做出贡献,但是在要求较低的能力的位置中。

如果你正在努力抽出时间来满足你的义务(自我强加的或者不是),那么也许现在是重新考虑你的角色了。这对于你自己创建的或者已经大量投资的项目来说很困难,但有时你不得不这么做——为了你自己好以及项目本身。

其他还有什么?

你如何找到时间作出贡献? 让我们在评论中知道。

(题图: opensource.com)


作者简介:

Ben Cotton - Ben Cotton 是一个培训过的气象学家和一个职业的高效计算机工程师。 Ben 在 Cycle Computing 做技术传教士。他是 Fedora 用户和贡献者,合作创办当地的一个开源集会,是一名开源倡议者和软件自由机构的支持者。他的推特 (@FunnelFiasco)


via: https://opensource.com/article/17/6/find-time-contribute

作者:Ben Cotton 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

 title=

千里之行,始于足下 The journey of a thousand miles begins with one step —— 老子

参与开源工作有很多好处,可以帮助你优化和加速技术生涯,包括但不仅限于提高现实中的技术经验和拓展你的专业人脉。有很多你能做贡献的开源项目,无论是小型、中型、大型,还是不知名或知名的项目。在这篇文章里我们将专注于如何为网上最大、最有名的开源项目之一 ,Mozilla ,做出贡献。

为什么要向 Mozilla 做贡献?

现实经验

Mozilla 是网络上最大的开源项目之一,其也托管了许多其他的开源项目。所以,当你为像 Mozilla 这样的大型开源项目做贡献时,你能真正接触到技术领域中的事物是如何工作的,能增长关于技术术语和复杂系统功能的知识。最重要的是,你能理解如何将代码从本地系统移动到实际的代码仓库里。你将会学习在管理大型项目时,贡献者们使用的许多工具和技术,如 Github 、Docker、Bugzilla 等。

社区联系

社区是任何开源项目的核心。向 Mozilla 做贡献将你与 Mozilla 的员工和顾问、资深 Mozilla 贡献者(又称 Mozillians)以及你当地的 Mozilla 社区相互联系在一起。社区里有着同样关注并致力于改善开源项目的志趣相投的人们。

你也能有个机会来建立在 Mozilla 社区里的专属身份,激励其他 Mozillians 同伴。如果你想的话,最后你也能指导其他人。

活动和酷物件

没有点充满乐趣的活动和小礼品的社区是不完整的。Mozilla 也不例外。

向 Mozilla 做贡献能给你机会参加 Mozilla 的内部活动。一旦你成为熟练的 Mozilla 贡献者,你将能主持你当地的 Mozilla 活动(Mozilla 或许会予以资金支持)。当然,会另外提供些小礼品 —— 贴纸,T恤,马克杯等。

 title=

根据 CC BY-SA 4.0 协议分享,印度 2016 Mozilla 聚会, Moin Shaikh 提供。

如何向 Mozilla 做贡献

不管您是编程人员、网页设计师、品质控制测试者、翻译,或者是介于之间的任何职业,都有许多不同的方式向 Mozilla 做贡献。让我们看看以下两个主要方面:技术贡献和非技术贡献。

 title=

根据 CC BY-SA 3.0 协议分享, Mozilla.org 供图。

技术贡献

技术贡献是给那些喜欢编程,想要用他们的代码来弄出点动静的人。有不同的用特定编程语言的项目可供施展能力。

  • 如果喜欢 C++ ,你能向火狐的核心层和其他 Mozilla 产品做贡献。
  • 如果喜欢 JavaScript、HTML 和 CSS ,你能向火狐的前端做贡献。
  • 如果你懂得 Java ,你能向火狐移动端、火狐安卓版和 MozStumbler (LCTT 译注:MozStumbler 是 Mozilla 开源的无线网络扫描程序)做贡献。
  • 如果你懂得 Python ,你能给网络服务,包括 火狐同步 Firefox Sync 或者 火狐账户 Firefox Accounts 做贡献。
  • 如果你懂得 Shell、Make、Perl 或者 Python ,你能给 Mozilla 的编译系统和发布引擎和自动化做贡献。
  • 如果你懂得 C 语言,你能给 NSS、Opus 和 Daala 做贡献。
  • 如果你懂得 Rust 语言,你能给 RustC、Servo(一个为并行、安全而设计的网页浏览器引擎)或者 Quantum (一个将大量 Servo 转化为 Gecko 的项目)做贡献。
  • 如果你懂得 Go 语言,你能给 Heka 做贡献,这是一个数据处理工具。

要获取更多信息,可以访问 Mozilla 开发者网络 Mozilla Developer Network (MDN)的开始部分来了解不同的贡献领域。

除了语言和代码,积极测试火狐浏览器的各个部分、火狐安卓浏览器和 Mozilla 的很多网络组件,例如火狐附加组件等,这样也能贡献你的品质保证(QA)和测试能力。

非技术贡献

你也可以给 Mozilla 提供非技术贡献,专注于以下领域:品质保证(QA)测试,文档翻译,用户体验/用户界面(UX/UI)设计, Web 识别 web literacy 开源宣讲 open source advocacy ,给 Mozilla 的火狐用户、雷鸟用户提供支持等。

品质保证(QA)测试: Mozilla 的 QA 团队遍及全世界,有着庞大且活跃的社区,他们深入参与到了火狐及 Mozilla 的其他项目中。QA 贡献者早期介入到各种产品,探索新的特性,记录漏洞,将已知漏洞分类,编写并执行测试用例,进行自动化测试,并从可用性角度提供有价值的反馈。想开始或者了解更多 Mozilla QA 社区资源,请访问 Mozilla QA 社区 网页。

用户体验设计: 如果你是个有创意的设计者或是个喜爱折腾色彩和图形的极客,Mozilla 在其社区里有很多位置提供给你,在那里你能设计好用易理解的、美妙的 Mozilla 项目。去看看 Mozilla GitHub page 上的 开放设计仓库 Open Design repository 页面。

用户支持(论坛和社交支持): 这是成千上万像你我这样的火狐、雷鸟用户访问和发帖询问关于火狐、雷鸟问题的地方。这也是他们从像我们这样的 Mozilla 贡献者获取回答的地方。这不需要编程才华,不需要设计技能,不需要测试能力,作为火狐用户支持贡献者,你只需要有点儿火狐的知识即可上手。点击 SUMO 的“参与其中”的链接来加入用户支持。从做支持开始或许是你着手开始你的 Mozilla 旅程中最简单的部分。(注:三年前,我从社区支持论坛开始我的 Mozilla 旅程)

编写知识库和帮助文章: 如果你喜欢写作和传授知识,知识库对你来说是个好地方。 Mozilla 总是在寻找能给火狐和其它产品用英文撰写、编辑、校对文章的志愿者。每周有成千上万的用户浏览这些知识库文章,通过分享你的智慧和编写帮助文章,你也能产生强大的影响力。访问 Mozilla 知识库 页面来参与其中。

本地化,又称 “L10N”: (LCTT 译注:L10N 是 localization 的缩写形式,意即在 l 和 n 之间有 10 个字母) Mozilla 的产品,例如火狐,被全世界数百万讲着不同语言的人们所使用着。人们需要这些产品以他们的语言显示。语言本地化是个非常需要志愿者的领域。需要你的翻译和本地化能力的项目包括:

  • Mozilla 产品,例如火狐
  • Mozilla 网页和服务
  • Mozilla 市场活动
  • SUMO 产品支持文档
  • MDN 开发者文档

你可以访问 Mozilla 本地化页面来参与其中。

教授和 Web 识别 web literacy 能力: Mozilla 基本使命目标之一是使所有人都可访问网络。为了实现这个目标使命,Mozilla 通过提供 web 识别工具和技术来致力于教育和帮助 Web 用户。这是可以用你的教授技能来帮助他人的地方。如果你是一位喜欢分享知识、给民众展示关于互联网相关东西的热情的老师,来看一下 Mozilla 发起的 Web 教育活动。将互联网和 web 识别教给你当地社区、学校孩子、你的朋友和其他有关的人。

宣讲: 如果你对 Mozilla 的使命充满热情,你能通过倡导 Mozilla 的使命来传播使命内容。当倡导 Mozilla 的使命时,你能做出如下来贡献:

  • 捍卫公共规则,为开放的互联网和用户隐私做斗争。
  • 跟网站管理者在兼容性方面合作,提高网站的互操作性。
  • 帮助网络作者提升在开放网络方面的文章写作。
  • 成为 火狐朋友 Firefox Friends ,展示你作为 Mozilla 和火狐贡献者的自豪。

想要开始帮助宣传 Mozilla 使命,看一下 Mozilla 宣讲 页面。

如果你还有疑惑,我来帮你开始!

我知道,作为一个新来的贡献者,这篇文章或许给你太多的信息。如果你需要更深入的方向、更多的资源资料,你可以在下面的评论中问我,或者在 Twitter 里私信我,我很乐意帮助你开始向 Mozilla 做出第一次的贡献(或者更多!)


作者简介:

Moin Shaikh 是一个开源科技极客,职业是网页分析,有着 7 年多的 IT 工作经验。主要贡献领域:火狐网络 QA ,火狐技术支持,本地化和社区指导。除了开源贡献,还学习并身体力行于用户体验、物料设计和电子商务分析。


via: https://opensource.com/article/17/1/how-get-started-contributing-mozilla

作者:Moin Shaikh 译者:ypingcn 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果你的公司依赖像OpenSSL这样的开源软件,是时候主动点了。

心脏流血漏洞让开源社区如芒在背。

ComputerWorld的Richi Jennings 抨击说“又一个非常可怕的开源失败。”(他是要做标题党么?)ZDNet的Steven J. Vaughan-Nichols不像是作秀反开源,却仍旧将心脏流血漏洞渲染为“开源软件的最遭时刻”。而最后,ZDNet的Chris Duckett则务实地倡议:“商业公司(应该)筹集资金来避免心脏流血再次发生。”

而实际上,企业资金并不是解决心脏流血事件的最终答案 。你才是!

想要避免开源失败的公司应该不仅仅是开源软件的用户,还要是贡献者。

贡献者乘坐头等舱

贡献者能够引导特定的项目。他们占据主动,而不是被动接受。大多数企业缺乏资源参与他们所使用的所有开源项目,但每家公司都可以资助给那些真正关系到他们的项目。并且资助得越多,得到的好处越大。

开源就是一个不断给予的礼物,尤其是给予那些对开源反哺的人们。

我在MongoDB的同事Adam Comerford让这点更有说服力:如果你看看第一批得知Heartbleed漏洞的时间线,那些第一批得知的(如谷歌)有一个相当大的优势。如Comford所说的,这些公司有一个显著的优势就是他们可以在bug还未大规模传开的时候率先采取措施保护他们的系统。

鉴于早期了解像Heartbleed之类问题的优势,Comerford问:“我如何确保我在这类问题的早期通知列表里面?”

如果你依赖于专有软件,你有一个答案:向卖方支付大量的金钱,并希望他适时地响应。但是,如果你正在使用开源软件,有一个更多选择: “要么有大量的员工给[开源项目]做贡献 ,或者...有认识主要贡献者的员工(我们可以找找,他们大多也会贡献其他开源软件项目,像其他的极客和呆瓜一样。“

Comerford断言说,好处不止这样:

这有很多好处 - 除了让问题及早通知,让手头上的专家来应付这些棘手的更新,以评估你的风险,甚至可能在公众知道之前内部解决问题。在确定项目的方向上你还可以得到重视的回馈,可以影响到关键特性的优先级。最终,你会得到社区的善意,使产品变得更好,并有可能成为其它的聪明贡献者的工作目标。

换句话说,参与进来。成员有特权,主要的特权可能就是信息。

选择在哪贡献

同样,没有一家公司有足够的资源来有效地促进所有它所使用的项目,这就是为什么Comerford建议对关键项目上这么做的原因:

如果你要人们列出在企业中所有开源关键技术,你可能会得到一张很长的名单。然后,告诉他们,他们将必须清点人工和预算来支持清单上的每一种技术的话(并验证它) - 它可能会迅速缩水。

如果你是一个AMD那样的芯片公司,给Linux内核贡献基本驱动程序和其他代码很可能是强制性的。给LibreOffice贡献可能不是。或者,如果你判断你的未来在Hadoop上进行深层数据分析,你应该贡献Hadoop,即使你依旧免费使用OpenSSL社区的成果。比如Dish Networks公司,它的 CIO告诉上周在开放商业会上的人们,他们正在将重要的数据从关系型数据库转到Apache的Kafka,那他最好研究Kafka的代码,即使他不贡献给Apache HTTP服务器项目。

每家公司都有其优先级,以及这些优先级应该以严肃的承诺而确立。

这是确保这些项目安全的一部分办法。而另一部分,它是一种形成影响力指引的方式。但同时,红帽公司CEOJim Whitehurst早在2008年声明,它是显著减少IT花费的办法:

今天编写的绝大多数软件是企业编写的,不得转售。并且绝大多数是从来没有真正使用过。IT软件开发中的浪费是巨大的....最终,开源给全世界的客户提供价值,我们不仅需要让我们的客户作为开源产品的用户,而且真正加入开源和参与在开发社区。

Comerford坚持认为:“如果我在业务中使用开源软件,我应该雇开发人员来积极给软件做贡献,如果他们自己不是核心开发者,那就雇佣核心开发者。 ”这是充分利用开源软件的关键:给它做贡献,不只是使用它。


via: http://readwrite.com/2014/05/14/heartbleed-open-source-contribution-users

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出