SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
How healthy is
   TYPO3?
   Christian Trabold
   TYPO3 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 1999
 TYPO3 since 2004
 dkd since 2006
 Focus on quality assurance
 Author of TYPO3 Kochbuch, O‘Reilly
 E-Mail christian.trabold@dkd.de
 Twitter @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!
What started one year ago




                                            ci.typo3.org

                                        6

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
Reports are a good start
              for good better quality.


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

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
   pear.typo3.org
   ci.typo3.org
   metrics.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




                                 Co
                                   deS
                                       niff
                                            er
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

                               Co
                                 ntin
                                     uou
                                        sT
                                          est
                                             ing


                                 Co
                                   deS
                                       niff
                                            er
metrics.typo3.org - The dashboard

 Displays metrics
 Provides graphs
 Allows deeper code analyses


                                Dis
                                      pla
                                          y   Me
                                                   tric
                                                          s

                               Co
                                 ntin
                                     uou
                                        sT
                                          est
                                                          ing


                                 Co
                                   deS
                                       niff
                                            er
forge.typo3.org - The taskcenter

 Colaborate
 Collect ideas
 Get things done
                         Tak
                             e   act
                                    ion



                       Dis
                             pla
                                 y   Me
                                          tric
                                                 s

                      Co
                        ntin
                            uou
                               sT
                                 est
                                                 ing


                        Co
                          deS
                              niff
                                   er
Challenges

    Understand the tools
    Load testing
    Gather 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 tools
and enough knowledge
Roadmap

Testing TYPO3 Core
Analyzing TYPO3 Extension Repository
Core Jobs

  Focus on Testing
  Deliver 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 PHP
 on 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 metrics
    Know 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 extenstions
   TER is world writeable
   TER 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 codebase
    Numbers make marketing guys happy, too!
    See that Code gets better … or worse.




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

Tell good from bad by numbers
Reduce 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
Get overview of Extensions




               Provide constructive feedback

                                 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 lot
We 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
dkd
    development
    kommunikation
    design




Thanks!

Weitere ähnliche Inhalte

Andere mochten auch

AT presentation screengrabs
AT presentation screengrabsAT presentation screengrabs
AT presentation screengrabswienerdude
 
Mobile computing in medicine
Mobile computing in medicineMobile computing in medicine
Mobile computing in medicineDrew Provan
 
TYPO3 Extension development using new Extbase framework
TYPO3 Extension development using new Extbase frameworkTYPO3 Extension development using new Extbase framework
TYPO3 Extension development using new Extbase frameworkChristian Trabold
 
How to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensionsHow to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensionsChristian Trabold
 
Honeypot to Semantic Web interest group at the BBC
Honeypot to Semantic Web interest group at the BBCHoneypot to Semantic Web interest group at the BBC
Honeypot to Semantic Web interest group at the BBCSimon Cross
 

Andere mochten auch (6)

AT presentation screengrabs
AT presentation screengrabsAT presentation screengrabs
AT presentation screengrabs
 
Mobile computing in medicine
Mobile computing in medicineMobile computing in medicine
Mobile computing in medicine
 
TYPO3 Extension development using new Extbase framework
TYPO3 Extension development using new Extbase frameworkTYPO3 Extension development using new Extbase framework
TYPO3 Extension development using new Extbase framework
 
TYPO3 
Infrastructure
TYPO3 
InfrastructureTYPO3 
Infrastructure
TYPO3 
Infrastructure
 
How to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensionsHow to improve the quality of your TYPO3 extensions
How to improve the quality of your TYPO3 extensions
 
Honeypot to Semantic Web interest group at the BBC
Honeypot to Semantic Web interest group at the BBCHoneypot to Semantic Web interest group at the BBC
Honeypot to Semantic Web interest group at the BBC
 

Ähnlich wie How healthy is TYPO3?

How to use code metrics to improve quality
How to use code metrics to improve qualityHow to use code metrics to improve quality
How to use code metrics to improve qualityChristian Trabold
 
The Art of Social Media Analysis with Twitter & Python
The Art of Social Media Analysis with Twitter & PythonThe Art of Social Media Analysis with Twitter & Python
The Art of Social Media Analysis with Twitter & PythonKrishna Sankar
 
The Art of Social Media Analysis with Twitter & Python-OSCON 2012
The Art of Social Media Analysis with Twitter & Python-OSCON 2012The Art of Social Media Analysis with Twitter & Python-OSCON 2012
The Art of Social Media Analysis with Twitter & Python-OSCON 2012OSCON Byrum
 
