MariaDB 贡献统计,2023年10月

我们已经进入了十月,这意味着距离上一次指标报告已经过去了 4 个月。因此,又到了发布季度指标报告(外加一点内容)的时候了。额外的一个月是为了进行一项公告,这是本文的前提,同时也意味着我们基本与实际季度保持一致了。报告的主要变化将在本文后半部分出现,我们新增了大量关于拉取请求的数据。话不多说,让我们开始吧。

更新流程

在我们深入了解统计数据本身之前,我想稍微详细说明一下我用于更新统计数据的流程。所用的一切都位于公共指标仓库中。

我做的第一件事是运行 generate_3+year.sh 脚本来生成临时的 CSV 输出。然后我分析这些 CSV 文件,找出需要更新配置的地方。CSV 输出将包含它无法识别的人员的电子邮件地址。我会尽我所能查找这些人是谁。如果他们是已有的贡献者,但这一个新的电子邮件地址(例如 GitHub 自动生成的),他们会被添加到“别名”列表中。如果他们是新的贡献者,我会尝试确定他们的所属机构,并相应地添加到“雇主”列表中(这个列表未来应该改名)。

我还会多次深入分析 CSV 文件,尝试查找错误并相应调整配置。有些东西我可能会遗漏,有些人我可能无法正确识别。但这已经是尽我所能做到的准确度了。配置是公开的,欢迎对我的遗漏之处进行贡献修复。

最后,我会重新运行脚本以便生成这份报告。

拉取请求的统计数据相对容易,只需要一个 GitHub token 就可以执行。由于 GitHub API 的速率限制,执行需要一些时间,但这次我优化了流程以加速执行。这是必要的,因为随着收集到的新指标,我们发出的 API 调用显著增多。

GSoC 季节

对于那些还不了解的人来说,我们正处于 Google Summer of Code (GSoC) 主要开发期的末尾。这是一个 Google 支付贡献者在夏季(至少是北半球的夏季)为一个项目工作的计划。传统上,这只针对大学生,但今年向所有人开放。

这意味着因此而产生的一些优秀贡献已开始集成到代码树中。尤其是,一个大型拉取请求将 MariaDB 中的 RocksDB 更新到了最新版本(已合并到 11.3)。今年,在所有被监控的项目中,GSoC 开发者总共新增了 13,636 行代码,删除了 4,164 行代码。

不幸的是,由于一个无法在 11.3 达到预览版发布之前修复的回归问题,RocksDB 更新不得不回滚。但我们有信心将来能够将其重新引入。

Amazon 赞助

正如您在我们最近的新闻中可能看到的,亚马逊已成为 MariaDB 基金会的赞助商,因此他们在数据中被移至“赞助商”类别。由于目前类别没有日期范围,这一变化将应用于此数据快照版本中所有年份的数据。而个人贡献者的所属机构是按日期范围跟踪的。

项目跟踪

与上个月一样,我将提供每个项目的 MariaDB Plc / Foundation 贡献和外部贡献的摘要。这些项目包括:

  • MariaDB Server – 服务器本身
  • libmarias3 – 一个用于与 Amazon S3 及相关块存储服务交互的开源库。由 MariaDB Plc. 维护,用于 Aria 的 S3 存储和 MariaDB ColumnStore
  • MariaDB ColumnStore – 一个基于列的集群存储引擎,用于 MariaDB Server。由 MariaDB Plc. 维护。
  • MariaDB Docker – MariaDB Server 的官方 Docker 镜像文件。由 MariaDB 基金会维护。
  • MariaDB Jupyter Kernel – 一个用于 MariaDB Server 的 Jupyter Notebook 插件。由 MariaDB 基金会维护。
  • MariaDB Connector/C – MariaDB Server 的 C 客户端库。由 MariaDB Plc. 维护。

与上次相比,MariaDB Server 和 MariaDB ColumnStore Engine 的提交数量增加了约 50%。其他项目的开发速度稍慢。

项目Hackers MariaDBCommits MariaDBHackers OthersCommits Others
MariaDB Server37138951160
libmarias33411
MariaDB ColumnStore Engine16231711
MariaDB Docker27028
MariaDB Jupyter Kernel21224
MariaDB Connector/C888----
来自 MariaDB Plc. + MariaDB Foundation 和其他所有人的 Hackers 和提交

请注意,由于我没有注意到一位开发者使用了多个电子邮件地址,上次的 MariaDB ColumnStore Engine 统计数据将同一个人计算了两次。为了撰写这篇博文,gitdm 配置已调整以考虑此情况。

新贡献者

正如前面提到的,本次我们有一些新的 GSoC 贡献者。此外,Homebrew 项目的 Ruoyu Zhong 也贡献了一些修复,以确保 MariaDB 能继续良好地与 Homebrew 一起编译。我们感谢您的工作。

