40
How healthy is TYPO3? Christian Trabold TYPO3 Developer Days 2011 Improving Quality with automation

How healthy is TYPO3?

Embed Size (px)

DESCRIPTION

Introducing the TYPO3 projects pear.typo3.org, ci.typo3.org and metrics.typo3.org Talk about lessons we learned and what's the Roadmap for improving TYPO3 Core and TER quality.

Citation preview

Page 1: How healthy is TYPO3?

How healthy is TYPO3?

Christian TraboldTYPO3 Developer Days 2011

Improving Quality with automation

Page 2: How healthy is TYPO3?

Agenda

Introduction

Lessons learned

Roadmap for TYPO3 Core and TER

Examples

Questions & Answers

Page 3: How healthy is TYPO3?

Dowloads & Feedback

I am listening to you on twitter

@typo3_ci / @ctrabold

Ask!

It‘s okay to ask :)

More details in the workshop on Saturday 01:30PM in Room 20.401

Christian

Page 4: How healthy is TYPO3?

About me

Christian Trabold

Senior Developer

Web since 1999TYPO3 since 2004dkd since 2006

Focus on quality assurance

Author of TYPO3 Kochbuch, O‘Reilly

E-Mail [email protected] @ctrabold

Page 5: How healthy is TYPO3?

Kudos

Gerrit Integration, CodeSniffer, Core Job

Stefano Kowalke

Andy Grunwald

Steffen Gebert

Sebastian Kurfürst

Timo Webler

Karsten Dambekalns

Thanks dkd for sponsoring the Server!

Page 6: How healthy is TYPO3?

6

ci.typo3.org

What started one year ago

At TYPO3 Conference 2010 in Frankfurt

Page 7: How healthy is TYPO3?

Automate tests on your code

Use CPU power to help you

Providing reports and code metrics

Check for

Syntax errors

Design !aws

Copy & Paste code

We do check the code of more than 1300 Extensions from forge.typo3.org regulary

Page 8: How healthy is TYPO3?

http://www.!ickr.com/photos/!uzo/97673183/

Reports are a good start for good better quality.

Even a rough Report helps you to get quicker into the code.

But it turns out that the metrics are hard to find on ci.typo3.org and rather boring.so we introduced Sonar for displaying metrics.

Sonar is a tool specialized on displaying metrics.

Page 9: How healthy is TYPO3?

Project components

ci.typo3.orgmetrics.typo3.org

pear.typo3.org

Now we have these components:

Page 10: How healthy is TYPO3?

pear.typo3.org - The repository

Provides TYPO3 Coding Guidelines as phpCodeSniffer Rules

Provides a standardized interface for deploying packages through PEAR Channel

CodeSniffer

Page 11: How healthy is TYPO3?
Page 12: How healthy is TYPO3?

ci.typo3.org - The worker

Does the boring jobs over and over again

Gets triggered by Commits and new "les

Does lint & testing

Generates metrics

Has slaves

CodeSniffer

Continuous Testing

Page 13: How healthy is TYPO3?
Page 14: How healthy is TYPO3?

metrics.typo3.org - The dashboard

Displays metrics

Provides graphs

Allows deeper code analyses

CodeSniffer

Continuous Testing

Display Metrics

Page 15: How healthy is TYPO3?
Page 16: How healthy is TYPO3?

forge.typo3.org - The taskcenter

Colaborate

Collect ideas

Get things done

CodeSniffer

Continuous Testing

Display Metrics

Take action

Page 17: How healthy is TYPO3?
Page 18: How healthy is TYPO3?

Challenges

Understand the toolsLoad testingGather all extensions

What happend in this one year? We created a very big Jenkins installation; Learned a lot about Chef, Jenkins, Groovy, Sonar, Metrics... There were some wrong paths (we don't need documentation on ci.typo3.org for example)

Page 19: How healthy is TYPO3?

Mean: 2GB

Page 20: How healthy is TYPO3?

Mean: 17GB

Page 21: How healthy is TYPO3?

Move on!

NOW we have the right toolsand enough knowledge

Page 22: How healthy is TYPO3?

Roadmap

Testing TYPO3 CoreAnalyzing TYPO3 Extension Repository

Page 23: How healthy is TYPO3?

Core Jobs

Focus on TestingDeliver a stable product

Answers Question: How stable is our product?Metrics are nice to have

Page 24: How healthy is TYPO3?

Roadmap for core jobs

Find Syntax Errors

Sniff Code against TYPO3 CGL

Support Reviews on Gerrit

Page 25: How healthy is TYPO3?

Next tasks for core jobs

Run UnitTests for JavaScript and PHPon each commit

Check for Regressions Run User Acceptance Tests every night

Test Core in different versions with different OS and DB-Backends

Long term: Packaging

Page 26: How healthy is TYPO3?

Example Regression Test

Feature: Perform a search in the introduction package

Scenario: Visit Website Given I am on homepage When I fill in "spSearch" with "TYPO3" And I click on image "spSearchGo" Then I should see "Your search: TYPO3" And I should see "Results: 10"

Everybody can contribute tests

Page 27: How healthy is TYPO3?

Extension Jobs

Focus on code metricsKnow what's going on in TER

Testing is on developer side!

Page 28: How healthy is TYPO3?

Roadmap for extension jobs

Check for Duplicated Code

Detect Anti-Patterns and security !aws

Support Security Team in "nding code !aws

Next:

Integrate all extensions from TER

Answers Question: How healthy is TER?

Page 29: How healthy is TYPO3?

TER Karma is TYPO3 Karma

Everybody can publish extenstionsTER is world writeableTER is Userland with a huge unknown code base… and Security issues

TER can have bad influence on TYPO3-Karma

Page 30: How healthy is TYPO3?

Showcase

Wouldn't it be great to...

Page 31: How healthy is TYPO3?

Have an overview about security flaws

Page 32: How healthy is TYPO3?

Find such issues early

http://twitter.com/#!/xperseguers/status/87958204398583808

Page 33: How healthy is TYPO3?

Mark extensions as "imcompatible"

http://twitter.com/#!/xperseguers/status/80213031602225152

or provide a fix!

Page 34: How healthy is TYPO3?

Benefits

Get trending graphs for TYPO3 codebaseNumbers make marketing guys happy, too!See that Code gets better … or worse.

Metrics != everything, but a lotWe need experience interpreting the numbers. Tweak. Optimize. But it will help. - encouraging devs?

Page 35: How healthy is TYPO3?

Business values

Tell good from bad by numbersReduce risk before integrating extensions

Page 36: How healthy is TYPO3?

Use case: It's TYPO3 bugday and you have 2 hours time to work on code.

Which extension would you choose to work on? Hints: take a look on metrics.typo3.org

Page 37: How healthy is TYPO3?

Provide constructive feedback

Get overview of Extensions

http://www.!ickr.com/photos/69er/329057062/

Change the perspective!

Get back control.

Page 38: How healthy is TYPO3?

Tell me: How healthy is TYPO3?

Next conference we have real numbers ;-)

Metrics != everything, but a lotWe need experience interpreting the numbers. Tweak. Optimize. But it will help.

Page 39: How healthy is TYPO3?

Want to help?

Join the workshop!

Saturday 01:30PM Room 20.401

Nice to have: Unix / MacOS, Ruby, Groovy, Java; Admin for typo3.org?

Todos: unpack T3X files for TER; Provide WebInterface for querying forge extensions

Page 40: How healthy is TYPO3?

d dkdevelopmentkommunikationdesign

Thanks!