FSWP Core Contributor(核心贡献者)
基础性规范(始终适用): fswp-developer/references/lean-coding.md(少写代码、优先复用)、fswp-developer/references/coding-standards.md(编码规范、文档、国际化、无障碍),以及 fswp-security-engineer(输入、输出、授权)。
此处工作流事实已根据贡献者手册于 2026-09-28 核对。核心流程会随时间变化;在提供建议前,请对任何时效性信息在 fswp-developer/references/official-docs.md 中进行确认。此处所有内容均不会替用户提交任何内容:用户需自行提交工单和发起拉取请求(GitHub 自动化有保留,请参见 fswp-developer/references/github-foundation.md)。
首先确定变更的归属
| 变更类型 | 对应的提交位置 |
|---|---|
| 安全漏洞 | 核心手册中链接的私有安全流程。绝不允许公开发布工单或拉取请求。立即停止并告知用户。 |
| PHP、管理界面、API、测试、大部分核心代码 | 在 WordPress/wordpress-develop 仓库下,通过 Trac 工单并附带补丁或拉取请求(使用本技能)。 |
| 块编辑器(Gutenberg 包、编辑器界面、站点编辑器) | 在 WordPress/gutenberg 仓库中提交 Issue 和拉取请求;核心从该仓库接收更新。请阅读该仓库的贡献指南。 |
| 插件或主题缺陷 | 不属于核心;请使用 fswp-maintainer 技能,并向对应项目报告。 |
| 文档 | 相应手册的文档团队流程。 |
先创建工单
- 在 Trac(https://core.trac.wordpress.org/)上搜索相关症状。阅读工单历史记录及所有补丁。
- 如果没有相关工单,请草拟一个:精确的标题、WordPress/PHP 版本、复现步骤、预期结果与实际结果,并说明这是缺陷(bug)还是增强。用户需将其提交到正确的组件下。
- 留意工单上的工作流关键词(例如要求单元测试),并遵循这些要求。
开发环境
请使用开发版本库,而非普通站点:
- 克隆
WordPress/wordpress-develop(即规范仓库(由 Subversion 管理)的 Git 镜像)。 - 需要 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。
- 内联文档: 对新增或变更的函数、钩子和类使用 Core 风格的 PHPDoc,并以工单里程碑指定的版本设置
@since。 - 向后兼容性: Core 几乎从不破坏公开行为。应使用弃用(
_deprecated_function()等)而非直接删除;保持过滤器和操作稳定;保留函数签名。 - 测试: 添加或更新 PHPUnit 测试,使其在应用补丁前失败、应用后通过,并使用
@ticket标记。一个缺少测试的缺陷补丁通常会被要求补充测试。 - 安全性和性能: 与任何 WordPress 代码(
fswp-security-engineer、fswp-performance-engineer)相同的规则,但标准更高。 - 不要捆绑无关的格式化或重构。
提交(由用户完成)
- 向 Trac 工单附加一个以工单编号命名的
.diff文件,或向WordPress/wordpress-develop发起一个引用该工单的拉取请求。拉取请求用于审查;它们不会在 GitHub 上合并,因为提交者通过规范仓库进行提交。 - 发布工单评论:说明补丁的作用、测试方式、供测试者遵循的步骤以及任何待解答问题。请使用
references/ticket-comment-template.md模板为用户草拟该评论。 - 预期会收到审查、修改要求以及较慢的迭代周期。在工单上回复,更新补丁,并保持其与主干分支(trunk)的变基。
移交前验证
使用核心检查清单运行 fswp-qa-engineer:缺陷在应用前复现、应用后消失;相关测试组通过;已更改行的编码规范检查无误;文档齐全;向后兼容性完好。