typo3-core-contributions について
typo3-core-contributionsは、TYPO3 Coreに貢献する開発者向けのスキルです。Forgeの課題分析からGerritへの投稿、CIの調査、レビュー後の更新までを案内します。
主な機能
- 01Forge課題の分析と作成
- 02Gerritへのパッチ投稿手順
- 03コミット形式とGit操作
- 04CIログの調査とローカルチェック
- 05レビュー対応とパッチセット更新
活用シーン
- 01TYPO3 Coreのパッチを準備して投稿
- 02TYPO3 CIジョブの失敗を調査
- 03Gerritレビュー後にコミットを修正
インストール
コマンドをコピーしてターミナルで実行します。
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 Core への貢献
TYPO3 Core への貢献に関するガイドです。Forge の課題、Gerrit のパッチ、CI のデバッグ、レビューのワークフローについて説明します。
使用する場面
- Forge の課題の分析または作成(
forge.typo3.org/issues/*) - パッチの提出、CI のデバッグ、Gerrit のレビューのワークフロー
- コミットメッセージの書式設定、チェリーピック、リベース
前提条件
${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>で確認します。すべての失敗を修正し、1 回の amend+push で反映します - レビュー可能にする:
git push origin HEAD:refs/for/main%readyまたは Gerrit UI の「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(テスト)です。すべてを 1 つのパッチセットで修正します。ローカルでのチェック:
./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 |
| パッチをチェリーピック | 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
Copyright (c) Netresearch DTT GmbH — 手法とベストプラクティス(MIT / CC-BY-SA-4.0)
このスキルコレクションの形成に貢献した、TYPO3 コミュニティへの寛大なオープンソースの貢献について、Netresearch DTT GmbH に心より感謝します。 このスキルコレクション向けに webconsulting.at が改変