关于 typo3-core-contributions
typo3-core-contributions 面向参与 TYPO3 Core 开发的人员,指导从 Forge 问题分析到 Gerrit 提交、CI 排错及评审更新的流程。
主要功能
- 01Forge 问题分析与创建
- 02Gerrit 补丁提交流程
- 03提交格式与 Git 操作
- 04CI 日志诊断与本地检查
- 05评审反馈处理及补丁集更新
适用场景
- 01准备并提交 TYPO3 Core 补丁
- 02排查 TYPO3 CI 作业失败
- 03根据 Gerrit 评审修改提交
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ dirnbauer/ webconsulting-skills --skill typo3-core-contributions安装后在 Claude Code 中输入/typo3-core-contributions确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/account-setup.mdcommit-message-format.mdcommit-msg-hook.mdddev-setup-workflow.mdforge-api.mdgerrit-review-patterns.mdgerrit-workflow.mdmodern-typo3-patterns.mdtroubleshooting.mdscripts/create-commit-message.pycreate-forge-issue.shquery-forge-metadata.shsetup-typo3-coredev.shvalidate-commit-message.pyverify-prerequisites.sh详细介绍
TYPO3 核心贡献
TYPO3 核心贡献指南:Forge 问题、Gerrit 补丁、CI 调试和评审工作流。
使用场景
- 分析或创建 Forge 问题(
forge.typo3.org/issues/*) - 提交补丁、调试 CI、使用 Gerrit 评审工作流
- 设置提交消息格式、cherry-pick、变基
前置条件
运行 ${CLAUDE_SKILL_DIR}/scripts/verify-prerequisites.sh 进行检查:TYPO3.org 账号、Gerrit SSH(ssh -p 29418 <user>@review.typo3.org)、与 Gerrit 匹配的 Git 邮箱。参见 references/account-setup.md。
工作流
- 设置:账号和环境(
${CLAUDE_SKILL_DIR}/scripts/setup-typo3-coredev.sh、references/ddev-setup-workflow.md) - 分支:
git checkout -b feature/<issue>-description - 分析:编码前了解根本原因、复现步骤和受影响的版本
- 开发:实现修复并编写测试,使用 typo3-conformance-skill 验证
- 提交:遵循下方格式,包含
Resolves: #<issue>和Releases: - 推送:
git push origin HEAD:refs/for/main(初始状态为 WIP) - CI:等待所有任务完成。查看 GitLab 上的实际日志:
git.typo3.org/typo3/CI/cms/-/jobs/<id>。通过一次 amend+push 修复所有失败项 - 标记为就绪:通过
git push origin HEAD:refs/for/main%ready或 Gerrit 界面中的“Start Review”标记为就绪 - 评审:处理反馈、amend 提交,并保留 Change-Id。先获取评审者的补丁集,以保留对方对消息的修改:
git fetch origin refs/changes/XX/NNNNN/N && git reset --soft FETCH_HEAD - 更新:
git commit --amend && git push origin HEAD:refs/for/main
提交格式
[TYPE] Subject (imperative mood, max 52 chars)
How and why (not what). Wrap at 72 chars.
Resolves: #12345
Releases: main, 13.4, 12.4
类型:[BUGFIX]、[FEATURE](仅限 main)、[TASK]、[DOCS]、[SECURITY]
破坏性变更:使用 [!!!][TYPE] 前缀;仅 Releases: main
必填项:每个提交都必须包含 Resolves:(不能只写 Related:)
CI 调试
查看所有失败任务的日志(切勿猜测)。常见任务:cgl pre-merge(代码风格)、phpstan(静态分析)、unit/functional(测试)。在一个补丁集中修复所有问题。本地检查:
./Build/Scripts/runTests.sh -s unit && ./Build/Scripts/runTests.sh -s functional
./Build/Scripts/cglFixMyCommit.sh
./Build/Scripts/runTests.sh -s phpstan
关键操作
| 任务 | 命令 |
|---|---|
| 推送到 Gerrit | git push origin HEAD:refs/for/main |
| 标记为就绪 | git push origin HEAD:refs/for/main%ready |
| 设置为 WIP | git push origin HEAD:refs/for/main%wip |
| 变基 | git fetch origin && git rebase origin/main |
| cherry-pick 补丁 | git fetch origin refs/changes/XX/NNNNN/N && git cherry-pick FETCH_HEAD |
| 安装钩子 | cp Build/git-hooks/commit-msg .git/hooks/ && chmod +x .git/hooks/commit-msg |
| 修复邮箱不匹配 | GIT_COMMITTER_EMAIL="registered@email" git commit --amend --no-edit |
| Forge API | ${CLAUDE_SKILL_DIR}/scripts/create-forge-issue.sh、references/forge-api.md |
参考资料
| 主题 | 文件 |
|---|---|
| 账号设置 | references/account-setup.md |
| 提交格式 | references/commit-message-format.md |
| Gerrit 工作流 | references/gerrit-workflow.md |
| 评审模式 | references/gerrit-review-patterns.md |
| 现代模式 | references/modern-typo3-patterns.md |
| DDEV 设置 | references/ddev-setup-workflow.md |
| Forge API | references/forge-api.md |
| 提交钩子 | references/commit-msg-hook.md |
| 故障排查 | references/troubleshooting.md |
致谢与署名
本技能基于 Netresearch DTT GmbH 的出色工作。
原始仓库:https://github.com/netresearch/typo3-core-contributions-skill
版权所有 (c) Netresearch DTT GmbH — 方法论和最佳实践(MIT / CC-BY-SA-4.0)
特别感谢 Netresearch DTT GmbH 为 TYPO3 社区慷慨贡献开源成果,这些成果帮助塑造了本技能集合。 由 webconsulting.at 改编,用于本技能集合