快速启动您的 Drupal 贡献之旅的终极指南

已发表: 2022-08-23

介绍

作为一个开源内容管理系统,Drupal 鼓励全球开发人员和用户社区以各种形式做出贡献。 它可以是代码形式,包括核心和贡献项目的补丁,以非代码方式包括营销、文档、活动组织或通过金钱支持项目。 本文将引导您了解从头开始您的 Drupal 代码贡献之旅所需了解的一切。

为什么要为 Drupal 做贡献

当然,回馈支持您的工作方式和可能每天生活的项目可能是您自愿贡献和改进开源项目的充分理由。 但是,如果您正在寻找更多贡献的动力,以下是我们已经看到的一些好处:

  • 您的贡献可帮助 Drupal 保持相关性并及时了解其所有依赖项随着时间的推移而发生的进步
  • 您可以获得有关 Drupal 的更多知识,这反过来将使您能够为您的客户构建更好的应用程序
  • 它为组织提供了竞争优势,因为他们的开发人员正在获得更多的技能和知识,并通过展示自己作为专家来贡献时间
  • 与与您有相同兴趣的人合作并会面

如何贡献

首先,在 drupal.org 上为您自己创建一个帐户,并使用所需的详细信息更新您的个人资料。

帐户创建

在 Drupal.org 上创建帐户

寻找问题

创建帐户后,下一步就是找到正确的问题。 它可能会根据您的兴趣而有所不同:

1. 您可以从问题队列中找到问题 - https://www.drupal.org/project/issues。 对于更具体的搜索,您可以单击“高级搜索”并使用过滤器。

  • 问题标签 - 问题附有不同的标签。 “新手”标签表示该问题需要一个简单的修复,任何初学者都可以选择它,“需要文档”标签表示该问题需要一些文档更改,等等。
  • 问题状态 - 创建问题后,它会经历不同的状态。 根据当前的问题状态,您可以决定下一步需要采取的步骤。
  • 问题优先级 - 它定义了问题的优先级,无论是严重错误还是次要修复。
  • 问题类别 - 它指示问题的类别,无论是错误,还是任务,或者可能是对项目的新功能请求。
  • 具体项目 - 在这里您可以直接指定您感兴趣的项目。
问题过滤器

问题过滤器

2. 或者从你一直感兴趣的项目开始,访问模块/主题/个人资料页面 - https://www.drupal.org/project/<project_name> 。 在右侧边栏中,查找“所有问题”链接 - https://www.drupal.org/project/issues/<project_name>?categories=All

3. 或处理您在核心中遇到的错误,或在处理项目时任何贡献的模块/主题/配置文件。 这也是贡献的正确方式。 即使在处理项目时,也应该始终练习保持他们的“贡献者模式”开启,这提供了探索和贡献解决隐藏问题的机会!

Drupal 问题的生命周期

一旦创建了一个问题,它就会经历不同的状态。 以下是您将遇到的不同问题状态:

  1. 活动- 创建新问题时,它处于活动状态。
  2. 需要审查- 当需要处理问题时,它处于需要工作状态。
  3. 需要工作- 一旦选择了问题,成功提交了补丁并且所有的测试用例都通过了,问题的状态应该更改为需要审查。
  4. 由社区审查和测试- 一旦任何贡献者审查了问题,该问题就会转移到“社区审查和测试” (RTBC) 状态,核心社区团队的一名成员会在该状态下审查问题。
  5. Fixed - 当问题从 RTBC 状态转移时,它会移至 Fixed 状态。
  6. Closed (fixed) - 在 Fixed 状态后,问题会在两周内自动变为 Closed (fixed)。 这是问题的最后状态。
  7. 已关闭(重复) - 当创建任何与之前任何问题重复的问题时,它会直接作为已关闭(重复)关闭。
  8. 已关闭(无法修复) - 此状态表示问题没有解决方案。
  9. 已关闭(按设计工作) - 此状态表示提出的问题正在提供应有的功能,因此转移到“按设计工作”。 换句话说,提出的问题不是错误,而是功能。
  10. 已关闭(无法重现) - 当问题不可重现时,将移至此状态。
  11. 已关闭(过时) - 当某个问题太旧而无法修复或在某个其他模块的问题中得到修复时,该问题的状态可以为已关闭(过时)。
  12. Patch (to be ported) - 当一个 Patch 被移植到 Drupal/Contributed 模块的其他版本时。
  13. 推迟- 当问题/功能/错误被作者/社区推迟并且不需要修复时。
  14. 推迟(维护者需要更多信息) - 当一个问题被提出,但根据贡献模块的维护者,需要更多关于该问题的信息来修复它。

创建问题

为模块创建问题。 转到模块https://www.drupal.org/project/issues/<project_name>?categories=All的问题队列,然后单击Create a new issue

发行幻灯片

下一步是提供需要创建的问题的详细信息。

同步

