| name | typo3-core-contributions |
| description | Guide contributors through the complete TYPO3 Core contribution workflow from account setup to patch submission for both code and documentation contributions. Use when working with TYPO3 Forge issues, preparing patches for TYPO3 Core, contributing to TYPO3, submitting patches to Gerrit or GitHub PRs, fixing TYPO3 bugs, managing WIP state, or debugging CI failures. By Netresearch. |
TYPO3 Core Contributions
Guide contributors through the complete TYPO3 Core contribution workflow for both code and documentation.
When to Use This Skill
Activate when:
- User provides a TYPO3 Forge issue URL (e.g.,
https://forge.typo3.org/issues/105737) - Contributing to TYPO3 Core, submitting patches, or fixing TYPO3 bugs
- Help with Gerrit review workflow, rebasing, or patch updates
- Creating a new Forge issue for a bug or feature
- TYPO3 development environment setup
- TYPO3 commit message format or contribution guidelines
Scope
| Repository | Submission | Workflow |
|---|---|---|
| Core Code (typo3/typo3) | Gerrit (review.typo3.org) | This skill |
| Core Docs (TYPO3-Documentation/*) | GitHub PRs | This skill |
Related Skills:
typo3-ddev-skill: Development environment setuptypo3-docs-skill: Documentation format validationtypo3-conformance-skill: Code quality checkstypo3-testing-skill: Test writing and execution
Workflow Decision Tree
User starts contribution
├─ Has Forge issue URL?
│ ├─ Yes → Prerequisites Check
│ └─ No → Guide to Issue Creation
├─ Prerequisites verified?
│ ├─ Yes → Development Phase
│ └─ No → Setup Phase
├─ Patch ready?
│ ├─ Yes → Submission Phase
│ └─ No → Development Phase
└─ Patch submitted?
├─ Yes → Review & Update Phase
└─ No → Prepare for Gerrit
Prerequisites
Run scripts/verify-prerequisites.sh to check:
- Accounts: TYPO3.org, Gerrit SSH, Slack (#typo3-cms-coredev)
- Environment: Git configured, TYPO3 Core cloned, DDEV setup
- Git Hooks: commit-msg, pre-commit installed
Critical: Git email MUST match Gerrit email or pushes will be rejected.
Phase Overview
Phase 1: Account Setup
- TYPO3.org account → Gerrit SSH → Slack access
- Details:
references/account-setup.md
Phase 2: Environment Setup
Automated (recommended):
./scripts/setup-typo3-coredev.sh
With typo3-ddev-skill: Use for guided DDEV setup
Manual: See references/ddev-setup-workflow.md
Phase 3: Issue Management
Existing issue: Fetch from Forge URL, determine commit type
New issue: Create at https://forge.typo3.org or via API (scripts/create-forge-issue.sh)
Phase 4: Development
git checkout main && git pull
git checkout -b feature/105737-fix-description
- Implement fix following TYPO3 patterns
- Write tests → Use
typo3-testing-skill - Validate quality → Use
typo3-conformance-skillBEFORE commit - Build frontend assets if needed
- Create changelog if breaking/new feature
Phase 5: Commit Creation
Format:
[TYPE] Subject line (max 52 chars, imperative)
Description explaining how and why.
Resolves: #12345
Releases: main, 13.4, 12.4
Types: [BUGFIX], [FEATURE], [TASK], [DOCS], [SECURITY], [!!!] (breaking)
Required:
Resolves: #<issue>- Every commit MUST have thisReleases: main, 13.4, 12.4- Target versionsChange-Id:- Auto-generated, never modify
Details: references/commit-message-format.md
Phase 6: Gerrit Submission
git push origin HEAD:refs/for/main
Expected: remote: https://review.typo3.org/c/Packages/TYPO3.CMS/+/12345 [NEW]
Phase 7: Review & Update
Multiple revisions are NORMAL - Real patches often have 7-24 patch sets.
When feedback arrives:
git add .
git commit --amend # Preserve Change-Id!
git push origin HEAD:refs/for/main
Rebasing:
- Browser: Click "Rebase" on Gerrit
- CLI:
git fetch origin && git rebase origin/main && git push
Details: references/gerrit-workflow.md, references/gerrit-review-patterns.md
Phase 8: Merge & Completion
After approval (+2 Code Review, +1 Verified):
git checkout main && git pull
git branch -D feature/105737-fix-description
Common Scenarios
| Scenario | Workflow |
|---|---|
| First contribution | Prerequisites → fetch issue → setup → develop → test → validate → commit → submit |
| Update patch | Make changes → typo3-conformance-skill → amend → push |
| Rebase needed | references/gerrit-workflow.md |
| CI failures | typo3-conformance-skill (CGL) or typo3-testing-skill (tests) |
| Dual-repo fix | Core via Gerrit + Docs via GitHub PR |
Troubleshooting
| Issue | Solution |
|---|---|
| Permission denied (push) | Check SSH: ssh -p 29418 <user>@review.typo3.org |
| Missing Change-Id | Run composer gerrit:setup |
| Merge conflict | See references/gerrit-workflow.md |
| CI failing | Use typo3-conformance-skill or typo3-testing-skill |
Full troubleshooting: references/troubleshooting.md
Scripts
| Script | Purpose |
|---|---|
scripts/setup-typo3-coredev.sh |
Complete automated setup |
scripts/verify-prerequisites.sh |
Check accounts, git, environment |
scripts/create-commit-message.py |
Interactive commit message generator |
scripts/validate-commit-message.py |
Validate against TYPO3 format |
scripts/create-forge-issue.sh |
Create issues via API |
References
| Topic | File |
|---|---|
| Account setup | references/account-setup.md |
| DDEV setup workflow | references/ddev-setup-workflow.md |
| Commit message format | references/commit-message-format.md |
| Commit-msg hook details | references/commit-msg-hook.md |
| Gerrit workflow | references/gerrit-workflow.md |
| Review patterns | references/gerrit-review-patterns.md |
| Forge API | references/forge-api.md |
| Troubleshooting | references/troubleshooting.md |
| Modern TYPO3 patterns | references/modern-typo3-patterns.md |
External Resources
- Contribution Guide
- Forge
- Gerrit
- Forger
- Slack (#typo3-cms-coredev)