10.7.0 作为预览版发布

现在是时候尝试 MariaDB Server 10.7 的新候选功能了,这是 MariaDB 的下一个发布系列!这篇博客介绍了新的预览版是如何工作的,以及作为 MariaDB 用户,我们需要您在哪里提供帮助。
挑战:让 MariaDB 更快成熟
还记得我两周前描述的挑战和愿景吗?为了解决这些问题,我们启动了一项实验,通过并行发布 MariaDB Server 10.7 功能的多个预览版来实现。
这应该能解决博客中提到的两个挑战:让用户尽早体验新功能,以及通过密集的内部测试让发布版本更快成熟。请继续阅读。
MariaDB 10.7 功能的提前截止日期
为了验证我们的假设,我们为 MariaDB Server 10.7 功能设定了一个提前的截止日期。虽然正常的 MariaDB 10.7 完整版本计划像往常一样在 10 月底发布,但功能提交的截止日期是 2021 年 9 月 15 日星期三。截至此时,任何希望成为 MariaDB 10.7 候选的功能都必须交付并通过基本的质量保证检查。
MariaDB 10.7 的候选功能
截至该截止日期,有九项功能通过了测试。它们按 MDEV 编号排序,并包含其描述:
- MDEV-4742 字符串自然排序函数
- MDEV-4958 UUID 数据类型
- MDEV-9245 密码重用预防插件
- MDEV-12933 压缩提供程序插件
- MDEV-21130 使用 JSON 作为磁盘格式,实现更精确的直方图
- MDEV-26519 JSON 直方图:改进直方图收集
- MDEV-22165 将 TABLE 转换为 PARTITION,以及
- MDEV-22166 将 PARTITION 转换为 TABLE
- MDEV-25015 MariaDB 查询中字符串的自定义格式化
以及许多较小的功能。如果您问我,这是三个月工作的一个不错的成果集合!
“哦,那么所有这些功能都包含在 10.7.0 中了吗?”,您可能会问。是,也不是。这就是事情变得棘手的地方。让我解释一下。
为不同功能提供独立的二进制文件
与您在 10.6.0-alpha、10.5.0-alpha 和早期版本中访问 MariaDB 功能的方式相比,访问 MariaDB 10.7.0-preview 功能的方式存在显著差异。
我们在这里进行的实验是让您在所有功能合并到一个发布版本之前试用它们。这意味着每个功能都有其独立的二进制软件包。如果您想测试类似 Python 的 sformat 函数,请下载 10.7.0-mdev-25015-sformat
二进制文件。对于 UUID,请使用 10.7.0-mdev-4958-uuid
二进制文件。
给最终用户增加了更多工作?
“但是等等,作为 MariaDB 用户,这对我来说工作量更大了!”,您可能会说。“为什么不能像以前那样,把它们都放在一个发布版本里呢?”。
您说得对:如果您对多个功能感兴趣,这可能会增加您一点工作量。但这事出有因——通过对功能预览版提供反馈,您可以确保该功能按照您想要的方式定型,并在最终发布版本中按照您需要的方式工作。
以前不是这样的。我们非常重视向后兼容性,不能更改已发布功能的行为,因为它可能会对已经依赖该功能的用户产生不利影响。对于预览版则没有这些顾虑,所以现在是您提出意见的最佳时机,以便您的反馈能够立即生效。
您的角色:验证功能是否符合您的期望
这就是您发挥作用的地方:检查 10.7.0 是否包含您需要的功能(我已在这篇博客顶部列出了所有功能)。下载您感兴趣的预览版,然后试用一下!这次预览是您确保所需功能真正实现您期望效果的机会。
在 10.7.0 的下载页面上,您将只看到 Linux (x86-64 bintar) 和源代码格式。与早期版本(以及计划于 10 月底发布的 10.7.1)不同,您必须在下拉菜单中选择您需要的功能

如您所见,功能列表和下载包之间并不是完全一一对应,例如两个“CONVERT”功能在同一个包中,还有一个“misc features”包包含其余的杂项功能。但我相信您应该明白其要点。
未来几天将更容易访问
我们正在努力让这些功能以其他格式更容易访问:Docker 镜像和 binder 预览。未来几天还将有关于各个功能的博客文章。
现在将会发生什么
从今天开始,将有大约六周的密集测试。由内部人员和您,我们的用户进行。
通过测试关卡的功能随后将合并到 MariaDB Server 10.7.1 中。
从 10.7.1 开始,我们不打算添加或更改功能。这就是为什么我们现在依赖您,作为 MariaDB Server 的用户,来使用我们提供的早期访问权,并告诉我们候选功能是否应该合并到 10.7.1 中。
期待从预览模型中获得经验!
附录 A:链接
- 下载 MariaDB 10.7.0: https://mariadb.org.cn/download/?tab=mariadb&release=10.7.0&product=mariadb
- 发布说明: https://mariadb.com/kb/en/mariadb-1070-release-notes/
附录 B:改进开发流程
好的,我承诺解释一下为什么我们认为预览模型对 MariaDB 用户有益。
我们相信预览模型的原因有两点:它消除了发布前合并过程中的拥堵麻烦。而且它能防止“坏苹果”腐烂整个篮子,意思是:如果一个或多个功能出现严重问题,该功能就不会进入 10.7.1,这是 10.7 的第一个“正常”发布版本。
这意味着还有一个次要的截止日期,届时我们的测试人员必须为每个待合并的功能盖上批准印章。取消合并一个功能几乎是愚蠢的,那么除非您对某个功能充满信心,为什么要合并呢?
让我强调一下 Challenges and visions 博客中的两个段落,都与让发布版本更快成熟有关。第一个是关于内部测试的:
但或许可以通过在第一个发布版本之前进行密集的内部测试来稍微压缩时间。理想情况下,密集的定向测试可以让我们跳过早期的成熟阶段,在几天或几周内发现那些 bug,而不是几个月。
第二个是关于早期用户访问的:
[..] 只有用户才能判断我们的设计是否正确。提供新功能的早期访问权对于发现和纠正那些内部测试无法找到的问题至关重要。
这些是我们现在正在验证的假设。
如果新版本的发布周期缩短,那么未来这么多版本将支持多久?随着需要考虑更多版本,升级路径的工作量会增加吗?
10.7.0 版本完全没有“支持”。它们将合并到 10.7.1,这是一个版本,而 10.7.1 的行为类似于 10.6.0、10.6.1 等。这回答了您的问题吗?
我只是担心(曾担心)未来会有很多版本,比如 10.8、10.9、11、12、13,就像许多其他项目一样。