TYPO3 Contribution Bootup Day

Post on 07-Jan-2017

133 views 0 download

Transcript of TYPO3 Contribution Bootup Day

0Nicole Cordes, TYPO3 Contribution Bootup Day

TYPO3 Contribution Bootup Day

» Introduction & Requirements

» TYPO3 Universe

» TYPO3 Tools

» Workflow

» Hands on

1Nicole Cordes, TYPO3 Contribution Bootup Day

Introduction&

Requirements

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

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)

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)

5Nicole Cordes, TYPO3 Contribution Bootup Day

TYPO3Universe

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

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

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

9Nicole Cordes, TYPO3 Contribution Bootup Day

TYPO3Tools

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

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

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

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

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

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

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

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

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/

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

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

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

22Nicole Cordes, TYPO3 Contribution Bootup Day

Workflow

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/

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/

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

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

27Nicole Cordes, TYPO3 Contribution Bootup Day

Hands on

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)

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/

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

31Nicole Cordes, TYPO3 Contribution Bootup Day

Thank youfor your attention!

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