Python for Machine Learning
Python for Machine LearningPython for Machine Learning
Python for Machine LearningStudent
 
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdfAngela Baxter
 
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdfBrooke Lord
 
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Juraj Martinka
 
Monitoring As Code: How to Integrate App Monitoring Into Your Developer Cycle
Monitoring As Code: How to Integrate App Monitoring Into Your Developer CycleMonitoring As Code: How to Integrate App Monitoring Into Your Developer Cycle
Monitoring As Code: How to Integrate App Monitoring Into Your Developer CycleAtlassian
 
From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018Christophe Rochefolle
 
How To Write Woring Paper In Mun Https Static1 Squ
How To Write Woring Paper In Mun  Https Static1 SquHow To Write Woring Paper In Mun  Https Static1 Squ
How To Write Woring Paper In Mun Https Static1 SquAlexis Naranjo
 
Enhancing Developer Productivity with Code Forensics
Enhancing Developer Productivity with Code ForensicsEnhancing Developer Productivity with Code Forensics
Enhancing Developer Productivity with Code ForensicsTechWell
 
2014 nicta-reproducibility
2014 nicta-reproducibility2014 nicta-reproducibility
2014 nicta-reproducibilityc.titus.brown
 
chapter-04(Computational Thinking).pptx
chapter-04(Computational Thinking).pptxchapter-04(Computational Thinking).pptx
chapter-04(Computational Thinking).pptxssuserf60ff6
 
Operationalizing Machine Learning in the Enterprise
Operationalizing Machine Learning in the EnterpriseOperationalizing Machine Learning in the Enterprise
Operationalizing Machine Learning in the Enterprisemark madsen
 
IRJET - Fake News Detection using Machine Learning
IRJET -  	  Fake News Detection using Machine LearningIRJET -  	  Fake News Detection using Machine Learning
IRJET - Fake News Detection using Machine LearningIRJET Journal
 
Code instrumentation
Code instrumentationCode instrumentation
Code instrumentationMennan Tekbir
 
The Testing Planet Issue 7
The Testing Planet Issue 7The Testing Planet Issue 7
The Testing Planet Issue 7Rosie Sherry
 

Ähnlich wie How healthy is TYPO3? (20)

How to use code metrics to improve quality
How to use code metrics to improve qualityHow to use code metrics to improve quality
How to use code metrics to improve quality
 
Better the devil you know
Better the devil you knowBetter the devil you know
Better the devil you know
 
Itpe brief
Itpe briefItpe brief
Itpe brief
 
The Art of Social Media Analysis with Twitter & Python
The Art of Social Media Analysis with Twitter & PythonThe Art of Social Media Analysis with Twitter & Python
The Art of Social Media Analysis with Twitter & Python
 
The Art of Social Media Analysis with Twitter & Python-OSCON 2012
The Art of Social Media Analysis with Twitter & Python-OSCON 2012The Art of Social Media Analysis with Twitter & Python-OSCON 2012
The Art of Social Media Analysis with Twitter & Python-OSCON 2012
 
Python for Machine Learning
Python for Machine LearningPython for Machine Learning
Python for Machine Learning
 
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
 
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
😊 Good Closing Paragraph. What Are The Best Ways To Start A Conclusion .pdf
 
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
 
Monitoring As Code: How to Integrate App Monitoring Into Your Developer Cycle
Monitoring As Code: How to Integrate App Monitoring Into Your Developer CycleMonitoring As Code: How to Integrate App Monitoring Into Your Developer Cycle
Monitoring As Code: How to Integrate App Monitoring Into Your Developer Cycle
 
From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018From Duke of DevOps to Queen of Chaos - Api days 2018
From Duke of DevOps to Queen of Chaos - Api days 2018
 
Python Open CV
Python Open CVPython Open CV
Python Open CV
 
How To Write Woring Paper In Mun Https Static1 Squ
How To Write Woring Paper In Mun  Https Static1 SquHow To Write Woring Paper In Mun  Https Static1 Squ
How To Write Woring Paper In Mun Https Static1 Squ
 
Enhancing Developer Productivity with Code Forensics
Enhancing Developer Productivity with Code ForensicsEnhancing Developer Productivity with Code Forensics
Enhancing Developer Productivity with Code Forensics
 
2014 nicta-reproducibility
2014 nicta-reproducibility2014 nicta-reproducibility
2014 nicta-reproducibility
 
