how healthy is typo3?
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.TRANSCRIPT
How healthy is TYPO3?
Christian TraboldTYPO3 Developer Days 2011
Improving Quality with automation
Agenda
Introduction
Lessons learned
Roadmap for TYPO3 Core and TER
Examples
Questions & Answers
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
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
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!
6
ci.typo3.org
What started one year ago
At TYPO3 Conference 2010 in Frankfurt
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
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.
Project components
ci.typo3.orgmetrics.typo3.org
pear.typo3.org
Now we have these components:
pear.typo3.org - The repository
Provides TYPO3 Coding Guidelines as phpCodeSniffer Rules
Provides a standardized interface for deploying packages through PEAR Channel
CodeSniffer
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
metrics.typo3.org - The dashboard
Displays metrics
Provides graphs
Allows deeper code analyses
CodeSniffer
Continuous Testing
Display Metrics
forge.typo3.org - The taskcenter
Colaborate
Collect ideas
Get things done
CodeSniffer
Continuous Testing
Display Metrics
Take action
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)
Mean: 2GB
Mean: 17GB
Move on!
NOW we have the right toolsand enough knowledge
Roadmap
Testing TYPO3 CoreAnalyzing TYPO3 Extension Repository
Core Jobs
Focus on TestingDeliver a stable product
Answers Question: How stable is our product?Metrics are nice to have
Roadmap for core jobs
Find Syntax Errors
Sniff Code against TYPO3 CGL
Support Reviews on Gerrit
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
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
Extension Jobs
Focus on code metricsKnow what's going on in TER
Testing is on developer side!
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?
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
Showcase
Wouldn't it be great to...
Have an overview about security flaws
Find such issues early
http://twitter.com/#!/xperseguers/status/87958204398583808
Mark extensions as "imcompatible"
http://twitter.com/#!/xperseguers/status/80213031602225152
or provide a fix!
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?
Business values
Tell good from bad by numbersReduce risk before integrating extensions
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
Provide constructive feedback
Get overview of Extensions
http://www.!ickr.com/photos/69er/329057062/
Change the perspective!
Get back control.
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.
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
d dkdevelopmentkommunikationdesign
Thanks!