向 WordPress 核心提交補?。簞?chuàng)建和共享更改的過程

如果您使用 wordpress 謀生并講述您的故事,那么看到您編寫的更改添加到 wordpress 代碼庫中是一件非常令人興奮的事情。我知道這是給我的。

在本教程中,您將學(xué)習(xí)創(chuàng)建可被核心軟件接受的 WordPress 補丁所需了解的一些簡單知識。

雖然 WordPress 是任何人都可以下載和修改的開源軟件,但只有少數(shù)核心貢獻者能夠?qū)⑺麄兊母奶峤坏?WordPress 本身。如果您想對 WordPress 的核心文件進行更改,您可以通過創(chuàng)建詳細說明提議的更改并附加補丁的票證或?qū)⒀a丁附加到現(xiàn)有票證來提出建議。

補丁或 diff 文件是一個詳細說明您對源代碼所做的更改的文件,SVN 或 GIT 等版本控制系統(tǒng)可以使用該文件來應(yīng)用您的更改。通過命令行或通過 SourceTree 等 GUI 工具可以輕松創(chuàng)建補丁。

在本文中,我將詳細介紹如何使用優(yōu)秀的 GIT GUI 應(yīng)用程序 SourceTree 來檢查最新版本的 WordPress 并創(chuàng)建補丁文件。如果您愿意,可以使用您選擇的 GUI 工具或命令行。

在 Core Trac 中查找或創(chuàng)建票證

當(dāng)您將補丁提交到 WordPress 核心時,它必須附加到 WordPress 問題跟蹤器(稱為 trac)中的票證中。因此,提交補丁的第一步是查找或創(chuàng)建票證。

雖然具有新功能的新票證有可能被接受,但可能性不大。 WordPress 擁有數(shù)百萬用戶,主要開發(fā)人員對于引入新功能非常謹(jǐn)慎是有道理的?,F(xiàn)在幾乎所有新功能都首先作為插件單獨開發(fā),只有經(jīng)過廣泛的測試和開發(fā)后才合并到核心中。

要讓補丁被接受,最好的辦法是為現(xiàn)有票證創(chuàng)建補丁。最近,核心 trac 進行了重新設(shè)計,以便更輕松地查找具有簡單修復(fù)的票證以及最有可能包含在下一版本和下一版本 WordPress 中的票證。

報告錯誤

如果您想在 core trac 中創(chuàng)建新票證(如果您發(fā)現(xiàn)了新錯誤,這是一件很棒的事情),您可以在此處執(zhí)行此操作。只需確保您在創(chuàng)建新票證之前已在 trac 中搜索了同一問題的任何報告,并且已驗證最新版本的 WordPress 中是否存在該錯誤。

我指的并不是最新版本,而是 GIT 術(shù)語中的 master 分支或 SVN 術(shù)語中的 trunk。我將在本教程稍后詳細介紹如何獲取最新版本。

向 WordPress 核心提交補?。簞?chuàng)建和共享更改的過程

您至少必須填寫摘要字段(工單的標(biāo)題)和描述字段,這是票證的內(nèi)容。在票證描述中,請盡可能具有描述性。

在我參加的 2013 年 WordCamp 奧蘭多貢獻者研討會上,WordPress 首席開發(fā)人員 Mark Jaquith 和 Andrew Nacin 創(chuàng)建了這份優(yōu)秀錯誤報告的列表:

  • 重現(xiàn)問題的步驟(從最早的步驟開始)
  • 錯誤描述
  • 您所看到的與您所期望的
  • 錯誤消息或錯誤代碼
  • PHP 錯誤(頁面上的警告是什么、日志中出現(xiàn)了什么內(nèi)容、是否有任何 JavaScript 或 Apache/nginx 錯誤?)
  • 什么瀏覽器?
  • 環(huán)境(您的 PHP 版本、MySQL Apache 或 nginx 版本)
  • 在沒有插件和默認主題的情況下會發(fā)生這種情況嗎?
  • 用戶界面問題的屏幕截圖
  • 清晰簡潔
  • 先切入主題,然后再詳細說明。
  • 相關(guān)票號
  • 每張票一個錯誤
  • 固定鏈接設(shè)置
  • 是否啟用多站點?
  • WP_DEBUG 或同等功能已啟用?
  • 問題發(fā)生時登錄的用戶角色(或更改數(shù)據(jù)庫中的角色)

