快速啟動您的 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 代理,我們的專家將很樂意為您提供幫助。 今天就和我們談談吧!