Quick start: Creating a patchΒΆ

  1. Signup

    More information: Setting up your Accounts

  2. Setup ssh key for Gerrit

    More information: Setting up Gerrit (ssh)

    Log in to Gerrit, click on Settings and upload your ssh key

  3. Setup your git environment

    More information: Setting up your Git environment

    git clone:

    git clone git://git.typo3.org/Packages/TYPO3.CMS.git .
    

    Setup name and email (same as you used for typo3.org), replace "Your name" and "your-email@example.com" here):

    git config user.name "Your Name"
    git config user.email "your-email@example.com"
    

    Setup autosetuprebase:

    git config branch.autosetuprebase remote
    

    Setup commit hook:

    cp Build/git-hooks/commit-msg .git/hooks/commit-msg
    

    Push to Gerrit (replace <YOUR_TYPO3_USERNAME> here):

    git config url."ssh://<YOUR_TYPO3_USERNAME>@review.typo3.org:29418".pushInsteadOf git://git.typo3.org
    
  4. Run composer and yarn

    More information: composer install

    Inside your cloned TYPO3 repository, run composer:

    composer install
    

    Run yarn:

    cd Build
    yarn install
    yarn build
    cd ..
    
  5. Setup your TYPO3 installation

    More information: Setting up a working TYPO3 installation

    Setup your TYPO3 installation usig the git cloned TYPO3 source (as described above).

  6. Setup your IDE to adhere to the coding guidelines

    More information: Setup your IDE

    Use the .editorconfig in the TYPO3 core directory to setup your IDE. As .editorconfig only contains minimal rules, it is a good idea to additionally setup your IDE to use PSR-1 / PSR-2 for PHP files.

  7. Create an Issue on Forge

    More information: Report an issue (Forge)

    Every patch must have a matching issue on Forge, so create an issue now or submit a patch for an existing issue.

  8. Create your patch

    More information: Create & submit a patch

    Create your patch, make sure you add tests and run existing tests. Add documentation for breaking changes and new features.

  9. Commit and push

    First, read Commit Message rules for TYPO3 CMS.

    Then, commit and push:

    git commit -a
    git push origin HEAD:refs/publish/master
    
  10. Finally, announce your review on Slack

Login to Slack and in the #typo3-cms-coredev announce your new patch by using the botty command:

review:show [ReviewNumber or URL]

This is not something you would do for every patch, but for your first one it is recommended. Please mention that you are a new contributor.

Important

If someone makes comments on your review in Gerrit, look at the comments and try to improve your patch.

Do not get discouraged if your patch is downvoted, commented on and not merged right away! Find a way to improve it. Ask in the #typo3-cms-coredev channel in Slack, if things are unclear.

Refer to Handle and improve a patch (Gerrit) for information about how to push a new patchset.