FSWP Core Contributor
基礎(始終套用): fswp-developer/references/lean-coding.md(先寫少、重複使用)、fswp-developer/references/coding-standards.md(編碼標準、文件、i18n、無障礙),以及 fswp-security-engineer(輸入、輸出、授權)。
此處的工作流程事實已於 2026-09-28 與核心貢獻者手冊核對。核心流程可能變更;在提供建議前,請先在 fswp-developer/references/official-docs.md 中確認任何時效性資訊。此處的內容不會提交任何東西:由使用者自行提交票證和開啟 Pull Request(GitHub 自動化有保留,請參閱 fswp-developer/references/github-foundation.md)。
先路由變更
| 變更屬於... | 應前往 |
|---|---|
| 漏洞 | 核心手冊中連結的私有安全流程。絕不能是公開的票證或 PR。立即停止並說明。 |
| PHP、管理畫面、API、測試、大多數核心程式碼 | Trac 票證加上修補程式或針對 WordPress/wordpress-develop 的 Pull Request(本技能) |
| 區塊編輯器(Gutenberg 套件、編輯器 UI、網站編輯器) | 針對 WordPress/gutenberg 的問題和 Pull Request;核心從那裡接收更新。請閱讀該儲存庫的貢獻指南。 |
| 外掛或主題的錯誤 | 不屬於核心;請使用 fswp-maintainer 並回報至該專案 |
| 文件 | 相關手冊的文件團隊流程 |
先找票證
- 在 Trac (https://core.trac.wordpress.org/) 搜尋相關症狀。閱讀票證歷史記錄和任何修補程式。
- 如果沒有現有票證,草擬一個:精確的標題、WordPress/PHP 版本、重現步驟、預期與實際結果,以及說明這是缺陷(錯誤)還是增強功能。使用者會將其歸檔到正確的元件。
- 留意票證上的工作流程關鍵字(例如要求進行單元測試)並遵循它們。
環境
使用開發環境簽出,而非一般網站:
- 複製
WordPress/wordpress-develop(正式儲存庫的 Git 鏡像,正式儲存庫由 Subversion 管理)。 - 標準工作流程需要 Docker 和 Node。在簽出根目錄下執行:
npm install、npm run build:dev、npm run env:start、npm run env:install。 - 使用
npm run test:php執行 PHP 測試。在雙破折號後傳遞 PHPUnit 引數,例如-- --group formatting。標記為@ticket的測試會依票證號碼作為群組執行。多站點有自己的設定檔(-c tests/phpunit/multisite.xml);AJAX 測試使用--group ajax執行。 - 也存在非 Docker 的工作流程(Composer、PHPUnit PHAR);請參閱手冊中的 PHPUnit 頁面。
編寫變更
- 從 trunk 分支;分支名稱使用票證號碼(例如
12345-short-description)。讓變更集中在一個票證上。 - 編碼標準: WordPress PHP、JS、CSS 和 HTML 標準,包括 Yoda 條件、縮排、空格以及跳脫/消毒規則。對變更的檔案執行 PHPCS。
- 內聯文件: 為新函式、鉤子和類別以核心風格加上 PHPDoc,並根據票證里程碑指定的版本設定
@since。 - 向後相容性: 核心幾乎從不破壞公開行為。使用棄用(
_deprecated_function()及相關函式)而非移除;保持篩選器和動作的穩定;保留函式簽章。 - 測試: 新增或更新 PHPUnit 測試,這些測試在套用修補程式前會失敗,套用後會通過,並標記
@ticket。沒有測試的錯誤修補程式通常會被要求加上一個。 - 安全性和效能: 與任何 WordPress 程式碼相同的規則(
fswp-security-engineer、fswp-performance-engineer),但標準更高。 - 不要夾帶無關的格式化或重構。
提交(由使用者執行)
- 將
.diff檔案附加到 Trac 票證(檔案名稱使用票證號碼),或開啟一個針對WordPress/wordpress-develop的 Pull Request 並參照該票證。Pull Request 用於審查;它們不會在 GitHub 上合併,因為提交者會透過正式儲存庫提交。 - 發佈票證評論:說明修補程式的功能、測試方式、測試者可遵循的步驟,以及任何未解決的問題。使用
references/ticket-comment-template.md為使用者草擬評論。 - 預期審查、變更要求和較慢的循環。在票證上回覆、更新修補程式,並保持其與 trunk 分支同步。
交接前驗證
使用核心檢查清單執行 fswp-qa-engineer:重現問題在修補前失敗、修補後通過;相關測試群組通過;變更的程式碼行符合編碼標準;文件齊全;向後相容性完好。