Yikun / yikun.github.com

Yikun's Blog
69 stars 22 forks source link

The road to enable OpenLab in containerd #77

Closed Yikun closed 4 years ago

Yikun commented 5 years ago

1. Investigation

在调研期间我们要做以下几件事:

1.1. 现有CI情况:主要了解社区的现有CI有什么?做了什么方面的验证?使用的平台是什么?

containerd最开始的时候,通过appveyor和travis进行build和验证,codecov用来做代码覆盖率检查,从整体集成来看,社区还是比较open的,乐于使用业界开源的东西,来辅助自己做一些事情。

1.2 项目未来规划:主要考察社区本身的项目有什么规划?依托第三方的功能有什么样的其他进展?

可以从issue中搜到一些相关的内容,可以发现目前对ARM64的支持,还在进行中,当然也有很多开发者比较关注这个进展。

2. Community

在社区推进特性的时候,很重要的几点是 1) 要做什么? 可以通过issue、IRC、PR等方式,将你需要做的事情描述清楚。 2) 有什么好处? 在描述的过程中,重点讲清楚,这个事情能够解决的问题,带给社区的好处。 3) 真的对开发者或者用户有益吗? 这个就是所谓的use case,一个健康、活跃的社区不会无缘无故地拒绝一个合理的要求,因此,只要是对最终有用,又对现有项目没什么太大影响,社区的态度都是比较Open的。

2.1 Issue,找准合适的突破点

2.2 Slack,最初的交流

在整体上了解了这个项目整体的进展后,我们需要在社区问问各位开发者的意见, image

通过此次需要达成的目的:

  1. 社区对我们需要做的ARM验证是否感兴趣:根据社区的答复,可以看出来,还是比较期待这个的支持的。大部分社区都合理的支持和改进,都是处于比较开放的。

  2. 在某个社区内部,如何进一步完成,有什么建议?通常没有太大的问题,都会建议先提个pr,然后具体的问题就可以在pr中展开了。

3. Do it

3.1 Show case,我想看看最终效果

3.2 Pull Request,不要迟疑,快速行动

3.3 Improving

Non-voting,最后的妥协。在最终的合入的过程中,各个项目的维护者比较关心,当加入这个后,很担心会对自己的开发流程有什么影响。所以我们需要做的是:

  1. 打消维护者的顾虑:通过解释或者演示,告诉合入不会对现有的流程有任何的影响,并且把影响的点明确的说出来,例如在containerd推入的过程中, image
    - job:
    name: containerd-build-arm64
    # ......
    voting: false
    # Let job down to test the non-voting job
    exit 1

    3.4 Github app,一步之遥

    666777