开发者入门
知识库中的贡献代码页面详细介绍了处理 MariaDB 源代码涉及的许多实际步骤。请参阅 JIRA 上的此页面,了解对新手友好的任务,以及此页面,了解更多信息。
重要的是您使用与其他开发者相同的工具,并以相同的方式提交补丁,以确保开发顺利进行。
使用 git 和 GitHub
所有 MariaDB 代码均使用 git 进行开发和维护。使用 GitHub 是可选的,但由于 GitHub 上的拉取请求流程,它使得贡献变得非常容易,并且您的贡献将显示在您的 GitHub 个人资料中。以下是直接适用于 GitHub 用户的说明
- 打开页面 https://github.com/mariadb/server 并点击“Fork”以创建您自己的开发分支。
- 克隆您自己的分支到您的本地计算机:
git clone --depth=50 --branch=10.6 https://github.com/YOUR-USERNAME/server
(完整的仓库大小远超 1 GB,因此限制 git clone 的范围将显著减少下载量。) - 创建您的功能或错误修复分支,例如:
git checkout -b fix-macosx-build
- 编写代码。创建测试用例以匹配您的新代码。确保一切构建正常且测试套件通过。
- 运行 git commit 和 git push 到您的 GitHub 分支。在 GitHub 上打开一个拉取请求。尝试为每组逻辑更改创建一个提交和一个拉取请求。
选择正确的分支
与其他一些相关项目不同,在 MariaDB 中,所有开发都是公开的,任何开发者完成的每一次提交都实时对全世界可见,以便在此基础上进行构建。
新功能的开发在“main”分支上进行,这是在 GitHub 上查看时的默认分支。任何重构工作也进入“main”分支。而错误修复的开发则在仍然支持的最老的受影响分支中进行。我们将错误修复向上合并到更新的分支。
如果一个补丁非常安全和/或非常有用,我们愿意将其推送到稳定代码中(只要它不会破坏任何现有应用程序)。我们愿意这样做是为了确保在稳定版本中自由添加小的、必要的修复,这样用户就不必等一年才能添加对其业务至关重要的东西。
MariaDB 基金会保证每一个拉取请求都会被审查
我们对提交的代码审查非常响应及时,一旦审查完成,提交的代码就会合并到现有的 MariaDB 代码树中,并供所有人使用。代码审查由 MariaDB 核心开发团队执行,我们的审查质量、细节和及时性比您在其他地方找到的更好。
对开发者的期望
并非任何一段代码都能被 MariaDB 接受。通常,我们期望您贡献的任何代码做到
- 友好、模块化、高性能、易于阅读,并被认为没有 bug。
- 至少由一名 maria-captain properly review。
- 遵循 MariaDB 编码标准。
- 不包含我们已有的重复代码/功能。
- 为 MariaDB 提供新的有价值的补充,使大量用户受益。
- 不破坏旧 MySQL/MariaDB 用户的任何东西。
- 不阻止任何人实现另一个重要功能。
就个人而言,我们期望您
- 遵循Ubuntu 行为准则
- 通过我们的 Launchpad 列表(选择最合适的列表)参与电子邮件讨论
- 保持积极、高效、轻松的态度。开发者暂时优雅地离开以确保真正的生产力在我们社区中始终被理解。重点在于优雅。
- 与maria-captains合作以获得您的代码批准。
- 将您批准的代码提交给审查您的 captain 或电子邮件列表,以便纳入 MariaDB。
- 对您提交的代码负责,并与其他的代码所有者作为一个有凝聚力的整体进行互动。这意味着您应该
- 修复您的代码中的 bug
- 审查、批准或应用其他人提交给您,且涉及您的代码的版本。
- 对希望讨论您的代码的人保持可及。
- 帮助将您的代码从一个 MariaDB 版本升级到下一个。
如果您无法或不愿意遵循上述期望,那么 maria-captains,或者最终由 MariaDB 基金会,将寻找其他人来合作维护您的代码。
如果您是活跃的贡献者,您可以成为maria-captains的成员,即使您不是为 MariaDB 基金会或 MariaDB Corporation 工作。所有 captain 拥有与其他任何 captain 接受和拒绝补丁相同的权利。我们的开发模式对所有人都是真正开放的。
代码许可
与其他开源项目类似,MariaDB 基金会需要对包含在 MariaDB 发布版本中的代码拥有共享所有权。这可以通过在BSD-new许可下提交您的代码来完成。目前唯一已知的例外是存储引擎和通过插件加载的代码。对于这些,代码是 GPL 即可。
如果您想在BSD-new以外的许可下提交代码,请签署并发送MariaDB 贡献者协议至指定邮箱。
开发者在哪里?
- 大多数核心开发者聚集在Zulip和 freenode 的 #maria 频道上IRC
- 代码、提案和功能请求被发送到(并在其上讨论)maria-developers 列表。
- MariaDB 基金会还定期举办开发者可在 Zulip 和 IRC 上协助新贡献者的时间段。请参阅新 MariaDB 贡献者实时问答。
另请参阅
- 获取代码、构建和测试
- 为 MariaDB Server 编写好的测试用例
- 提交拉取请求
- 贡献代码 (MariaDB 知识库)