极狐GitLab|参与开源的正确方式:Upstream First
近年来,“开源”成为了国内科技公司对外传播技术实力的热门词汇。从闭源到开源,从低调发展,到今年三月国家将“开源”写入十四五规划,这一年,我们共同见证了开源的历史时刻。毋庸置疑,开源正在加速成为中国未来技术发展的关键路径,而开源的发展和生态繁荣离不开多方力量(个人、企业、组织、高校等)的共同参与,一直以来,“Upstream First”被认为是参与开源的正确方式。
什么是Upstream?
Upstream(上游)这个术语通常指数据流,对应的是Downstream(下游)。对于开源项目来说,Upstream指开源参与者贡献开源项目以及此项目版本发布的地方。参与者在Upstream做贡献(功能特性、缺陷修复、决策制定等),最后流向(分发)Downstream,为用户所用。
为什么Upstream First很重要?
Upstream是开源项目贡献者共同协作的地方,功能特性的添加、缺陷的修复、相关决策的制定都发生在上游,其重要性不言而喻。Upstream First可以:
1、降低成本
如果采用Upstream First的模式,积极与Upstream进行沟通,将功能特性都贡献进Upstream,不管后续如何迭代发布,版本中都会包含有自己想要的功能特性。这就省去了维护臃肿的Downstream的成本。
2、保证软件供应链安全
软件安全攻击在近些年已经发生了转变,从对既有漏洞集中攻击的传统软件攻击转变为了软件供应链攻击,也就是说攻击开始向着Upstream转移。如果所有的贡献都在上游,缺陷、漏洞、补丁都发生在Upstream,只要Upstream的安全性能够得到保证,Downstream的安全性也将得到足够的保障。Upstream和Downstream的有效协同,将构建起软件供应链的安全屏障。
3、助力良好开源文化的构建
Upstream First一直是众多优秀开源项目践行的开源参与方式。坚持Upstream First的理念,有助于构建良好的开源文化,培养更多的开源人才,让个人、企业或组织从开源这种协作创新中获益。从而推动整个开源的良好发展。
极狐(GitLab):Upstream First的践行者
极狐(GitLab)研发团队从2021年初开始组建,虽然成立时间不长,团队规模也不大,但我们对GitLab上游社区的代码贡献量已经取得了非常不错的进展。以最近的一次GitLab release(GitLab14.5,发布时间为2021年11月22日)为例,GitLab上游社区总计有 201 个来自社区贡献者的代码合并请求(Merge Request)被成功合并,如下图所示:
而在这个release中,有40个来自极狐(GitLab)研发团队,如下图所示:
由此可知,在GitLab14.5 release中,极狐(GitLab)的代码贡献量占到了社区总贡献量的20%。另外,在下图中我们可以看到各大公司对GitLab14.5所做出的代码贡献量(极狐(GitLab)暂未被统计在其中),图中显示的第二名,其代码合并请求数为10个,远低于极狐(GitLab)的40,据此我们可以推断在最近的GitLab release中,极狐(GitLab)研发团队对GitLab的代码贡献量已仅次于GitLab Inc. 达到了全球第二位。
另外,有两位来自极狐(GitLab)研发团队的工程师进入了个人贡献者榜单的Top 10,其中曹宝栋以16次代码合并请求位于榜单的第二位。数据来源同上图。