TYPO3 Contribution Guide - Core Development
1.0
----- intro & setup ------
Introduction
How this guide is structured
Additional information
Other ways to contribute
How to help in improving this guide
Help & Community
Slack
Events
TYPO3 GmbH Review Friday
Code Sprints
TYPO3 Developer Days
TYPO3 Contribution explained
Regular Workflow
TYPO3 Contribution Workflow
Setting up your Accounts
Signup for a TYPO3.org account
The fields in detail
Setting up Gerrit (ssh)
Register for your Slack account and join coredev-channel
Register for Slack account
Join #typo3-cms-coredev channel
More information
Setting up your environment
Prerequisites and useful tools
Composer
Setting up your frontend build toolchain.
Yarn
Install on MacOS
Installer for Windows and MacOS
Linux
Install all required packages
Grunt
Setup the TYPO3 installation
git clone
git GUIs
composer install
yarn install
yarn tasks
Setting up a working TYPO3 installation
Setting up your Git environment
Prerequisites
Set username and email
Set autosetuprebase
Install Your Commit Hooks
commit-msg Hook
pre-commit Hook
Alternative: Setup With Composer
Setting up your remote
Setting up a Commit Message Template
Show Configuration
Other resources
Setup your IDE
Coding Guidelines
Introduction to Forger
------ tasks ------
Report an issue (Forge)
Introduction to Forge
Searching for existing issues
Identify the issue
Create an issue
Tracker
Subject
Description
Category
TYPO3 version
PHP Version
(optional) Files
Best practices for writing a good bug report
Hints for formatting in Redmine
Images
Code formatting
External Links
Additional Resources
Create & submit a patch
Prerequisites
Step by step walkthrough
Helpful links
More information
Add documentation (Changelog etc.)
Document changes (Changelog)
reST File Generator
Types of changes
Breaking Changes
Deprecations
Features
Important Information
Check your rst file
Render the Changelog
Document system extensions
More information
Run tests
Practical considerations
How to run the tests
Run tests with runTests.sh using docker
Prerequisites
Examples
Show help
Run all unit tests
Run unit tests with xdebug (uses default port 9000)
Run specific unit tests with xdebug
Run functional tests
Run functional tests with PostgreSQL
Run acceptance tests
Additional hints
Troubleshooting
Results
Run tests directly without docker
Run all unit tests
Run specific unit tests
Run all functional tests
Check for Coding Guidelines
More information
Debug TYPO3
Debugging with PhpStorm and Xdebug
php.ini
Install plugin
PhpStorm
Handle and improve a patch (Gerrit)
Introduction to Gerrit
Overview of the UI
Find a review on Gerrit
Forger
Email notification
Gerrit: Your Changes
Gerrit: Open Changes
Gerrit: Search
Forge
Cherry-pick a patch
Cleanup tasks
Cleanup git repository
Cleanup TYPO3 installation
Upload a new Patch Set
Rebase
What is rebase?
When should you rebase?
How do you rebase?
Method 1: Use Rebase button on Gerrit
Method 2: git pull --rebase
Resolve Merge conflicts
What are merge conflicts?
Example
How to see merge conflicts in Gerrit or Forger
How to resolve conflicts?
Identify files with conflicts
Identify files with conflicts (cherry-pick)
Resolve the conflicts
Resume command
Resume git rebase
Resume git cherry-pick
Review a patch
Code Review
Test a patch
Comment files
Vote
Policy for votes
No brainers
Practical considerations
Backport a change to other branches
Use Gerrit for the cherry-pick
Manual backport
Revert patches
Issue Workflow (Forge)
Target Versions
Status
------ quick references ------
Cheat Sheets
git cheat sheet for Core development
git clone
Setup
Workflow - common commands
Workflow - drafts
Workflow -other branches
Workflow - commit msg
Workflow - Undoing / fixing things
References
Quick start
Quick start: Creating a patch
What's new in this guide
Appendix
OS X help
Working with Git Tower
Enabling Extended Gerrit Support in Tower
Pushing to Gerrit
COMPOSER install on OSX
GRUNT install on OSX
Yarn install on OSX
Creating a SSH Public Key on OSX
Microsoft Windows help
Cloning with SourceTree on Windows
SourceTree General Setup
Prerequisites
Installation
Basic Settings
Clone
Automatic links to Forge and Gerrit
Reviewing and testing patches
Update the repository
Cherry-picking
Creating patches
Commit hook
Setup for pushing to Gerrit
Create a branch
Send the patch to Gerrit
Cleaning up
Working with Git for Windows
Installation
Configuration
Initial clone
Setting the SSH key in TortoiseGit
Commit hook
Push to Gerrit
Links to bugtracker
Review walkthrough
Update the repository
Create a branch
Cherry-picking
Cleaning up
Starting a new patch
Send the patch to Gerrit
Creating a SSH Public Key on Windows
Generate your keys with Putty
Use pageant to load your pivate key on startup
Troubleshooting for Windows
SSH
Permission denied (publickey)
Checklist for ssh problems
Linux/Unix help
Creating a SSH Public Key on Unix/Linux
Setting up TYPO3 manually under Linux
Prerequisites
Setup
Apache Webserver
PHP 7.2
MySQL Server
ImageMagick
Create a basic site for your installation
Create a domain in your /etc/hosts
Next step
Coding Guidelines
PHP
JavaScript
TypeScript
Xliff files
cglFixMyCommit
Linux and MacOS
Windows
Commit Hooks
commit-msg
Hook
pre-commit
Hook
Post-checkout hook for composer update
Commit Message rules for TYPO3 CMS
Summary line (first line)
Deprecations
Some examples of topic descriptions
Description (Message body)
Relationships
Reverting patches
Commit Template
Bad summary lines examples vs. good examples
Composer
About Composer
Install Composer
Composer Commands
Custom TYPO3 Composer Commands
How to deprecate classes, methods, arguments and hooks in the TYPO3 core
Deprecate a class
Deprecate method
Deprecate method arguments
Deprecate a hook
Deprecate methods still called by the TYPO3 Core
PhpStorm: Gerrit Plugin
PhpStorm: Setup
Conventions on this page
General setup
Coding Guidelines
EditorConfig
PHP files
More information
Plugins for PhpStorm
Recommended Plugins
Optional Plugins
Setting up PhpStorm for the Testing Framework
Other Resources
Life of a patch
Setting up TYPO3 with DDEV
Setting up the prerequisites
Clone TYPO3
Configure DDEV
Start DDEV
Check for database credentials
FIRST_INSTALL
Setup your TYPO3 installation
Additional setup
Shutdown DDEV
Resources
Slack channels
DDEV documentation
Setting up TYPO3 manually
Prerequisites
Clone TYPO3
Create the database
Create FIRST_INSTALL
Continue ...
Slack
Slack channels
Botty on Slack
Information for editing this guide
General information
Resources for this guide
Best practices for editing this guide
Images
Hints for creating images
Hints for adding images
Sitemap
TYPO3 Contribution Guide - Core Development
Docs
»
Appendix
»
Life of a patch
Edit me on GitHub
Next
Previous
Life of a patch
ΒΆ
This chapter has moved to
Handle and improve a patch (Gerrit)
Versions
Project
Contact
Issues
Repository
Downloads
Related Links
v: 1.0