TYPO3 Contribution Bootup Day

32
TYPO3 Contribution Bootup Day » Introduction & Requirements » TYPO3 Universe » TYPO3 Tools » Workflow » Hands on

Transcript of TYPO3 Contribution Bootup Day

Page 1: TYPO3 Contribution Bootup Day

0Nicole Cordes, TYPO3 Contribution Bootup Day

TYPO3 Contribution Bootup Day

» Introduction & Requirements

» TYPO3 Universe

» TYPO3 Tools

» Workflow

» Hands on

Page 2: TYPO3 Contribution Bootup Day

1Nicole Cordes, TYPO3 Contribution Bootup Day

Introduction&

Requirements

Page 3: TYPO3 Contribution Bootup Day

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: [email protected]

Page 4: TYPO3 Contribution Bootup Day

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)

Page 5: TYPO3 Contribution Bootup Day

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)

Page 6: TYPO3 Contribution Bootup Day

5Nicole Cordes, TYPO3 Contribution Bootup Day

TYPO3Universe

Page 7: TYPO3 Contribution Bootup Day

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

Page 8: TYPO3 Contribution Bootup Day

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

Page 9: TYPO3 Contribution Bootup Day

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

Page 10: TYPO3 Contribution Bootup Day

9Nicole Cordes, TYPO3 Contribution Bootup Day

TYPO3Tools

Page 11: TYPO3 Contribution Bootup Day

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

Page 12: TYPO3 Contribution Bootup Day

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

Page 13: TYPO3 Contribution Bootup Day

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

Page 14: TYPO3 Contribution Bootup Day

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

Page 15: TYPO3 Contribution Bootup Day

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

Page 16: TYPO3 Contribution Bootup Day

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

Page 17: TYPO3 Contribution Bootup Day

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

Page 18: TYPO3 Contribution Bootup Day

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

Page 19: TYPO3 Contribution Bootup Day

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/

Page 20: TYPO3 Contribution Bootup Day

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

Page 21: TYPO3 Contribution Bootup Day

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

Page 22: TYPO3 Contribution Bootup Day

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

Page 23: TYPO3 Contribution Bootup Day

22Nicole Cordes, TYPO3 Contribution Bootup Day

Workflow

Page 24: TYPO3 Contribution Bootup Day

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/

Page 25: TYPO3 Contribution Bootup Day

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/

Page 26: TYPO3 Contribution Bootup Day

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

Page 27: TYPO3 Contribution Bootup Day

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

Page 28: TYPO3 Contribution Bootup Day

27Nicole Cordes, TYPO3 Contribution Bootup Day

Hands on

Page 29: TYPO3 Contribution Bootup Day

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)

Page 30: TYPO3 Contribution Bootup Day

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/

Page 31: TYPO3 Contribution Bootup Day

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

Page 32: TYPO3 Contribution Bootup Day

31Nicole Cordes, TYPO3 Contribution Bootup Day

Thank youfor your attention!

» These slides are inspired by Helmut Hummel, Michael Stucki, Oliver Harder & Xavier Perseguers