【编者的话】本文是Docker用户命名空间功能实现作者写的一篇关于开源社区的文章。他的观点是一切的成功都离不开社区的鼎力支持,所以当你加入一个开源项目的时候,尽量去真正的参与其中,帮助其他人,建立社区影响力。
考虑到潜在的国际读者,这个博客的标题借鉴自一个老的美国总统竞选词,“傻瓜,经济才是关键啊!”不过,我是什么意思呢?在过去的一周,因为我在关注Docker用户命名空间的工作,收到了很多不错的反馈。这真的一个很好玩的事情,因为这荣耀的瞬间我体会到了斯诺登的感觉,“哦,不,又一页页的Twitter通知,我可没有时间!”当然,完成一个看似艰巨的事情,而且是很多Docker用户期待已久的新功能,这感觉还是非常棒的!
虽然只比平时多了几个读者(我的博客在最近5天的访问比过去12个月的总和还多!),我觉得还是值得我停下编程的步伐,为社区的力量多写几句话。
首先,用户命名空间并不是从我创造或者发明的。它源于Linux内核,也许你听说过的另一个开源社区,无数人经过数年的艰苦努力把它变为现实。其次,用户命名空间只存在在Docker中,因为,a)为了支持Go语言标准库,在2014年下半年,由Mrunal Patel和 Michael Crosby又加入一个开源项目,b)为了支持开源libcontainer项目兼容性,目前已经是开放容器联盟的RunC实施和库,也同样先加入进来。
所以,你可能会说“那没有问题,但你在Docker中做的PR已经被合并。”当然,不过这一切都离不开社区的鼎力相助。真心希望如果你问任何一个在健康的开源社区中工作的开发人员他们是否单枪匹马,只在需要向GitHub仓库提交PR时才冒泡,他们会说:“绝对不是!”每个贡献者工作上取得的成功都离不开社区提供的指导和帮助。在这个过程中我曾经卡壳多次,需要一些其他的看法、思维和观点,以便在过程中进行清晰的设计和修改。在后期的审核环节我们甚至把GitHub上的Eric Biederman(Linux用户命名空间的维护者/核心贡献者)拉了进来,改变了我们的思维,让我们想出用户和组ID映射范围本身的方案!
如果你正在准备加入开源社区,你真的需要接受我的建议,真正参与进来。获取IRC频道,满足关键人群的交流,帮助没人愿意工作的bugs,清理文件,如果他们可以使用一些帮助。采取一切必要措施,以成为社区值得信赖的一部分。最终你会发现,当你在一个困难的bug,PR或功能上需要一些帮助时,在你选择的社区有很多,因为你已经在你周围建立起的人际关系。傻瓜,社区才是关键啊!