这也意味着 Homebrew 已被添加到统计数据的“Distros”类别中。

数据对比

让我们对比一下 MariaDB Server 三个月前和今天的贡献统计数据。

类别实体2023年6月
贡献者
2023年6月
提交数
2023年10月
贡献者
2023年10月
提交数
MRDBMariaDB Plc.25706301213
MRDFMariaDB Foundation71267176
提供商Codership636648
赞助Amazon11331443
GSoCGSoC1112
发行版所有发行版3357
其他其他人176532109
总计70970881549
MariaDB Server 贡献指标对比 2023年6月至2023年10月的统计数据

备注

  1. 红帽在被 IBM 收购后处于灰色地带。在这个矩阵中,我们将其置于“发行版”类别下,与 IBM 和“赞助商”分开。
  2. “赞助商”和“提供商”类别中有更多实体,但为了简化,在本表中已将其与独立贡献者一起归入“其他”类别。
  3. 提交数不总是能说明全貌,一次提交可能包含一行代码,也可能包含数千行。

拉取请求

本次有趣的部分就在这里。正如之前的一篇博客文章所述,我们现在会生成关于首次有意义响应时间的统计数据。这意味着我们现在有以下统计数据:

  • 新 PRs:该周已打开的 PR 数量。
  • 草稿 PRs:该周新打开的 PR 中,有多少目前是草稿。
  • 已关闭 PRs:该周已关闭的 PR 数量(未合并)。
  • 已合并 PRs:该周已合并的 PR 数量。
  • 总 PRs:截至该周末,我们总共拥有的 PR 数量。
  • 仍开放 PRs:截至该周末,仍开放的 PR 总数(包括草稿)。
  • 首次响应天数:对于该周打开并已获得响应的 PR,获得首次有意义响应的平均天数。
  • 已响应的新 PRs:该周打开并已获得有意义响应的 PR 总数。
  • 作者自行合并(无评审)的 PRs:该周打开的 PR 中,由作者自行合并且未获得任何其他 MariaDB 团队成员评审的数量。
  • 作者自行关闭(无评审)的 PRs:该周打开的 PR 中,未获得任何有意义响应并由作者自行关闭的数量。

我将从 2023年6月的报告继续,但快照 CSV 文件包含截至目前的整年数据。我还将拉取请求计数和响应数据拆分为单独的表格,否则列数会过多。

截止周新 PRs草稿 PRs已关闭 PRs已合并 PRs总 PRs仍开放 PRs
2023-06-1871302661155
2023-06-2540042665155
2023-07-0250402670156
2023-07-0960152676156
2023-07-1680182684155
2023-07-23140462698159
2023-07-3070872705151
2023-08-0630232708149
2023-08-1370412715151
2023-08-2050322720151
2023-08-2770102727157
2023-09-0350142732157
2023-09-10101142743162
2023-09-17711352750151
2023-09-2490232759155
2023-10-0150612764153
拉取请求计数
截止周首次响应天数已响应的新 PRs未响应的新 PRs作者自行合并(无评审)的 PRs作者自行关闭(无评审)的 PRs
2023-06-181.54200
2023-06-2512.84000
2023-07-020.33110
2023-07-0917.45100
2023-07-1619.25210
2023-07-2326.85522
2023-07-304.33310
2023-08-069.73000
2023-08-1311.65101
2023-08-2011.54100
2023-08-2711.37000
2023-09-030.04010
2023-09-101.54311
2023-09-170.02400
2023-09-242.65301
2023-10-011.01400
拉取请求响应情况

第一个表格,我过去每次报告都会展示它,表明我们需要改进一些地方。第二个表格则为其增加了全新的维度。七月底,我开始努力推动最旧的拉取请求,以便它们能有所结果。这带来了关闭和合并数量的显著增长,但仍需要做更多工作。

至于响应数据,这里有一些有趣的信息。最大的危险信号是“作者自行合并(无评审)的 PRs”,这指的是作者在没有记录评审的情况下自行合并了代码。评审可能发生在 GitHub 之外,但那里没有记录。需要建立流程来避免这种情况发生。

上次更新报告

指标报告代码库中新增的另一项内容是需要关注的拉取请求报告。这是一个名为 report.py 的工具,下面是一个示例输出,显示了自上次有任何活动以来时间最长的五个拉取请求。这将是我优先处理以使其重新动起来的重点。

拉取请求自上次更新以来天数
16241065
16511012
1756922
1689795
1872706

下次

如果您希望看到任何新增内容,请告知我们。否则,我将在十二月带着更多指标回来!

发布者:Andrew Hutchings

MariaDB 基金会首席贡献官