MariaDB Server 默认分支为“main”

我们最近进行了一次公开投票,讨论是应该将“main”分支还是版本分支设为默认。投票结果非常明确,支持“main”分支。虽然才过去一个多月,但我们一直在幕后为此做准备。

我们认为我们已经做好了充分的准备,因此随着 11.7 版本的开发开启,我们已将“main”设置为 MariaDB Server 的默认分支。这意味着今后所有新的特性开发都应以“main”分支为目标进行贡献。

MariaDB Server GitHub 分支:迁移到“main”

两周前,也就是 7 月 3 日,我创建了一项投票,询问 MariaDB Server 特性开发分支的未来方向。具体来说,就是我们是否应该转向滚动更新模式,这种模式对于 GitHub 等服务的用户来说更为熟悉。

我们收到的投票结果非常明确。今天我将分享我们得出的结论,并说明接下来的计划和预期。

回顾:“main”分支到底是什么?

在滚动更新模式中,代码库的主分支(通常称为“main”)是所有特性提交的汇集地,在准备重大版本发布时,会从此分支派生出新的分支。

MariaDB Server GitHub 分支:请您发表意见

目前世界上许多国家正在举行选举,事实上,我自己的国家明天就要进行选举。MariaDB 基金会也在此请求您在我们自己的“公投”中投下您宝贵的一票。

我们最近收到了一位社区成员的请求,希望改变我们在 GitHub 的使用方式,理论上这将使社区贡献者更加方便。我将解释目前的情况、提案以及随后的投票。

当前情况

目前,如果您想为 MariaDB Server 开发新特性,需要在最新的版本分支上进行开发,这也是您在 GitHub 上查看时的默认分支。

改进开源项目中对 MariaDB 的支持

作为 MariaDB 推广工作的一部分,我们一直致力于在开源项目中加强对 MariaDB 的支持。

我们关注的开源项目包括一些知名且随时可用的项目,如 WordPress 或 MediaWiki(维基百科的运行平台),也包括像 ORM 这样用于连接软件和数据库的底层解决方案,它们支撑着无数其他开源和私有项目。

MariaDB 实际上是许多项目和用户正在使用的标准。随着 MariaDB 与 MySQL 分道扬镳,沿着自己的道路成熟发展,尤其是在后续版本中,简单地用“MariaDB 是 MySQL 的直接替代品——这大家都知道”来回避兼容性问题已经不够了。

MariaDB 11.6 的生命周期开始

我们通常会宣布版本的发布和结束生命周期,但今天我们将尝试一些不同的事情,即宣布“生命周期开始”。

这意味着什么?

我们使用 GitHub 的方式与大多数项目略有不同。MariaDB Server 不是拥有一个主线分支并从中派生版本,而是从上一版本创建新的分支。这本应在上一版本的预览版发布后不久发生,但由于各种原因可能会稍晚一些。因此,默认情况下,在假定的 11.7.0 版本发布后不久,我们将在 GitHub 中创建 11.8 分支。

处理 Pull Request 的进展

在 Kaj Arnö(MariaDB 基金会首席执行官)五月发表的博客文章“关于贡献、自豪与傲慢”中,他提到了再次重点关注 MariaDB Server 的 pull request。及时处理社区提交的 pull request 是我们使命的关键部分,但我们一直落后于进度,并因此受到了合理的批评。在该文章发表时,有 167 个未处理的 pull request,其中许多已经积压了太长时间,贡献者对此感到沮丧。

我们设定了两个最终目标

  • 减少积压的未处理 pull request
  • 激励贡献者做出更多贡献

从那时起,贡献量没有显著增加,但在减少未处理 pull request 的数量方面,我们取得了良好的进展。…

关于贡献、自豪与傲慢

在 MariaDB 基金会,我们为 MariaDB Server 获得大量贡献感到自豪。但我们不想因此而自满,所以在此更新一下我们的现状以及我们想要实现的目标。

首先,我们在多个场合表达了我们对贡献的自豪。在 2019 年 2 月 15 日,我发布了如下推文:

重申:在代码贡献方面,#MariaDB 以 1009 对 247 击败了 #MySQL:我们在 GitHub 上有超过一千(1009)个已关闭的 pull request(以及 179 个未处理的),MySQL 有 247 个已关闭的(1 个未处理的)。

在我们的 2018 年度报告中,我们花了数页篇幅讨论 pull request 和补丁,展示了代码贡献统计数据。…

受保护的分支 – 确保 Git 中的代码质量

为了确保新的(或修改后的)代码不会破坏任何东西,我们运行了一套广泛的测试套件,用于在 MariaDB Server 开发过程中捕获回归错误。开发人员需要在本地运行测试套件,并将代码推送到远程仓库后,还要检查在 Travis CI 和尤其是 Buildbot 上运行的更广泛的测试也没有发现任何回归错误。然而,有时开发人员会草率行事、犯错、不检查测试结果,急于将代码更改推送到主分支,然后从那时起,测试套件就会对其他人报错。…