3. 2Nicole Cordes, TYPO3 Contribution Bootup Day
Me, myself and I
„Who is that girl?“
» Nicole Cordes
» working at CPS-IT GmbH in Berlin
» community activity since 2011
» Core and Security Team member
» contributing to multiple public extensions
» Slack: @IchHabRecht
» Twitter: @IchHabRecht
» Mail: nicole.cordes@typo3.org
4. 3Nicole Cordes, TYPO3 Contribution Bootup Day
Ways to contribute
„Which ways exist to get active in this community?“
» report a bug and/or give feedback on other reports
» publish an extension
» translate core and/or extensions labels
» improve core and/or extension documentation
» contribute source code
» make a donation
» and maybe much more (facebook, twitter, blog posts)
5. 4Nicole Cordes, TYPO3 Contribution Bootup Day
Contribution Prerequisites
„What do I need to start contributing?“
» PHP Development Environment
» Webserver
» PHP (with Xdebug)
» MySQL
» IDE (PHPStorm recommended)
» Git
» Gui (Source Tree or GitKraken)
» Composer
» typo3.org user account
» GitHub account (for working on extensions or some core packages)
7. 6Nicole Cordes, TYPO3 Contribution Bootup Day
TYPO3 Association
„What is the legal structure of the TYPO3 Association?“
» the basic idea was to raise money through membership fees to pay for long-term
development
» General Assembly (GA)
» consists of all members and agencies (who paid their membership fee)
» Board
» daily business of running the TYPO3 Association
» Expert Advisory Board (EAB)
» managing the affairs of the TYPO3 Association
» Business Control Committee (BCC)
» agrees and controls processes in the different parts of the TYPO3 Association
8. 7Nicole Cordes, TYPO3 Contribution Bootup Day
TYPO3 Teams
„Which teams take care about TYPO3 improvements?“
» Core Development
» Documentation Team
» Editorial Team
» Education & Certification Team
» Events Team
» Marketing Team
» Press Team
» Security Team
» Server Team
» typo3.org Team
9. 8Nicole Cordes, TYPO3 Contribution Bootup Day
TYPO3 Events
„Where to get the spirit of the TYPO3 community?“
» T3AMD - Agency Meet-Up Day
» T3BOARD - Snowboard Tour
» T3CON - International Conference
» T3Cx - (Bar-)Camps
» T3DD - Developer Days
» T3SPRINT - Code Sprints
» T3UGx – User Groups
» T3UXW - User Experience Week
11. 10Nicole Cordes, TYPO3 Contribution Bootup Day
typo3.org
„Where does all start?“
» register your own TYPO3 account
» single-sign-on to multiple TYPO3 platforms
» manage extensions and register new keys
» announcements & events
» extension & TYPO3 release downloads
12. 11Nicole Cordes, TYPO3 Contribution Bootup Day
Slack
„How do we communicate?“
» Instant Communication Platform
» public & private (protected) topic groups
» #typo3-cms - general CMS support
» #typo3-cms-coredev - join the core development
» direct messages to whole community
» register at https://forger.typo3.org/slack
» join https://typo3.slack.com
13. 12Nicole Cordes, TYPO3 Contribution Bootup Day
Forge
„Where to share bugs?“
» bug tracker (for TYPO3 CMS, Extensions and several other projects / teams)
» search for existing bugs
» report new bugs
» share feature requests
» provide feedback or additional information
» TYPO3 account needed
» Core Issues: https://forge.typo3.org/projects/typo3cms-core/issues
14. 13Nicole Cordes, TYPO3 Contribution Bootup Day
Forger
„Anything better to search for bugs?“
» extended search functionalities based on elastic search
» aggregation & metrics for development
» open issues
» pending patches
» filter patches
» historical measurements
» sprint boards & overviews
» little friendly helpers
» see https://forger.typo3.org
15. 14Nicole Cordes, TYPO3 Contribution Bootup Day
Git Repositories
„Where to look for the sources?“
» only to provide Git (clone) Repository URLS
» Core and (some) extension repositories
» see https://git.typo3.org
16. 15Nicole Cordes, TYPO3 Contribution Bootup Day
Gerrit
„Where to find patches?“
» code review system
» initially written by Google for Android development
» relies on Git as version control system
» only Core Team members have merge rights
» TYPO3 account needed
» see https://review.typo3.org
17. 16Nicole Cordes, TYPO3 Contribution Bootup Day
GitHub
„Where to find everything else?“
» some core components
» Fluid
» Symfony packages
» Doctrine DBAL
» (deprecated) previous core extensions
» many third party extensions
» to contribute: use GitHub’s pull requests
18. 17Nicole Cordes, TYPO3 Contribution Bootup Day
Travis, AppVeyor & Bamboo
„Where to find everything else?“
» continuous integration pre-/post-merge
» supported branches 6.2 – master on (their) different PHP versions
» Unit Tests (~9000)
» Functional Tests (~800)
» Acceptance Tests (~60)
» Travis CI – post-merge for Linux
» AppVeyor – post-merge for Windows
» Bamboo – pre-merge for every new patchset (on own infrastructure)
» see: https://travis-ci.org/TYPO3/TYPO3.CMS/
» see: https://ci.appveyor.com/project/psychomieze/typo3-cms-sqpkv
» see: https://bamboo.typo3.com/browse/CORE-GTC
19. 18Nicole Cordes, TYPO3 Contribution Bootup Day
Documentation
„Is there anything to read about TYPO3?“
» official core documentation
» TypoScript
» TCA
» Tsconfig
» extension documentation
» other related documentation
» Cheat Sheets
» rst-ing with PhpStorm
» see: https://docs.typo3.org/typo3cms
» see: https://docs.typo3.org/typo3cms/extensions/core/
» see: https://docs.typo3.org/typo3cms/drafts/github/wmdbsystems/RSTingWithPhpStormGuide/
20. 19Nicole Cordes, TYPO3 Contribution Bootup Day
Wiki
„Where to find topic related information?“
» for documentation and references
» Unit and Functional Testing explanations
» Composer information
» for Code Sprint organization
» for discussing blueprints (concepts)
» TYPO3 account is needed
» see: https://wiki.typo3.org/Main_Page
» see: https://wiki.typo3.org/Category:Events/CodeSprint/2016
» see: https://wiki.typo3.org/Unit_Testing_TYPO3
» see: https://wiki.typo3.org/Functional_testing
» see: https://wiki.typo3.org/Composer
» see: https://wiki.typo3.org/Blueprints
21. 20Nicole Cordes, TYPO3 Contribution Bootup Day
Translation
„Can I add any translation on my own?“
» based on Pootle
» uses XLIFF standard
» collaborative translation tool
» for core & extensions
» TYPO3 account needed
» see: https://translation.typo3.org
22. 21Nicole Cordes, TYPO3 Contribution Bootup Day
Mailing lists
„Is there any old-school communication?“
» used before Slack was available
» not that frequently used anymore
» TYPO3 Announcement List for release notes and important security information
» see: http://lists.typo3.org/cgi-bin/mailman/listinfo
» see: http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-announce
24. 23Nicole Cordes, TYPO3 Contribution Bootup Day
Development Guidelines
„What to consider when you want to contribute?“
» use English for conversations and coding
» documentation helps others to understand
» be friendly and helpful
» give feedback & ask for feedback
» see: https://typo3.org/community/code-of-conduct/
25. 24Nicole Cordes, TYPO3 Contribution Bootup Day
Code Style
„Is there anything I need to know about the code?“
» PSR-2 coding style
» code formatting & indentions
» directory structure & naming scheme
» PHPDoc comments for classes, properties and methods
» see: https://docs.typo3.org/typo3cms/CodingGuidelinesReference/Introduction/
» see: http://www.php-fig.org/psr/psr-2/
26. 25Nicole Cordes, TYPO3 Contribution Bootup Day
Workflow I
„I found a bug, what now?“
» use forge and/or forger to search for an existing ticket for your bug
» if you found a ticket
» give some more information about the prerequests and/or how to reproduce the bug
» if a patch already exists
» fetch the patch to your local system and test it
» vote on Gerrit
» provide new information found during your test
» if no patch exists yet
» try to solve the problem and push a patch to Gerrit
» announce your patch in #typo3-cms-coredev channel on Slack
27. 26Nicole Cordes, TYPO3 Contribution Bootup Day
Workflow II
„I found a bug, what now?“
» use forge and/or forger to search for an existing ticket for your bug
» if you can’t find a ticket
» create a ticket on your own
» mention the steps to reproduce your problem, your expected results and the current ones
» try to solve the problem and push a patch to Gerrit
» announce your patch in #typo3-cms-coredev channel on Slack
29. 28Nicole Cordes, TYPO3 Contribution Bootup Day
Configure Git
„How can I start contributing now?“
» if not yet done – register your TYPO3 account
» setting up your Git environment
» see: https://docs.typo3.org/typo3cms/ContributionWorkflowGuide/GitSetup/
» (or use the quick helper from http://www.wwwision.de/githelper/#Packages/TYPO3.CMS.git)
30. 29Nicole Cordes, TYPO3 Contribution Bootup Day
Test some patches
„Test what?“
» take one or several patches from this list
» if you want to change that one claim it yours before (-1 with a short note)
» cherry-pick the latest patch set
» have a look at the code (and/or change it)
» push the new patch set
» vote or comment after running unit tests
» https://review.typo3.org/#/c/48874/
» https://review.typo3.org/#/c/48880/
» https://review.typo3.org/#/c/48920/
» https://review.typo3.org/#/c/49013/
» https://review.typo3.org/#/c/49014/
31. 30Nicole Cordes, TYPO3 Contribution Bootup Day
Create some more patches
„I found a bug, now I know what to do!“
» search for a bug on forge/forger which you can reproduce (or take an already known one)
» create a first patch
» push it to Gerrit
» notify about your review
» https://forge.typo3.org/issues/76977
» https://forge.typo3.org/issues/77091
» https://forge.typo3.org/issues/77097
» https://forge.typo3.org/issues/77106
32. 31Nicole Cordes, TYPO3 Contribution Bootup Day
Thank you
for your attention!
» These slides are inspired by Helmut Hummel, Michael Stucki, Oliver Harder & Xavier Perseguers