chapter-04(Computational Thinking).pptx
chapter-04(Computational Thinking).pptxchapter-04(Computational Thinking).pptx
chapter-04(Computational Thinking).pptx
 
Operationalizing Machine Learning in the Enterprise
Operationalizing Machine Learning in the EnterpriseOperationalizing Machine Learning in the Enterprise
Operationalizing Machine Learning in the Enterprise
 
IRJET - Fake News Detection using Machine Learning
IRJET -  	  Fake News Detection using Machine LearningIRJET -  	  Fake News Detection using Machine Learning
IRJET - Fake News Detection using Machine Learning
 
Code instrumentation
Code instrumentationCode instrumentation
Code instrumentation
 
The Testing Planet Issue 7
The Testing Planet Issue 7The Testing Planet Issue 7
The Testing Planet Issue 7
 

Kürzlich hochgeladen

Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 

Kürzlich hochgeladen (20)

Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 

How healthy is TYPO3?

  • 1. How healthy is TYPO3? Christian Trabold TYPO3 Developer Days 2011 Improving Quality with automation
  • 2. Agenda Introduction Lessons learned Roadmap for TYPO3 Core and TER Examples Questions & Answers
  • 3. 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
  • 4. About me Christian Trabold Senior Developer Web since 1999 TYPO3 since 2004 dkd since 2006 Focus on quality assurance Author of TYPO3 Kochbuch, O‘Reilly E-Mail christian.trabold@dkd.de Twitter @ctrabold
  • 5. 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. What started one year ago ci.typo3.org 6 At TYPO3 Conference 2010 in Frankfurt
  • 7. 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
  • 8. Reports are a good start for good better quality. http://www. ickr.com/photos/ uzo/97673183/ 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.
  • 9. Project components pear.typo3.org ci.typo3.org metrics.typo3.org Now we have these components:
  • 10. pear.typo3.org - The repository Provides TYPO3 Coding Guidelines as phpCodeSniffer Rules Provides a standardized interface for deploying packages through PEAR Channel Co deS niff er
  • 11.
  • 12. 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 Co ntin uou sT est ing Co deS niff er
  • 13.
  • 14. metrics.typo3.org - The dashboard Displays metrics Provides graphs Allows deeper code analyses Dis pla y Me tric s Co ntin uou sT est ing Co deS niff er
  • 15.
  • 16. forge.typo3.org - The taskcenter Colaborate Collect ideas Get things done Tak e act ion Dis pla y Me tric s Co ntin uou sT est ing Co deS niff er
  • 17.
  • 18. Challenges Understand the tools Load testing Gather 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)
  • 21. Move on! NOW we have the right tools and enough knowledge
  • 22. Roadmap Testing TYPO3 Core Analyzing TYPO3 Extension Repository
  • 23. Core Jobs Focus on Testing Deliver a stable product Answers Question: How stable is our product? Metrics are nice to have
  • 24. Roadmap for core jobs Find Syntax Errors Sniff Code against TYPO3 CGL Support Reviews on Gerrit
  • 25. Next tasks for core jobs Run UnitTests for JavaScript and PHP on 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
  • 26. 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
  • 27. Extension Jobs Focus on code metrics Know what's going on in TER Testing is on developer side!
  • 28. 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?
  • 29. TER Karma is TYPO3 Karma Everybody can publish extenstions TER is world writeable TER is Userland with a huge unknown code base … and Security issues TER can have bad influence on TYPO3-Karma
  • 30. Showcase Wouldn't it be great to...
  • 31. Have an overview about security flaws
  • 32. Find such issues early http://twitter.com/#!/xperseguers/status/87958204398583808
  • 33. Mark extensions as "imcompatible" http://twitter.com/#!/xperseguers/status/80213031602225152 or provide a fix!
  • 34. Benefits Get trending graphs for TYPO3 codebase Numbers make marketing guys happy, too! See that Code gets better … or worse. Metrics != everything, but a lot We need experience interpreting the numbers. Tweak. Optimize. But it will help. - encouraging devs?
  • 35. Business values Tell good from bad by numbers Reduce risk before integrating extensions
  • 36. 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
  • 37. Get overview of Extensions Provide constructive feedback http://www. ickr.com/photos/69er/329057062/ Change the perspective! Get back control.
  • 38. Tell me: How healthy is TYPO3? Next conference we have real numbers ;-) Metrics != everything, but a lot We need experience interpreting the numbers. Tweak. Optimize. But it will help.
  • 39. 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
  • 40. dkd development kommunikation design Thanks!