Loading...
Loading...
TYPO3 Core contribution workflow. Use when working with Forge issues, submitting patches to Gerrit, or contributing docs.
npx skill4agent add dirnbauer/webconsulting-skills typo3-core-contributionsTYPO3 API First: Always use TYPO3's built-in APIs, core features, and established conventions before creating custom implementations. Do not reinvent what TYPO3 already provides. Always verify that the APIs and methods you use exist and are not deprecated in your target TYPO3 version (v13 or v14) by checking the official TYPO3 documentation.
https://forge.typo3.org/issues/105737# Verify git config
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# Add Gerrit remote
git remote add gerrit ssh://your-username@review.typo3.org:29418/Packages/TYPO3.CMS.git# Clone via Gerrit
git clone ssh://your-username@review.typo3.org:29418/Packages/TYPO3.CMS.git
cd TYPO3.CMS
# Or clone from GitHub (read-only mirror)
git clone https://github.com/TYPO3/typo3.git
cd typo3
# Add Gerrit remote for pushing
git remote add gerrit ssh://your-username@review.typo3.org:29418/Packages/TYPO3.CMS.git# Install commit-msg hook for Change-Id
scp -p -P 29418 your-username@review.typo3.org:hooks/commit-msg .git/hooks/
chmod +x .git/hooks/commit-msg# Update main branch
git checkout main
git pull origin main
# Create feature branch
git checkout -b feature/105737-fix-cache-issuegit add .
git commit[TYPE] Subject line (imperative, max 52 chars)
Description explaining how and why the change was made.
Can be multiple paragraphs.
Resolves: #12345
Releases: main, 13.4# Push for review
git push gerrit HEAD:refs/for/main| Type | Description |
|---|---|
| Bug fix |
| New feature |
| Refactoring, cleanup, maintenance |
| Documentation only |
| Security fix (coordinate with security team) |
| Breaking change prefix (e.g., |
Resolves: #12345
Releases: main, 13.4Resolves:Releases:[BUGFIX] Fix cache invalidation for page translations
The cache was not properly invalidated when updating
translated page properties. This patch ensures the
cache is cleared for all language variants.
Resolves: #105737
Releases: main, 13.4[!!!][TASK] Remove deprecated DataHandler hooks
The legacy hooks have been deprecated since v12 and
are now removed. Use PSR-14 events instead.
See migration guide in the documentation.
Resolves: #98765
Releases: main# Make changes
# ...
# Amend commit (keep same Change-Id!)
git add .
git commit --amend
# Push again
git push gerrit HEAD:refs/for/main# Fetch latest
git fetch origin main
# Rebase
git rebase origin/main
# Force push (allowed for your own patches)
git push gerrit HEAD:refs/for/main --force# Switch to target branch
git checkout 13.4
git pull origin 13.4
# Cherry-pick with original Change-Id
git cherry-pick -x <commit-hash>
# Push for review
git push gerrit HEAD:refs/for/13.4| Vote | Meaning |
|---|---|
| +2 | Approved, ready for merge |
| +1 | Looks good, needs second review |
| 0 | Comment only |
| -1 | Changes needed |
| -2 | Major issues, do not merge |
# Missing Change-Id
# Ensure commit hook is installed
scp -p -P 29418 your-username@review.typo3.org:hooks/commit-msg .git/hooks/
# Amend to add Change-Id
git commit --amend# Rebase on latest
git fetch origin main
git rebase origin/main
# Resolve conflicts
# Edit conflicting files
git add .
git rebase --continue
# Push updated patch
git push gerrit HEAD:refs/for/main --force# Run specific test suite
Build/Scripts/runTests.sh -s unit
Build/Scripts/runTests.sh -s functional
# Run PHP-CS-Fixer
Build/Scripts/runTests.sh -s cgl