贡献心愿单

您想为 MariaDB Server 的代码库、功能集和质量做出贡献吗?以下是您可以提供帮助的方式——换句话说,这是我们的贡献心愿单。

解决自身痛点

关于代码贡献的假设通常是,代码贡献者根据自身的需要来扩展产品,而这些需要又与其他用户的需求接近。“解决自身痛点”是一个常用的说法。

有些痛点更有益于大众

话虽如此,我们也曾接触过一些潜在的贡献者,他们采取了更通用的方法。个人贡献者的痛点可能是需要在就业市场上展示一套技能和创造价值的能力。另一类则是 MariaDB Server 的受益者,他们希望回馈 MariaDB Server 社区,例如云服务提供商。

请求的功能心愿单已列在 Jira 中

无论您属于哪一类,Jira 都是一个不错的去处。Jira 是我们用来记录社区心愿和开发者想法的任务管理系统。功能请求最好由社区成员直接提交,并在公共场合展示,供所有社区成员查看和投票。查看关注量或投票数最多的 Jira 条目列表,您会看到一份很棒的贡献心愿单。

我们也希望修复 bug

除了功能请求,一些bug也属于心愿单。它们也在 Jira 中公开管理。bug 可能在版本、平台、配置、用例和星体对齐的奇怪组合中发生。星体对齐指的是那些无疑存在但难以重现的案例。如果您的 bug 修复扩展了用例数量,或者使得一个通用 bug 可以重现,那么它就在我们的心愿单上。有些 bug 很少发生,但我们希望所有 bug 都能得到修复。同样,Jira 上的关注者和投票排名很好地汇总了最需要的 bug 修复。

审查他人的代码可能会加速贡献

我们的心愿不仅限于功能请求和 bug。有时,关键资源是审查。曾发生过拉取请求(可能是随时可用的贡献)需要等待相当长时间才能得到评估并进入代码库的情况。自从我们的模板要求贡献者提供基本问题的答案——“您的代码尝试做什么?”,也就是“代码旨在解决什么问题?”——情况已经有所改善,现在的审查更容易组织。另一个改进是我们聘请了 Andrew Hutchings 作为首席贡献官 (Chief Contribution Officer)。社区中的资深开发者仍然可以通过对尚未审查的拉取请求进行第一层审查来做出贡献,保持进展,并为特定代码领域的专家审查员铺平道路。

顺便提一下,如果您进行代码审查:请阅读 Sage Sharp 于 2014 年撰写的博客文章  补丁审查的温柔艺术。这篇文章由我们的主席 Eric Herman 推荐,现在已成为我们许多人的最爱。

普遍可接受的贡献指南

除了确保开始的任务符合贡献者的技能水平和可用时间外,我们还提供一些总体原则。普遍可接受的贡献应满足:

  • 实现 SQL 标准特性
  • 实现其他数据库产品中存在的扩展功能,但与服务器现有实现不兼容的除外
  • 确保向后兼容性
  • 改进云兼容性
  • 集成 systemd 和 Windows 的服务管理器
  • 利用更新更好的内核接口
  • 澄清错误消息
  • 提高性能
  • 增强在不同操作系统和硬件上的跨平台支持

希望您能与三位火枪手互动

仍然不清楚如何理解我们的心愿?一个关键的心愿是希望您在贡献方面设定我们的期望。这也适用于您自己提出功能建议的情况。我们不会过度形式化流程,但我们鼓励您在投入大量精力到项目之前Andrew Hutchings(我们的首席贡献官)、Daniel Black(我们的首席创新官)或 Vicentiu Ciorbaru(我们的首席开发官)取得联系。与这三位火枪手中的任何一位交谈!他们将为您提供指导,并确保他们在任一方面做出的承诺都得到其他两位火枪手的理解。  

一个具体的列表

所有这些听起来都太抽象了吗?这里有一些具体的愿望供您参考:

  1. MDEV-28849 I_S 表没有说明存储函数是聚合函数
  2. MDEV-28672 几个服务器选项/设置在 SQL 级别仍然不可见
  3. MDEV-5813 几何功能增强 (注意:这项比较有挑战性)
  4. MDEV-18188 在 InnoDB 中维护持久性的 COUNT(*) (注意:请查看 pr #1411 结尾处非常具体的评论)
  5. MDEV-11829 请添加对带时区日期时间字面量 (ISO6801) 的支持
  6. MDEV-15854 实现 uuid_to_bin, bin_to_uuid 和 is_uuid 函数 (注意:需要与 Sergei Golubchik 沟通并获得批准,因为现在已有 UUID 类型;已有两个拉取请求被拒绝)
  7. MDEV-10658 在 MariaDB 中支持 TLS SNI
  8. 根据投票数排序的 Jira 新手友好问题列表中的任何一项

心愿不总是代码贡献

最后,并非所有贡献都是代码贡献。您可以通过以下方式做出贡献: 

  • 提交错误报告,
  • 性能测试,
  • 文档 (知识库编辑), 
  • 翻译,
  • 博客文章, 
  • Stack Overflow 回答, 
  • 在他人遇到困难时提供帮助的其他方式 (Zulip, IRC, Slack 等)。

但这超出了本篇博客文章的范围。我们肯定会再次讨论其他的愿望清单

我们代表 MariaDB Server 用户社区,希望我们的心愿都能实现。