补丁编写者指南

以下是一些来自 Matz 的关于如何让你的补丁被考虑的建议。

这些指南改编自 Matz 在 Ruby-Core 邮件列表上的帖子

  • 每个补丁实现一个修改

    这是大多数被延迟的补丁的最大问题。当你提交一个补丁,同时修复多个错误(并添加功能)时,我们必须在应用它之前将它们分开。对于我们这些忙碌的开发人员来说,这是一个相当艰巨的任务,所以这种补丁往往会被延迟。请不要提交大的补丁。

  • 提供描述

    有时,仅仅一个补丁并不能充分描述它所修复的问题。更好的描述(它修复的问题、前提条件、平台等)有助于补丁更早地合并。

  • 对比最新版本

    你的问题可能已经在最新版本中修复了。或者现在的代码可能完全不同了。在提交补丁之前,请尝试从 Subversion 仓库中获取最新版本(最新的开发版本使用 trunk 分支,2.6 版本使用 ruby_2_6 分支)。

  • 使用 diff -u

    我们更喜欢 diff -u 风格的统一差异补丁,而不是 diff -c 或任何其他风格的补丁。它们更容易审查。请不要发送修改过的文件,我们不想自己进行差异比较。

  • 提供测试用例(可选)

    提供测试用例的补丁(最好是 test/*/test_*.rb 的补丁)将帮助我们理解补丁和你的意图。

我们将来可能会转向 Git 风格的推送/拉取工作流程。但在那之前,遵循上述指南将有助于你避免挫败感。