向Drupal核心贡献补丁的正确过程是什么?
假设我在Drupal核心中发现了一个错误,对其进行了修复并创建了补丁。我该如何提交?
如果该错误位于Drupal 7中,是否还必须在Drupal 8中对其进行修复并提交两个补丁?这是否也适用于文档错误/改进?
所有补丁都还需要单元测试吗?
向Drupal核心贡献补丁的正确过程是什么?
假设我在Drupal核心中发现了一个错误,对其进行了修复并创建了补丁。我该如何提交?
如果该错误位于Drupal 7中,是否还必须在Drupal 8中对其进行修复并提交两个补丁?这是否也适用于文档错误/改进?
所有补丁都还需要单元测试吗?
Answers:
如果该错误位于Drupal 7中,是否还必须在Drupal 8中对其进行修复并提交两个补丁?
如果要开发的版本(在本例中为Drupal 8)和先前的版本(Drupal 7)中存在该错误,则应首先修复该错误以修复当前开发的版本,然后再修复先前的版本。
如果该错误在最新开发的版本中不存在,例如,由于该错误是针对已删除或已更改的功能的,则应在当前开发的版本之前为该版本提供补丁。
遵循的工作流程是:
您可以同时为两个Drupal版本创建补丁,但是由于最新的Drupal版本的补丁可能需要更改,因此,最好使用当前开发版本的补丁,而不要使用两个都需要修改的补丁。被改变。
另请参阅:反向移植政策。
这是否也适用于文档错误/改进?
是的,它确实。同样在这种情况下,如果当前开发的版本删除了文档所引用的功能/方法,则需要为先前版本提供补丁。
所有补丁都还需要单元测试吗?
如果该补丁用于文档,则不需要测试。在应用补丁之后,运行在http://qa.drupal.org上的测试bot会检查Drupal代码。如果修补程序引入语法错误(例如,因为注释在需要之前被关闭),则测试bot将在运行测试之前报告有关修补程序的错误。
如果补丁是针对新功能的,则需要进行测试。
如果补丁程序是为了修复错误,那么维护人员可能需要进行测试,如果还没有测试程序可以检查特定功能。为了避免在以后更改相同代码时再次引入相同的错误,通常需要进行测试。如果错误仅是已初始化的变量,但从未在函数/方法中使用过,则可能不需要进行测试。
drupal.org上的每个项目页面的顶部都有一个“版本控制”选项卡。它不仅概述了特定项目的所有代码存储库选项,而且还为项目量身定制了所有git命令示例。您甚至还可以交互式地将其更改为特定版本。
对于Drupal核心,您可以在http://drupal.org/project/drupal/git-instructions上找到该页面
然后,在创建补丁程序后,只需将补丁程序文件附加到一个说明补丁程序作用的问题上即可。
需要指出的两个重要事项是确保补丁以“ .patch”结尾,并将状态设置为“需要审查”。这样测试机器人可以注意到它并自动运行其测试。
新代码始终需要伴随测试。
请注意,可以通过项目将其关闭,有些则可以。对于Drupal核心,它是打开的,因此将测试所有补丁。
您可以在http://drupal.org/contribute/development中找到更多信息。