請記住,并非所有這些都與每個錯誤相關(guān),但您可以添加更多相關(guān)信息,效果更好。

除非您確定要在其中設(shè)置什么內(nèi)容,否則您應(yīng)該保留下面描述的字段,讓核心貢獻者使用它們對工單進行相應(yīng)的分類。我建議您根據(jù)是否附加補丁來修復(fù)錯誤而使用“Has Patch”或“Needs Patch”標(biāo)簽。

使用 GUI 工具從 GitHub 查看最新的 WordPress

在為任何票證創(chuàng)建補丁之前,擁有絕對最新版本的 WordPress 非常重要,因為每天都會對其進行許多更改。除非您使用最新的代碼,否則不可能知道您的修復(fù)是否有效或錯誤是否仍然存在。如果您的補丁修改了已經(jīng)更改的代碼,則它可能不會被接受。

WordPress 在 SVN 中管理,但該代碼在兩個位置鏡像為 GIT 存儲庫:

  1. git://core.git.wordpress.org/
  2. https://github.com/WordPress/WordPress

GitHub 存儲庫是最容易使用的。請記住,即使它是官方 GitHub 存儲庫,它仍然不用于問題跟蹤,并且您不應(yīng)向其提交拉取請求。

向 WordPress 核心提交補?。簞?chuàng)建和共享更改的過程

有多種方法可以通過 SVN 或 Git 獲取最新版本的 WordPress。就我個人而言,我發(fā)現(xiàn)最簡單的方法是使用出色的 GIT GUI 工具 SourceTree 來克隆 GitHub 鏡像。這就像從文件菜單中選擇“新建/克隆”一樣簡單,在“源路徑/ URL”字段中輸入 Git 存儲庫的地址,然后指定用于克隆的本地路徑,該路徑位于您的 XAMMP 或 Vagrant 內(nèi)部測試環(huán)境。

說到 Vagrant,流行的 WordPress Vagrant 配置 VVV 已經(jīng)為 WordPress 核心預(yù)配置了測試環(huán)境,包括最新代碼和單元測試。

創(chuàng)建補丁文件

對 WordPress 進行了解決您嘗試修復(fù)的問題所需的更改并測試了修復(fù)后,您需要創(chuàng)建一個補丁文件以上傳到工單。 SourceTree 包含一種創(chuàng)建補丁文件的方法,或者您也可以使用命令行。

在 SourceTree 中,您可以通過轉(zhuǎn)到工作副本并右鍵單擊已更改的文件來創(chuàng)建補丁文件。從右鍵菜單中選擇“創(chuàng)建補丁”。

向 WordPress 核心提交補?。簞?chuàng)建和共享更改的過程

或者,在終端中導(dǎo)航到 WordPress 存儲庫的根目錄,然后使用以下命令創(chuàng)建差異:

git diff —非前綴 ~/name.path

無論您如何創(chuàng)建補丁文件,都應(yīng)該以它的目標(biāo)票號來命名它。如果這是上傳到票證的第二個補丁,請在數(shù)字末尾附加 .2,如果是第三個,則附加 .3,依此類推。例如,票號 #12358 的第五個補丁將被稱為 #12358.5

將補丁上傳到 Trac

現(xiàn)在您的補丁已準(zhǔn)備就緒,您需要將其上傳到 core trac 中的票證中。在任何現(xiàn)有的票證上,說明下方都有一個“附加文件”按鈕,您可以使用該按鈕上傳補丁。在下一個屏幕上,請務(wù)必添加補丁功能的描述。

要有耐心并理解

WordPress 是一個龐大的項目,因此期望您的補丁立即得到響應(yīng)是不合理的。另外,請了解,提交給 WordPress 的補丁的標(biāo)準(zhǔn)必須非常高,才能最好地服務(wù)所有用戶。

提交補丁后,請保持耐心并理解您收到的任何反饋。主要開發(fā)人員非常平易近人,如果您對補丁有疑問或為什么沒有改進,請隨時在 #wordpress-dev IRC 頻道中詢問其中一位。

雖然等待響應(yīng)并必須進行更改可能會令人沮喪,但當(dāng)您的補丁已提交到 WordPress 并且變更集描述認可您時,這是值得的。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊11 分享