生成 MariaDB 指标

对于 MariaDB 基金会来说,“开放性”对我们非常重要。这不仅体现在 MariaDB 的开源性质上,我们也对 MariaDB 源代码的进展非常透明。考虑到这一点,我们一直在努力寻找生成指标的方法,以易于理解的形式展示有关社区的信息。

就像我们所做的一切一样,生成这些指标的脚本完全向公众开放,以便接受审查并接受改进的拉取请求。总体思路是,这些脚本将从各种来源(例如 GitHub)获取信息,并提供 CSV 文件,这些文件可以导入到任何地方(甚至是 MariaDB 数据库),并用于生成所需的任何报告。我们还将根据这些数据生成公开报告。

拉取请求指标

所有脚本都存放在 GitHub 仓库 (https://github.com/MariaDB/metrics) 中,您可以根据需要查看、修改和使用。目前有两套脚本。第一套位于“pull-requests”目录中。它通过 GitHub REST API 获取 MariaDB 服务器每周的开放/关闭拉取请求数量的详细信息。

它生成的 CSV 输出如下所示

Week Ending,New PRs,Closed PRs,Merged PRs,Total PRs,Still Open PRs
2022-01-09,3,1,4,1973,80
2022-01-16,3,1,1,1976,81
2022-01-23,9,6,4,1985,80
2022-01-30,6,7,2,1991,77

接着,我们可以将这些数据导入到像 matplotlib 这样的图表或可视化工具中,获得视觉表示。通过这些数据,我们可以看到趋势,例如这张图显示不幸的是,我们目前的开放拉取请求数量相当高。

2022 年至今的开放 PR 计数

我的部分工作是降低这个数字,但这不会一蹴而就。我不会去处理每一个陈旧的拉取请求并立即关闭它们。我宁愿与贡献者和 MariaDB 工程师合作,就每个拉取请求达成解决方案。但是,像这样的可视化有助于我们衡量自己在这方面和其他方面的表现,以便我们可以采取适当的行动。

提交指标

除此之外,我们还有一个“commits”目录,它使用一个现有的开源工具 Gitdm (Git 数据挖掘工具) 来深入研究 git 历史并生成报告。Gitdm 最初设计用于分析 Linux 内核 git 树,因此我们对其进行了一些修改,使其生成的报告对我们更有用,但总体而言,它开箱即可获得良好的结果。

Gitdm 使用一组基本的配置文件来帮助识别贡献者的隶属关系,尤其是在 git 日志中的电子邮件地址不易识别时。此处使用的工具输出的是在给定时间段内的个人贡献者数量和组织数量的 CSV 文件。它同时还生成人类可读的文本表示。

这使得我们可以将组织输出的 CSV 转换为如下所示

Name,Commits,Lines Added,Lines Removed
"Amazon",27,985,338
"MariaDB Corporation",3218,793570,297867
"Atos",1,12,1
"Codership",75,16857,6308

变成这样的图表

可视化想法

我们的 CEO Kaj 根据 George Voronoy 的工作,正在从数据中创建一些非常有趣的可视化图表。例如,这张图显示了顶部的贡献组织,底部是 MariaDB Corporation 贡献者的任期长度以及个人贡献者的表示。颜色越深,提交中删除的行与添加的行的比例越高。

随着时间的推移,我们将尽可能多地实现自动化,从更多来源生成数据,并使生成的数据易于获取,而不仅仅是生成数据的脚本。

作为 2022 年 5 月 MariaDB 基金会董事会会议的一部分,要求之一是将贡献细分为以下类别:“a) 财务赞助商,b) 非赞助商,c) 基金会员工”。在撰写本文时,我们尚未完全自动化这种细分,但我们创建了另一个可视化图表,手动添加了类别,展示了这类分类可能的样子。

我们也非常有兴趣了解您希望看到哪些有关 MariaDB 代码和社区的数据被可视化,以及您希望看到贡献者属于哪种分组/类别。这让我想到了…

我们需要您的帮助

多年来我经常说这句话,对于这个角色来说,这句话可能更加适用,“贡献不仅仅是代码”。试用软件并提供反馈或错误报告是一种贡献,帮助社区问题也算作贡献,很多事情都属于这个范畴。

对于这个项目,我们需要您的帮助来确定贡献者为其做出贡献的组织。MariaDB 基金会中的一些人已经尝试过,但我们认为有相当多的人是为各种实体工作,而不是作为独立贡献者。

如果您能查看 我们 gitdm 配置中的“employers”文件,并对您发现的任何错误提出拉取请求,这将极大地帮助我们生成更准确的数据。

发布者:Andrew Hutchings

MariaDB 基金会首席贡献官