您是如何参与开源社区的?

时间:2009-04-05 00:22:00

标签: open-source

加入项目的正常进展似乎是贡献一段时间,获得信任,然后被接受为社区成员(即拥有提交权限)。

现在,我已经显然已经知道如何以某种方式获得成就的“最佳方式”;这不是我的问题;我希望得到的是:其他人如何被收集?当然不是每个人都去了“找一个项目并提交补丁”的路线 - 或者有他们?我不碰巧认识开源社区中的任何人,所以我只是想知道......

也许你已经认识一个社区中的某个人并且只是陷入其中?也许你对某些bug感到沮丧并因此开始定期做出贡献?也许你刚刚在SourceForge上发现了一个项目...

更新

似乎最常见的原因只是搔痒,quote singpolyma:“寻找一个能够做出贡献的项目通常不是正确的方式。”相反,您应该通过为您已经知道和使用的项目做出贡献来加入开源社区。

重要:

拜托,拜托:请告诉我您的具体经历,请不要一般答案。另外,只有当您是项目成员或补丁贡献者时才回答。请不要就如何加入社区提出建议,这不是我正在寻找的那种答案。如果您想就加入社区提供建议,please answer in this other thread

很棒的答案:

相关:

6 个答案:

答案 0 :(得分:9)

我个人的轶事:

  1. 我在1991年左右开始参与Tcl社区。邮件列表和后来的usenet新闻组对于与人联系非常重要。我专注于用户传福音和教学,最终最终写了两本关于这个主题的书。其中一个在十年后仍在印刷中: http://www.amazon.com/dp/0201634740

  2. 现在我使用了很多Python,并且非常喜欢cx_Oracle包。我再次活跃在邮件列表中,并提供了一些补丁。

  3. 我已经提供了一些我为工作而编写的软件包。通过使它们成为开源,我能够得到一些好的贡献,因为它们不是我当时雇主的“秘密酱”,他们不介意共享代码。最受欢迎的两个包是

    http://sourceforge.net/projects/kap/动能应用处理器 - 这是我在中国互联网骨干网上工作时建立的。

    http://code.google.com/p/orapig/ - OraPIG,Oracle Python接口生成器 - 它生成Python代码以调用数据库中定义的API,并包含XML-RPC数据库接口。

  4. 建议:

    不要寻找要加入的项目,而是尝试为已经使用的项目做贡献。

    进入“核心”开发通常很困难,因为(a)在一个大项目中,这可能是要理解的相当大的代码块,并且(b)可能有一组核心人员已经在工作在它上面。

    因此,假设您喜欢某个软件并希望开始贡献,您可以开始工作。这里有几个具体任务可以帮助您与小组融为一体。

    • 编写一些测试用例,以便将bug添加到回归测试套件中。
    • 浏览错误数据库并查找要处理的错误。这可能是进入核心开发的最佳方式。
    • 查看功能请求数据库,看看是否有一个可以处理的小任务。
    • 寻找“用户文档”请求......其中很多都涉及编写您可以提供的示例代码。
    祝你好运!

答案 1 :(得分:6)

人们通常参与的方式是:

  • 您在日常工作中使用FOSS产品
  • 您发现问题或缺少功能
  • 您邮寄维护者,询问此错误/缺失功能是否真实
  • 维护者说是,这是一个错误/缺失的功能
  • 您决定尝试修复/添加错误/功能
  • 你像疯了一样编码
  • 您向维护者提交补丁
  • 维护者笑着或面对或说“非常感谢!”

如果你重复几次最后几步,维护者可能会给你提交项目的RCS存储库的权限,然后你真的会变得危险。但最重要的是,你需要做一些事情,比如写一些代码 - 仅仅对项目“感兴趣”是不够的。

答案 2 :(得分:5)

我加入了DiSo和Greasemonkey。

我发现参与的最佳方式是在项目生命的早期阶段进入,或者只是非常感兴趣。有了DiSo或我正在进行的各种github项目,它是前者,我的Greasemonkey贡献,后者。

寻找一个贡献的项目通常不是正确的方法。使用东西并找出你想要构建/修复的内容,然后执行此操作。

答案 3 :(得分:4)

我在GnuCash做了一些补丁工作,因为我的妻子最近在我们的孩子长大后重新开始兼职工作。

我宁愿用热门扑克扯掉我的眼睛而不是重新安装Windows,但是GnuCash丢失了[某个其他会计软件包]的东西所以我告诉她我会把它添加进来。

事实证明,他们接受了我的补丁并且在把它放入之前做得更好(可能最终补丁的1%是我的东西)但至少我们现在可以使用GnuCash而不是专有东西。他们也非常敏感 - 从补丁提交到补丁可用性只有一个星期左右,它在三周后的产品中。

我曾经调查过在Linux内核中获取流程会计补丁,但所需的工作远远超过了我的需求: - )

我没有定期做出贡献,更多的是根据需要做出贡献(找到你的痒并刮擦它)。有些人喜欢它,但我宁愿把我的业余时间花在孩子身上,不幸的是,我的雇主不会付钱给我去其他地方做贡献。

最后一点特别让我感到厌烦:

  • Linux补丁将极大地帮助我们的产品(以及其他许多产品)。
  • 我们其他产品的行为发生了变化,降低了我们产品的实用性。
  • 从概念上讲,解决方案相当简单(所需的工作量是测试,因为问题会产生很大的影响[任务切换]而且非常普遍[每个人都使用Linux])。
  • 编写补丁的速度比我们最终实施的解决方法更快。
  • 解决方法是kludge(p'tooee)。
  • 现在,世界上没有人受益于我们的补丁(包括我们)。

答案 4 :(得分:2)

我做的很简单;我打开了一个。

我加入了一位永久性开发人员,以及其他两位在幕后捐赠代码的人。该项目处于非常早期的阶段,因此没有多少用户下载过它。

答案 5 :(得分:0)

真正有助于开源项目拥有插件架构 为例如贡献一个简单的插件要容易得多。一种文件格式,而不是尝试向Linux内核添加内容。这使得构建社区变得更加快捷和容易。

  

TODO:请提供一则轶事。