如何成为TF社区的贡献者?



  • pdf点击此处下载。更多会议资料,请在公众号(搜索“TF中文社区”)后台回复“成立大会”获取。

    很多希望加入TF的贡献者都会提出“灵魂三问”:
    
    TF存在中文社区和国际社区两个社区,两者之间的关系是什么?
    如何加入TF中文社区,我能得到什么,我又能做什么?
    TF国际社区是如何工作的,有什么经验可以借鉴?
    

    针对第一个问题:中文社区与国际社区是什么关系?

    TF中文社区和TF国际社区是完全资源共享,无缝对接的。
    受制于网络环境、沟通平台,以及语言和时差(TF国际社区的开会时间为北京凌晨0点、2点和4点)的影响,中国的云计算从业者和网络工程师在进行云和SDN的学习实践过程中,无法实现国际和国内的技术资源的共享。TF中文社区的创建,是希望在SDN方面给大家搭建一个本地平台,在信息传递,资源共享与国际社区同步。同时,邀请国际社区的专家作为中文社区的技术专家,给予指导和帮助。此外,针对中国的应用场景和开发者,中文社区正在做大量本土化的工作,搭建本地平台,并建立国内的技术委员会。社区的参与者自愿加入,通过民间的NGO的形式来把中国的平台运营起来,聚拢中国的参与者,解决中国面临的行业问题。
    目前可以通过以下方式进行资料获取和信息沟通:
    微信号:TF中文社区
    官网网站:http://tungstenfabric.org.cn/
    邮箱:tfzw001@163.com

    针对第二个问题:如何加入TF中文社区,我能得到什么,我又能做什么?
    参与TF中文社区的构建,参与全球最顶尖的开源云网络的项目,为云计算的网络分场贡献力量。这个过程让学习和使用TF的过程不再孤单,亲手安装部署使用,还有能够了解功能场景、技术原理和架构、开发和运维。与全球高手一道,是受惠者也是建设者。
    技术上,TF中文社区在文档、行业案例和需求整理,以及项目治理上,都将投入力量。在市场上,将在线上内容分享和线下活动上发力。目前,TF中文社区技术委员会正在招募过程中,设置了文档工作组、社区联络工作组、行业案例工作组和基础架构工作组等四个工作组,会员征集活动现已开启,扫描下方二维码,快速直达会员在线申请——

    8dcf17a2-1ad4-4efa-81a0-1131a2070a3f-image.png

    文档工作组,负责TF相关文档站点的维护,文档组织结构的整理、翻译、发布和更新;
    社区联络工作组,负责TF中文社区与国际社区及合作社区的联络工作;
    行业案例工作组,负责与用户和成员企业联络,整理TF的使用案例和需求;
    基础架构工作组,为TF中文社区官网和项目组的CI/CD流程提供技术支持。

    针对第三个问题:TF社区是怎么工作的?有什么经验可以借鉴?
    我们整理了Tungsten Fabric国际社区代表Edward Ting在“TF中文社区成立暨第一次全员大会”上的演讲,有助于大家了解国际社区的治理规则。

    902bea231eecabef6ff40c959badda5.jpg
    Tungsten Fabric国际社区代表Edward Ting

    自我介绍一下,我在Tungsten Fabric(以下简称TF)做了大概两年半,社区的技术指导委员会(Technical Steering Committee,简称TSC)分两部分,有TC和CC,分别有5个Member,我是TC其中一个Member。
    我在硅谷20多年,从第一份工作开始,没有在别的地方上过班。我在台湾长大,父母亲是绍兴人,今天我会用中文讲,社区治理及如何贡献代码。

    关于Tungsten Fabric社区
    bfb3f78b-5d93-48c4-a420-5a3fbcc5e8d7-image.png

    这个是TF国际社区的Governance(社区治理),TF是Linux基金会下的一个正式项目,我刚才讲的TSC就是整个Governance里的重要组成部分,其中有技术的工作组,也有社区的工作组。
    目前来说,TSC开会的时间都是在美国加州时间早上8点到11点,中国地区要拨进来的话,时间大概在半夜12点到2点钟左右。

    1b3dd2cd-ecf4-42eb-80c3-72e9d00171a1-image.png

    技术工作组由四大部分组成,分别是ARB(架构审查委员会)、IWG(基础设施工作组)、MWG(市场工作组)、DWG(文档工作组)。
    开会的时间,IWG是每两周的早上8点,DWG是每个星期三上午11点,MWG是星期二的下午1点钟,都是在加州时间。(编者注:北京凌晨0点、2点和4点)
    目前社区里四大区块的活动,大概就是这样。

    02b9a094-01b6-4a11-898a-9e491466b643-image.png

    整个TF国际社区的Landing Page,都已经放在tungsten.io,信息非常完整。今年我们花了很大的功夫,把整个资料都放在那里,你可以看到很多东西,包括各种演示和文档,开会的记录,还有去哪里参展,发表了什么论文等等,都在里面。
    这里第一个就是Governance,刚才介绍过了,包括社区、技术、市场、文档等。
    第二个很重要,加入国际社区的话,你需要签一个CLA协议(Contributor License Agreement,贡献者许可协议),协议分两种,一个是个人,一个是公司。不管你要做什么贡献,第一件事就是去那边签这个协议。
    第三个是Demos,里面放了很多视频、演讲、不同活动上的Demo等。
    其他的几个,不多介绍了。大家可以到页面上去点这些链接,就可以看到很细节的东西。

    ab5e61d7-5ce7-4ebd-af10-9b9b1fb9033a-image.png

    这里就是刚刚说的四个组开会的信息,如果你点击进去,它以前的会议信息都在里面,包括会议时间,讨论了什么内容等,每周或每两周开一次会,每个会都有一些文档在里面,信息非常完整。

    9a4f35eb-4158-4e25-b2a2-0a0a3821ce0d-image.png

    另外你怎么找到参与者,最常用的是去Slack,里面有Dev,Documentation,General,Users这几项。
    Mailing Lists有这么多,比如说国内要办活动,你到这边来,发个邮件到Conference里,说明要办活动的情况,社区上看到就会考虑怎么去做宣传。
    再比如说你要签贡献者许可协议,把文档下载下来之后,发个邮件到cla这边,那些Linux基金会的人就会记录下来,你就可以正式成为社区贡献者。
    如果是开发的人员,最常用的应该是dev,还有就是security,每个开源的软件都会有各种网络安全问题,你可以发邮件到那里去,然后会有人判别具体是不是安全问题。
    有任何技术上的问题,都可以使用Mailing Lists,去跟社区沟通和解决问题。

    d977c277-41ad-46a9-808e-adc36b919954-image.png

    接下来就是社交资源,除了网站Web社区,还有Blog在上面,然后我们还有领英Linkedin,在Twitter上面也经常有媒体会发新的消息。Randy Bias现在是我们的主席,可以在Linkedin和Twitter上follow他。

    ccb5ed89-5b7a-4463-932d-fd38d1111b70-image.png

    那么代码在哪里呢?主要就是在Github里。在Dockerhub也放了一个已经编好的5.1版本,是今年6月的时候release的,一旦社区有新的release的时候,都会放到Dockerhub里头,你可以去那边获取,然后就可以安装和使用。
    你如果Code Review的话,就放在Gerrit里面,地址是review.tungsten.io。最后,我们现在把所有的blueprint蓝图,就说你的feature你要什么样的功能,什么样子的东西,可以放到blueprint里头去找。

    如何贡献代码
    0797b237-16ed-4a0e-abc3-bd6bc5304b66-image.png

    如何贡献代码呢?这是总体的概述,先要注册到mailing lists,然后你要签CLA协议,再把blueprint放到Gerrit里头,就可以了。

    693fa9d0-9774-4a7f-ab1c-5506f7aeecca-image.png

    在Gerrit里会区分什么是bugs,有story。在敏捷开发里头,他有讲说我是一个story,还是一个epic,还是一个bug,还是个issue,所以应该来说一个blueprint至少是一个story。如果是一个比较大的blueprint,可能就是一个epic。所以你在Gerrit里面去开一个blueprint的时候,你可以选择。

    92e04c77-2380-43b1-b91b-71353ee1e045-image.png

    这两个链接,可以告诉你去哪里下载CLA,一个是公司的,一个是个人的。

    99940869-53b0-4246-b187-138b66f55a4c-image.png

    然后写完之后,就把它发送到CLA上面去。

    0771f670-509a-4e7a-864c-e5b46c0e6beb-image.png

    当你要做开发的时候,要确定到底是一个feature,还是一个bug?你就提交一个blueprint到上边来。

    914538b0-6a7c-41d4-b234-54c02a1aa258-image.png

    这里讲述什么是一个blueprint。

    0a5a2a90-c449-4d8a-af85-087b9cf2127c-image.png

    Blueprint要通过的话,先要在TC里面review,然后到TSC做vote,这是一个流程。所以TC的话是每周二开会,然后TSC是每周四开会。

    011c521a-b22c-4583-bb4e-b32db0318d97-image.png

    TF国际社区的release周期目前还没有定下来,还在讨论中。

    efccd2fa-c4bb-48d3-a865-404ead57aa47-image.png

    CI现在我相信还是弱,有人在讨论说,换到不同CI的一个infrastructure,目前还没有改到那边去。

    1a8112d3-ec2f-445a-9446-810603f3b83c-image.png

    这是告诉你怎么去处理code,你写了code之后,还要一直负责,我们会有人review,可最后还是写code的人去负责。
    当然还有基本的要求,就是说你要怎么做测试等等,这是很标准的,在开源社区都是这样子。

    11a22102-8b97-4c4b-b142-69dafe7b973a-image.png

    最后,我个人再分享一下,跟其他的开源软件比起来,TF其实还算靠谱和好用。当你面对不同场景、不同客户的需求,只要稍微调试一下就可以。基本上说TF的架构都有非常严谨的测试,Juniper在里面就测得很好,拿到社区里面来的时候,问题都比较少。所以很鼓励大家去用TF。


Log in to reply