ok cool 大家好我是李洋我今天来讲贡献者体验小组的一个介绍session我在slag twitter 还有github 还有其他一些地方的id都是 id12hck我是从2017年开始接触Kubernetes然后2018年加入Kubernetes社区一年期间我主要贡献的小组是release贡献者体验测试还有文档基本上是在我的业余时间作为个人贡献开始之前我想问一下有谁是在工作中使用Kubernetes请举手好 有谁在Kubernetes社区打开过issue or pull request你们一定会了解这两个机器人一个是管理pr 一个是管理issue有谁参加了昨天的贡献者体验Summit 或者是以前的吗希望你们能够参加下一次有谁已经是Kubernetes GitHub的member了吗OK我们先来简单介绍一下贡献者体验小组是做什么的其实我们是管理整个Kubernetes GitHub社区我们是帮助所有贡献者的贡献者这里有列有我们的melestone和project boards是我们现在的项目管理方式同时我们还在采用team的方式管理包括issue charge我们的活动还有这里的marketing指的是我们为贡献者准备的宣传还有一个特别的是亚太地区的一些东西因为现在社区里面比较偏向于美国各种会议也都是以美国时趋为准所以我们希望在亚太地区能够有更多的贡献者加入进来我们主要负责还有GitHub Admin还有各种社区的管理员以及YouTube管理员我们大概有10个指向目现在今天我会挑选其中的一些重点的给大家介绍一下第一个是贡献者的文档我们有一个完整的贡献者导演然后还有一个简单的一个检查单并且这个检查单目前已经有中文版本了我们还会有专门为代码贡献者准备的开发者指南以及为非代码贡献者准备的贡献者指南我们的GitHub Management的项目主要是为了管理因为我们是一个相当大的开源项目所以需要管理评审者和通过者的时间我们现在仍然缺乏很多的评审者所以我们需要比较好的管理他们的时间可能有过pro-request的人会知道你打开了一个pro-request之后可能几天都不会有人回应这个在目前是一个比较没有办法解决的事情因为很多的贡献者他们都会比较忙碌所以我们最近是做了一下一些事情来改进这样的状态首先我们给onus file加了一个退休者的字段因为onus file是我们管理reviewer和approver的机制比如说一个项目目录里面每个目录下都会有一个onus文件这个onus文件是列出来了这个目录下面的文件有谁是可以来评审这里的代码或者文档有谁是可以批准这里的修改那么有一些贡献者他们已经随着时间退役他们会逐渐转向别的地方所以他们可能还会被自动分配review任务那么我们就需要去正确地管理这些分配的任务以确保pr的作者能够得到及时的反馈下面一点也是相关的github最近推出的功能叫做状态功能你可以设置你的状态是忙碌然后我们的自动化工具最近支持了这一点如果你设置为忙碌的话机器人就不会把你分配为自动reviewer这样子的话可能就会分配到更多的有时间的人去帮你reviewpr接下来我们还会针对这个领域做更多的自动化和工具的事情接下来我想详细介绍一下刚才提到的自动化我们会针对e-shoot的生命周期做一个管理因为目前kubernetes-kubernetes也就是我们的核心代码仓库里面大概有几千条打开的e-shoot然后有大概一千条打开的pr request那么我们需要对他们进行生命周期管理假如一个e-shoot打开之后没有人关注如果超过三个月没有状态更新的话机器人会将它标注为一个style状态如果标注为style状态之后过了一个月仍然没有人关注这个e-shoot会被自动关闭当然你也可以使用reopen meaning将这个e-shoot重新打开这么做的目的的话可能有的人会比较讨厌这个fetabot但是这么做的目的是为了确保我们能够关注到社区里面的所有人共同关注的问题下一点是我们会检测pr request如果你的pr request打开之后有相同的修改在其他的pr request里面被合并了那么你的pr request可能会遇到冲突就是它不能被合并那么一般来说这个时候你需要通过rebase解决那么needs rebase这个插件就会帮你检测pr request的状态然后在下面评论告诉你你的pr request需要更新我们还会有一个needs to okay to test的label这个label的目的是因为我们打开一个pr request之后会运行一系列的测试自动化测试确保代码质量那么如果是非member的贡献者的话我们需要另外一名已经是member的贡献者来确认它这个测试是可以跑的也就是说这个pr是有意义的因为所有的测试如果跑一套下来它可能需要花费时间和金钱因为它都会真实地起集群去做测试另外一点在提交中你可以使用close或者是fixes这样的关键词去关闭对应的issue这一点大家可能使用github都知道但是这样有时候会带来一个问题是假如有一个issue它其实在相应的提交里面并没有被完全修复那么这个issue有可能会被重复关闭因为对应的提交可能每合并一次每合并到不同的分支都会导致相应的issue被关闭那么我们建议的方法是这种关键词最好在prorequest描述中使用而不要在提交的信息中使用最后一点是我们最近增加了slack的欢迎信息也就是让新加入slack的贡献者都能够有一个对这里的规则和状态做一个了解以免他们不知道从哪里开始然后我们针对github的管理还有一些自动化的工具我们会采用工具创建所有的仓库到现在我们已经使用新的工具创建了30个新的仓库了然后我们会使用github来处理所有的member请求也就是你申请加入github阻止这时候你只需要去改仓库里面的一个配置文件而不是使用github的UI也就是实现了仓库管理的github另外一点是我们还会有针对不同subproject的网站因为比如说有很多的小组他们有对应的子项目比如说cclass life cycle他们有cubedm或者是class to api可能每一个子项目都需要一个网站来介绍他们向用户展示那么我们会负责所有这些配置最近我们也在这个领域做了自动化的优化下一个子项目活动昨天我们有一个贡献者峰会的活动包括是当前贡献者和新的贡献者针对当前贡献者我们会给他们准备类似于大会这样的分组的会议但是也是所有人一起开的然后针对新的贡献者我们会准备一个五个小时分为上午和下午的一个workshop如果有新贡献者想参加的话其实可以关注一下后面的活动这个活动会帮助你能够做一个起步能够知道从哪里开始贡献包括非代码和代码贡献以往的活动我们也会有录像在YouTube上面都会有接下来的话美国厂和欧洲厂也会有对应的contribute summit的活动另一点是我们的指导委员会指导委员会是管理Coopnet is整个项目也就是管理我们所有的小组那么这个委员会的选举是由贡献者们共同选出来的我们会组织选举我们的指导项目还包括指导比如outreach然后google sum of code以及在CoopCon用现场的一些speed mentoring其中一点比较比较重要的也就是大家都可以参与的是meta or contribute这个是每个月会在YouTube上面有直播所有人都可以通过YouTube和Slack来实施的进行互动我们会邀请一些现有的贡献者或者是新的贡献者来谈一谈一下他们在社区中工作的一些体验在社区中的工作如果你一开始不知道从哪里开始的话我们会有一些替补的一些角色来帮助你开始也就是会有人可以带着你比如说发布或者是活动这些我们都会有对应的人来带你这个就是刚才提到了一点我们的meta or contribute的一个截图这是你可以参与我们的方式我们在Slack上面有Channel然后我们的Chair是MAE和Paris我们的TacklistCBelkerNikita我们主要的仓库是在Kubernetes Slash Community这个仓库然后你也可以加入我们的邮件列表我们最近有一个针对亚太地区的特别的一个小组是也就是刚才最开始的时候提到的我们发现现在社区一直以来亚太地区的贡献者是最少的我们希望能够在亚太地区发现更多的贡献者并且帮助他们这是我们的会议时间是在这里换个篇上没有写但是是在星期四也就是中国时间的星期四白天基本上也是在亚太地区的白天时间我主要讲的内容就是这些然后我想把剩下的时间留给后面的提问环节我想请刚才有举手的同学可以请问你们有没有什么问题然后我们可以在现场做一个互动因为今天这个Session是Maintainer Track也就是主要是吸引一些想参与社区工作并且想加入进来的人稍等一下请等一下话筒因为我们会录音我想知道就是现在在整个这个team里面它一共有多少人以及里面的比如说中国的人大概是多少人你指的是贡献者体验小组还是说就贡献者体验小组贡献者体验小组其实这个小组我想我最开始有一点没有说是这是一个其实是与其他的小组是一个不重叠的关系也就是比如说我同时参与releasetesting还有贡献者体验那么其实这个是针对整个社区的人都可以参与那么现在的人数的话中国地区我了解的可能有十几二十个人但是他们并不主要参与这个小组他们可能是参与其他的小组然后再空余的时间来参与这个小组那我还有一个问题是说就是比如说我要去贡献的话那我是说就自己先浏览一遍哪些地方是我能够贡献的然后我先慢慢的通过个人的方式去慢慢的熟悉然后接触更多的人还是说是有一个官方的一个渠道让我更快或者说更加被OK其实其实你可以直接看我们community repo里面的issue比如说good first issue或者是help quantity的这些都是已经列出来的问题或者你也可以直接联系我们的slack你可以加入我们的slack频道然后说比如说我是新加入的我来自中国然后我想帮助你们很快就会有人回应你也许不是很快如果是时间不在不在一个一起的话他们会帮助你社区里的人都非常热心然后第三个最后一个问题我想问一下就我之前有过一个PR就是他其实是一个就如果在日常工作中他是一个很正常的事情就是说我的观念或者说我的设计和当时有一个member他给我提的意见可能是就是他有他的想法我有我的想法但是在但是后来这个事情就这个PR就被擱置了然后就越积越久以后就可能就没人管了那像这种情况的话有没有比较好的机制能够因为说实话对我来讲的话我可能只是我要解决我工作上的一个问题就顺便我去提一个PR我很难真正的非常投入的去把这个东西从头到尾的去overview的去去把他给怎么样影响对很多时候我的一些贡献其实就是在这种阶段被block掉了不能说是他的问题不能说是我的问题但是对于这种东西的话我觉得肯定很多人也有这种情况包括我身边的同时他也没有这种情况所以说我想知道就是官方是否有这种更好的机制就是能够就引导或者说OK我觉得这是一个非常好的问题确实会有很多人在一开始的时候遇到这种情况我可以分享一下我自己的经验是我在参与Kubernetes之前也是可能我在工作中用到某个开源项目我会我会在修复我遇到的问题之间顺便给上游提交一个提交一个补定那么你刚才提到了你的pr是先有e-shoot还是说直接提的pr是直接提的是直接提的没有引用e-shoot但就是有相关的e-shoot在讨论就OK那我觉得比较好的方式去解决这个问题是带着相关的e-shoot和pr找到更多的人去来讨论这个问题应该怎么解决怎么去修复讨论的地方可以是slick或者是邮件列表这两种是比较好的渠道因为github上面确实因为通知太多有很多人他们会有通知很多的问题他们不可能每一个通知都能关注到所以这种情况一般来说是pr的作者或者是某一位reviewer要去主动一些也可以去参加对应小组的会议如果时间允许的话谢谢谢谢你好我是在给communities官网有过等电话的工作包括像是communities的一些兴趣小组包括customize我也是给他们再做一些包括汉话之类的文档的工作其实我这边的话是比较疑惑的我在阅读完了communities的所谓的导演之后我觉得对于我们来说是没有办法下手的一种方式他说你成为member的话你是需要有两个推荐但是首先我们是通过什么方式只能通过这种在github上和他们聊然后tpr这种方式来去和他们交流包括select也是select里面有CNDEV的频道包括也有communities doc中文的频道但是这么长时间下来的话可能我看的还是不是很活跃没有办法和maelist的这些比就是maelist基本上都是所谓的一些母语为英语的国家的人他们在交流而我们的话可能在我看来我可能需要一个文档方面是没有问题的但是当真正想参与到这个开发中的话可能还是需要和人交流一下我这边可能比较愿意的去有一些母语是中文或者是他会说中文的人来这种在select或者是其他的一些方面直接用母语用中文来交流的话我觉得可能会对我有更帮助一点包括我在做翻译的时候我也发现很多的一些因为文化差异导致的这个理解的偏差导致最后开发出来这个东西就和他一样说的我提的pr基本上他提出问题的时候发现我们想的完全是两个方向然后最后就被无限擱置了所以说我们有没有就是因为我们虽然这个中国这边开发者不是很多但是肯定是有有没有就是这样一个类似于这个team这种样子来可以交流的这个平台我觉得这也是一个非常好的问题首先人数少确实是但是我们还是可以找到一些比如说你说的文档小组文档小组里面其实中国贡献者相对多相对于其他小组来说然后我应该也算然后你其实可以跟其他的一些中国的贡献者在slag上面或者是你们有微信加过的话也可以相互聊一下其中肯定会有已经是member的贡献者只要你能找到比如说你有过比如说你有过四个prepressed那么如果里面有过两三个跟你直接有过review之类的互动的话你其实可以找他们请他们帮助你帮助你成为member其实也是一个这么一个问题就是如果文档方面的话还好说但是在这个项目开发上其实我觉得可能是不是我们就是为什么来可能就是为了解释更多这种类似的这种开发者然后来大家相互交流有一个平台然后去去有所贡献但是现在的话就是我们官方可能就是成立一个这种类似于就是kbis官方的一个所谓的这个贡献者的这个平台在上面大家可以来交流包括maillist包括slack都可以但是slack的话反正是上面说句话可能回答你的人不是很多我试过没人理我我不知道你说的具体是哪个频道但是如果你说官方的一个平台的话其实贡献者体验小组就是一个官方的平台然后贡献者体验小组的亚太地区协调人也就是这个结束上面的这个是刚刚刚刚成立的一个team所以欢迎你的加入就是你刚才光介绍是一个这种这个teamteam的工作我好像没有太理解虽然有一个这个亚太方面的这个贡献者对吧这个这个这个贡献者他们可能分布在不同的项目然后也可能就是他们贡献为一个项目但是大家时间交流很尴尬就是经常在github上和和会说中文的人我们非要用这个英语交流然后导致最后这个要交流很长时间的这种情况也是有其实这种情况你可以直接联系他在slack上面或者在其他的渠道上面github上面我看到起码文档里面有过中文沟通的例子比如说我们现在翻译一个文档从英文到中文那其实不一定要用中文不一定要用英文可以使用中文因为如果说作者和reviewer都是中文母语的话那么可能中文对他们来说相对方便然后英语的话主要是为了一个透明性为了一个社区的其他人能够看得懂但是我认为使用中文也是可以的因为有过例子明白了谢谢大家还有其他问题吗也可以分享一下你们自己在其他一些小组里面的贡献经历或者是说一些遇到了困难比如刚才两位没有的话那我这里再详细介绍一下现在这个新城内的一个亚太地区协调人小组将会专注做的事情首先这里写的第一点我们会启动一些培训和针对贡献者的一些策略性的一些活动比如把其他地区的Meteral Contribute的活动给在亚太地区也来做一份同样的这样我们也可以使用中文交流这是一点然后我们可以有其他的Meteral Contribute比如说上海本地的杭州本地的或者是北京本地的我们也可以在那边寻找一些想加入进社区的贡献者还有一点是针对现在社区的文档工作如果翻译需要的话我们也想用中文母语来吸引更多的读贡献者以及我们的社区的沟通渠道包括slack和discuss针对用户的网站最后的话我们其实这个贡献者体验小组以前是有一个专门针对亚太地区的时间的会议但是后来因为参与人数不足暂停之后就是亚太地区协调人这个小组成立之后我们会有定期的会议是在双周的周四中国时间的白天欢迎所有人的加入然后可以让我们贡献者体验小组的中国时间的会议亚太时间的会议重新启动OK最后一个问题还有吗OK 那这个这个Session就结束谢谢大家