1. 标题:添加问题的标题。
2. 项目:项目名称将被自动选择。
3. 类别:选择项目的类别。 有5类

  1. 错误:错误是系统中的功能错误。 例如,php 错误、数据丢失、内存泄漏、不正确或误导性的文档、不正确或误导性的用户界面文本等。
  2. 任务:这些不是功能性错误,而是在发布之前“需要完成”。 例如重构代码以使其更具可读性和可维护性、添加自动化测试、将代码更新到新的 API、改进编码标准等。
  3. 功能请求:这是对要添加到模块的全新功能的请求。
  4. 支持请求:如果我们在模块的任何部分需要帮助或想了解 drupal 核心功能。 我们可以标记支持请求并添加问题。
  5. 计划:当您遇到无法使用一个问题解决的问题时,使用此标签。 计划问题通常会有多个与“子”问题相关的子步骤。

4. 优先级:选择问题的优先级。 这里我们有Critical、Major、Normal 和Minor。 除非真的很严重,否则选择正常。 或者您可以正常选择它,让维护者或审阅者可以根据需要更改它。

5. 状态:为新问题选择活动。
6. 版本:选择需要修复问题的项目版本。
7. 组件:选择最接近问题的匹配项。 这些可以稍后更改。 这里的组件是基于模块的。 选项因模块而异。
8. 已分配:问题可以分配给任何人。 它不是强制性的,可以稍后分配。
9. 标签:用适当的标签标记问题。 如果我们不了解问题标签,则可以将其留空。 这不是强制性的,可以稍后标记。
10. 问题摘要和关系:展开该字段,我们让编辑添加问题的详细信息。 编辑器中有一些预定义的标题,如果我们不希望它们出现在问题详细信息中,我们可以替换它们。

  1. 父问题:标记父问题。
  2. 相关问题:标记相关问题。

11. 文件:我们可以添加与问题相关的文件,也可以在创建文件的同时上传问题的补丁。 并保存问题。

保存问题后。 创建的问题将被添加到相应模块的问题队列中。

为 drupal 核心创建问题 https://www.drupal.org/node/add/project-issue/drupal 是链接。 步骤与在模块中创建问题相同。 但是有一些指南可以创建一个核心问题,这些问题将显示在上面的链接中。

Image removed.

这些是创建核心问题时要遵循的准则。

创建补丁

这里有2个案例

  1. 创建一个新补丁
  2. 更新现有补丁。

创建新补丁

  • 转到模块的版本控制选项卡。 https://www.drupal.org/project/ <project_name>/git-instructions是该页面的链接。
  • 选择要工作的分支,然后单击“显示”按钮。
图像同步

单击显示按钮将为您提供 git 命令,复制并在终端中运行该命令并将目录更改为克隆的模块。

  • 进行更改以解决问题。
  • 创建补丁的命令是:
git diff > <issue-description (optional)>-<issue-number>-<comment-number>.patch
移除核心

  1. 问题描述将是问题的标题,其中所有字母应为小写,空格必须用下划线填充。 这是可选的。
  2. 问题编号将在问题的 URL 中。 这对于命名补丁文件时必须的问题是独一无二的。
  3. 评论编号是补丁将被上传的最新评论 ID。
注释

考虑您需要向补丁添加一个新文件。 新文件将不被跟踪,命令 git diff 不会跟踪文件。

将新文件添加到补丁

  1. 使用 git add 命令添加新文件
git diff HEAD > <issue-description (optional)>-<issue-number>-<comment-number>.patch

更新现有补丁

1. 克隆需要添加补丁的项目。
2. 转到问题页面,右键单击补丁链接,然后单击复制地址链接。
3. 使用 curl 或 wget 命令将补丁下载到本地。

使用 curl 命令下载补丁:

 curl -O <paste the address link of the patch>


4. 应用补丁运行命令:

 git apply <patch name>


5.应用补丁后,您将在本地获得补丁的更改。 添加补丁所需的进一步更改并创建新补丁。

当我们更新现有补丁时,我们需要创建一个 interdiff 文件。 Interdiff 文件只不过是旧补丁和新补丁之间的区别。 这将有助于审阅者了解新补丁中所做的更改。

以下是创建 interdiff 的命令:

 interdiff <old-patch> <new patch> > interdiff_<old-patch-comment-number>-<new-patch-comment-number>.txt

假设您有一个旧的下载补丁 3302030-2.patch 和一个您创建的新更新补丁 3302030-3.patch。 要在这两个文件之间创建 interdiff,命令将是:

 interdiff 3302030-2.patch 3302030-3.patch > interdiff_2-3.txt

提交补丁

创建补丁后,我们需要提交补丁。

要提交补丁,请转到问题页面。

1.问题元数据

元数据

在问题元数据中,将状态更改为需求审查。 如果问题已分配给您,请取消分配问题并根据需要添加或删除标签。

2. 归因此贡献

属性

如果您为任何组织工作,请检查相关选项并添加组织。 添加这一点后,当问题得到解决时,积分将与您一起提供给组织。

3. 在评论部分添加对补丁中所做更改的描述。
4.选择patch文件,interdiff文件,在files下上传。

文件

在这里,我们将文件一一添加,选择文件后点击上传。 单击上传文件将被上传并添加到下面的列表中。

注意:添加新补丁时不需要 Interdiff。

5. 上传文件后点击保存按钮。 这将更新问题页面,我们可以看到上传的补丁带有新的评论编号。

核心问题的补丁应使用相同的程序提交。

查看补丁

现在您知道如何查找问题、创建补丁并上传了。 下一步是什么? 我们如何确保尽快提交正确的补丁? 审查补丁是推动问题向前发展的同样重要的一步。 如果您觉得编写代码行不是您的事,那么为什么不尝试查看现有的补丁呢?

在我们开始之前,强烈建议将Dreditor扩展添加到您的浏览器。

编辑器

Dreditor 扩展程序

它为您提供补丁/interdiff 文件的“查看”按钮。 单击时,它以易于阅读的格式显示更改。

审查

来自 Dreditor 的“查看”按钮

修补

没有 Dreditor 的补丁文件更改

补丁文件更改

现在我们都准备好寻找要审查的问题了!

  • 过滤状态为“需要审查”的问题。
  • 从列表中选择。
  • 阅读评论并选择问题中上传的最新补丁。
  • 确保补丁已通过测试用例并变为绿色。
补丁测试通过

通过测试的补丁

  • 下载补丁文件并通过运行将本地补丁应用到核心/模块/主题/配置文件中:
 git apply <patch-file-downloaded> -v
  • 测试它是否按预期工作/需要一些工作。
  • 更改问题状态并添加带有支持您观点的图像/视频的评论。 您的评论应包含详细信息,例如补丁是否应用于最新版本、重现问题所遵循的步骤、应用补丁之前和之后的问题行为等。
  • 如果一切正常,请将状态更改为“RTBC”。
  • 如果有任何额外工作/更改的余地,请将状态更新为“需要工作”。

其他贡献方式

除了代码贡献之外,Drupal 项目还有许多您可以贡献的领域,包括提高其质量和范围。 您可以根据自己的兴趣选择对该社区的贡献方式。 一些贡献领域:

  • 通过指导 - 如果您有一些贡献经验,您可以通过在线或亲自成为导师来帮助他人入门。
  • To Documentation - Drupal 项目的所有文档都是由世界各地的人们免费贡献的,就像你一样。
  • 知识分享 - 为 Drupal 项目做出贡献的一个重要方式是通过撰写博客文章、在当地的 Drupal 小组聚会、DrupalCamp 或 DrupalCon 上做演讲、成为培训师等方式分享您对 Drupal 的知识。
  • 活动策划 - 通过组织或自愿参加虚拟或面对面的 Drupal 活动,如聚会、冲刺等。
  • 通过营销 - 您可以与全球其他营销团队合作,创建 Drupal 品牌营销和销售材料,供销售 Drupal 服务的每个人共享和使用。
  • 通过贡献模块/主题 - 在 Drupal 项目(包括模块、发行版和主题)上的协作是为 Drupal 社区做出贡献的一种不可或缺的方式。

保持联系和更新!

• 松弛

  • Drupal 社区有一个主要的 Slack 工作区,简称为“Drupal” - - http://drupal.slack.com/
  • 您会发现针对不同主题的各种渠道,例如#support、#bugsmash、#contribute、#drupal10rediness 等。

• 博客

  • Drupal 社区的成员撰写有关 Drupal 的博客文章。
  • 甚至你也可以成为他们中的一员!

• 社交媒体 - Twitter、LinkedIn 等

  • 关注任何与 Drupal 相关的配置文件可以让您随时了解 Drupal 周围发生的所有正在进行的更改/事件。

Drupal 行为准则

由于 Drupal 是一个开源并且我们的社区正在成长,因此我们必须保留让我们来到这里的东西。 以下是关于行为的一些要点。

  • 协作

由于 Drupal 拥有更大的社区,因此协作是关键。 通过团队合作,我们可以为 drupal 平台带来最好的东西。

  • 尊重

由于每个人都为 Drupal 做出了宝贵的贡献,因此社区及其成员相互​​尊重。

  • 当我们不确定时,寻求帮助

在 Drupal 中没有人是完美的,在 Drupal 社区中也没有人期望知道一切。 提问可以解决很多问题,因此鼓励提问。

  • 如果您是骚扰的受害者或目击者,或者需要 Slack 管理方面的帮助,请联系您的同事/Slack 管理员。

https://www.drupal.org/dcoc是该文档的链接,您可以在其中深入了解行为准则。

最后的想法

作为一个生活和呼吸 Drupal 的组织,我们始终致力于以任何方式回馈项目。 如果您正在为您的下一个项目寻找值得信赖的 Drupal 代理,我们的专家将很乐意为您提供帮助。 今天就和我们谈谈吧!