SlideShare a Scribd company logo
1 of 31
Download to read offline
Brussels, 02. - 03.02.2013



                                                                1




The Development Infrastructure
            of the
        TYPO3 project



                                                 Lizenz: CC BY-SA 3.0
                                  (pictures of other authors excluded)
Brussels, 02. - 03.02.2013



What to expect from this talk?                                                          2



✘   Learn to set up a perfect development infrastructure

✘   See the perfect infrastructure of the TYPO3 project


✔ Learn how people in another FLOSS project work
✔ See an infrastructure built from 100% open-source
?   Find inspiration for your project

?   Get in touch with me/us for collaboration


               admin@typo3.org - we’re happy to share!
Brussels, 02. - 03.02.2013



Steffen Gebert                                                         3



 • TYPO3 CMS Core Team Member
   (2010-2012)

 • TYPO3 Server Admin Team Member
   (since 2011)

 • PhD Student in Computer Science
   (Communication Networks, since 2011)




 • E-Mail: steffen.gebert@typo3.org
   Twitter: @StGebert
Brussels, 02. - 03.02.2013



         Questions!                                                                         4




                                              • Happy to answer
                                                your questions!

                                              • Come down here
                                                after the talk!




                                              comments included!




                                              • Slides available
Foto “Question mark”: Yello-Dog
http://www.sxc.hu/photo/1279316
                                                http://slideshare.net/stephenking/
nice that you found the slides - have fun ☺
Brussels, 02. - 03.02.2013



What’s TYPO3?                                                                       5



 • TYPO3 CMS
   • Started: 1997, first release: 1999
   • More than 5M downloads
   • PHP-based, GPLv2
 • New products
   • TYPO3 Flow: PHP framework
     • “TYPO3 Flow and the Joy of Development” by Robert Lemke
       from yesterday
   • TYPO3 Neos
     • New CMS based on TYPO3 Flow - alpha state
Brussels, 02. - 03.02.2013



Who’s TYPO3?                                                                               6



 • TYPO3 is community-driven open-source

   • no company behind, TYPO3 Association for financial support

 • Core teams steering development (99.x% volunteer work)

   • CMS with ~25ppl., Flow/Neos with ~12ppl.


                                                                              Photo: Tobias Liebig
Brussels, 02. - 03.02.2013



                                                                                    7




                                 Requirements of an
                                 Open Source Project




Photo by brokenarts:
http://www.sxc.hu/photo/207291
Brussels, 02. - 03.02.2013



            Requirements                                                                              8



                 • Collaboration & Communication

                 • Source Code & Versioning

                 • Quality Assurance & Testing

                 • Documentation & Translation




Photo by brokenarts:
http://www.sxc.hu/photo/207291

 There are couple of temas working on tasks other than development
 - Design, Usability, Marketing, Screencast, Event teams
 - Teams and committees of the TYPO3 Association (Board, Expert Advisory Board, Budget
 Control Committee)
Brussels, 02. - 03.02.2013



Using own infrastructure                                                                    9



 • We’ve been there before Github ☺
 • Sourceforge.net initially used for CVS

   • Got hacked, often unreliable

 • Owning our data (esp. issue tracker)
 • Own account management

 • Provide central place and connected services for the TYPO3 community

 • Nevertheless, open towards great, free hosted services for less critical
   things

 • Human resources are a problem, of course
Brussels, 02. - 03.02.2013



                                                                                             10




                                  Communication and Collaboration




Image by fangol:
http://www.sxc.hu/photo/1269811
Brussels, 02. - 03.02.2013



Communication in the TYPO3 Project                                              11



 • Mailing lists and news groups used since 2003

 • Ten years later (last Monday):




                       forum.typo3.org
Brussels, 02. - 03.02.2013



            Forum and Official Communication                                                             12



                • Forum

                       • Based on FUDforum

                       • Bi-directional sync with news groups

                • Easier access to official channels (we hope..)

                       • Decisions take place in lists

                       • Transparency towards more people

                       • Avoid hidden communication

                       • Avoid surprises (well, we still fail too often)

Image by svilen001:
http://www.sxc.hu/photo/1165445
Brussels, 02. - 03.02.2013



     Forge Platform                                                                                      13



       • Based on Redmine

       • Project space for 2400+ projects

           • Core projects, Community Extensions, Other teams

       • Features                          Want to contribute?
                                           ➪ See who’s responsible
           • Membership listing
                                         not the
           • Issue tracker
                                         best one ☹
           • Wiki, Repo Browser, Roadmap
             News, Time Tracking


                      forge.typo3.org
It’s often a bit chaotic in a big open source community. Being able to find the persons in
charge is important!
Forge is the place where to search.

We know that we’re running a very outdated redmine version. We’re sorry and ashamed.
We’re working on an upgrade.
Brussels, 02. - 03.02.2013



                                                                                                            14




                                                  Source Code and Versioning




Source:
http://nvie.com/posts/a-successful-git-branching-model/
Brussels, 02. - 03.02.2013



     Source Code Versioning                                                                                15



        • TYPO3 is using Git since 2010/11

           • .. but we use a special flavor of Git



        • Unfortunately still lot of extensions restricted to subversion




Yes.. it’s true. The high Subversion usage is our (=admin team) fault.. we still haven’t
launched official git support for community extensions. But it’s near.
Brussels, 02. - 03.02.2013



                                                                                               16




                                  Quality Assurance and Testing




Photo by bredmakers:
http://www.sxc.hu/photo/1280927
Brussels, 02. - 03.02.2013



            Motivation for Code Reviews                                                                  17



                 • Bugs do exist

                 • Ensure code quality through peer-reviews (4 eyes in our case)

                 • Discussing code improves it

                 • Reviews before merge

                 • Learn from each other

                 • Make development transparent, involves community

                 • Using Gerrit Code Review as Git server and review tool



Photo by asifthebes:
http://www.sxc.hu/photo/912841

 every change has to be reviewed by at least two other persons, one of them being team
 member
Brussels, 02. - 03.02.2013



     Gerrit Code Review                                                                                 18




                                review.typo3.org

All code-changes for core projects are peer-reviewed by at least two people (one of them
team member)
(Disclaimer: except trivial changes)
Brussels, 02. - 03.02.2013



Gerrit Code Review                                19
Brussels, 02. - 03.02.2013



Gerrit Code Review                                                   20



 • Diff view




                     review.typo3.org
Brussels, 02. - 03.02.2013



More About Gerrit                                                                21




               Interested in more Gerrit details?



 “Using Gerrit Code Review in an open-source project”
                         by myself :-)



                       Here at 15:40
Brussels, 02. - 03.02.2013



Continuous Integration and Code Quality                                                 22



 • ci.typo3.org runs our Jenkins server

   • PHP lint (syntax check)

   • PHP CodeSniffer (enforcement of Coding Guide Lines)

   • PHP Mess detector

   • Automatic down-vote in Gerrit in case of violations

 • metrics.typo3.org runs Sonar

   • Code Metrics

   • For Core and Extensions, 5600+ projects
Brussels, 02. - 03.02.2013



     TravisCI - More Continuous Integration                                                                 23



        • TravisCI is


           »a hosted continuous integration service for the open source community«

        • What it does? It executes tests!

        • Fetches your code from Github

        • Supported languages: C++, Clojure, Erlang, Go, Groovy, Haskell, Java,
          JavaScript (with Node.js), Perl, PHP, Python, Ruby, Scala




To execute post-merge unit tests, we are replicating our Git repo to Github, from which
Travis fetches it.
In order to let Travis execute them for every patch set, we are currently building a tool to
push and fetch Travis’ results and add them to Gerrit.
Brussels, 02. - 03.02.2013



TravisCI                                                                                   24



 • Spins up virtual machines (using Vagrant and Chef)

 • Runs your unit tests in different an environments

 • Example:
    php:
    	
  	
  -­‐	
  5.2
    	
  	
  -­‐	
  5.3
    	
  	
  -­‐	
  5.4                       PHP 5.2    PHP 5.3          PHP 5.4

    env:
    	
  	
  -­‐	
  DB=mysql
                                  MySQL       ✔          ✔                   ✔
    	
  	
  -­‐	
  DB=pgsql
                                PostgreSQL    ✔          ✘                   ✔
Brussels, 02. - 03.02.2013



                                                                                                    25




                                       Documentation and Translation




Photo by topfer:                 Photo by ftibor:
http://www.sxc.hu/photo/969875   http://www.sxc.hu/photo/533821
Brussels, 02. - 03.02.2013



            Translating TYPO3                                                                        26



                 • Pootle-based

                 • Core + Extensions can be translated

                 • Language packages generated, provided for download




                                    translation.typo3.org
Photo by ftibor:
http://www.sxc.hu/photo/533821
Brussels, 02. - 03.02.2013



     Documentation                                                                                   27



       • Was a raw point for long time

          • Used OpenOffice 1.x .sxw files since ages

       • Migration to DocBook

          • started / planned, but format turned out to be too complicated

       • Migration to reStructuredText (reST)

          • Started ~2011

          • Milestone reached with TYPO3 6.0 (Oct. 2012): docs.typo3.org

          • TYPO3 CMS Core documentation converted to reST

                                                                            Photo by topfer:
                                                                            http://www.sxc.hu/photo/969875


- During .sxw times, we used a wiki page to write down pending documentation changes,
which sucked

- docbook format is based on xml, pretty heavyweight. Probably because of markdown,
people feel better with plain-text?
Brussels, 02. - 03.02.2013



     reStructuredText                                                                                  28


                                                              created for
       • Plain-text format, similar to markdown
                                                            docs.python.org
       • Parsed and rendered through sphinx

       • Rendering chain at TYPO3

          • Managed through TYPO3 Flow app                lower barrier
                                                          for adoption
          • Can import old .sxw files

          • You can view sources on docs.typo3.org!

          • Changes reviewed through Gerrit




Documentation is parsed and rendered through the tools docutils and sphinx (both created
for docs.python.org).
http://docutils.sourceforge.net/rst.html
Intersphinx allows cross-manual referencing

Being able to import old manuals hopefully lowers the barrier to migrate documentation from
sxw to reST
Brussels, 02. - 03.02.2013



     Solutions at a Glance                                                                                29



       • Collaboration & Communication

           • Mailing lists / NNTP / Forum using FUDforum, Redmine

       • Source Code & Versioning

           • Git with Gerrit as server and review tool

       • Quality Assurance and Testing

           • Gerrit, Jenkins with couple PHP tools, TravisCI

       • Documentation & Translation

           • reStructuredText, sphinx, Pootle



Honestly, we use couple of more tools:

- mailman runs our mailing lists.. what else (ah, we have a sympa server vor TYPO3 Assoc
member lists, but I wouldn’t recommend that software)
- etherpad-lite for meeting notes and collaborative writing: http://notes.typo3.org
- BigBlueButton web conferencing server: http://bigbluebutton.typo3.org
- and we have been using Mantis as bug tracker for years. Mantis (http://bugs.typo3.org) is
now archived and Redmine (http://forge.typo3.org) acts as tracker for *all* TYPO3 projects.

- yes, we are still running a subversion server for some thousand projects
-
Brussels, 02. - 03.02.2013



         Questions!                                                             30




                                  • Happy to answer
                                    your questions!

                                  • @StGebert on Twitter

                                  • steffen.gebert@typo3.org



                                  comments included!




                                  • Slides available
Foto “Question mark”: Yello-Dog
http://www.sxc.hu/photo/1279316
                                    http://slideshare.net/stephenking/
inspiring people to share


       inspiring people to share

More Related Content

Similar to The Development Infrastructure of the TYPO3 Project

Clipper jisc rdn cambridge 2016
Clipper jisc rdn cambridge 2016Clipper jisc rdn cambridge 2016
Clipper jisc rdn cambridge 2016John Casey
 
Clipper, research data network
Clipper, research data networkClipper, research data network
Clipper, research data networkJisc RDM
 
Polarsys Talk EclipseCon Europe 2012
Polarsys Talk EclipseCon Europe 2012Polarsys Talk EclipseCon Europe 2012
Polarsys Talk EclipseCon Europe 2012Gaël Blondelle
 
Svenska Yle metadata and data first
Svenska Yle metadata and data firstSvenska Yle metadata and data first
Svenska Yle metadata and data firstMicke Hindsberg
 
Open Development in the enterprise, September 2013 version
Open Development in the enterprise, September 2013 versionOpen Development in the enterprise, September 2013 version
Open Development in the enterprise, September 2013 versionBertrand Delacretaz
 
Discover eZ Publish: why you have to know this product
Discover eZ Publish: why you have to know this productDiscover eZ Publish: why you have to know this product
Discover eZ Publish: why you have to know this productBertrand Dunogier
 
Mozilla Research Party Talk
Mozilla Research Party TalkMozilla Research Party Talk
Mozilla Research Party TalkBrendan Eich
 
Equipment of Contribution
Equipment of ContributionEquipment of Contribution
Equipment of ContributionPhase2
 
OOP/MM 2017: "Seven (More) Deadly Sins of Microservices"
OOP/MM 2017: "Seven (More) Deadly Sins of Microservices"OOP/MM 2017: "Seven (More) Deadly Sins of Microservices"
OOP/MM 2017: "Seven (More) Deadly Sins of Microservices"Daniel Bryant
 
Guide to open source
Guide to open source Guide to open source
Guide to open source Javier Perez
 
Building and Sustaining a Community using the Social Web
Building and Sustaining a Community using the Social WebBuilding and Sustaining a Community using the Social Web
Building and Sustaining a Community using the Social Weblisbk
 
InnoTube: a collaborative WEB2.0 platform (presented in Paris)
InnoTube: a collaborative WEB2.0 platform (presented in Paris)InnoTube: a collaborative WEB2.0 platform (presented in Paris)
InnoTube: a collaborative WEB2.0 platform (presented in Paris)Angelo Marco LUCCINI
 
IT and community
IT and communityIT and community
IT and communityXioNoX
 
Open Source Social Software
Open Source Social SoftwareOpen Source Social Software
Open Source Social SoftwareJosie Fraser
 
BCS 2016 "Intro to Microservices (and the Seven Deadly Sins)"
BCS 2016 "Intro to Microservices (and the Seven Deadly Sins)"BCS 2016 "Intro to Microservices (and the Seven Deadly Sins)"
BCS 2016 "Intro to Microservices (and the Seven Deadly Sins)"Daniel Bryant
 
Social Coding Platforms Facilitate Variant Forks
Social Coding Platforms Facilitate Variant ForksSocial Coding Platforms Facilitate Variant Forks
Social Coding Platforms Facilitate Variant ForksUniversity of Antwerp
 
MediaMosa 3.x Release 
& Transcripting Project - Community day - 8 december ...
MediaMosa 3.x Release 
& Transcripting Project  - Community day - 8 december ...MediaMosa 3.x Release 
& Transcripting Project  - Community day - 8 december ...
MediaMosa 3.x Release 
& Transcripting Project - Community day - 8 december ...MediaMosa
 

Similar to The Development Infrastructure of the TYPO3 Project (20)

Clipper jisc rdn cambridge 2016
Clipper jisc rdn cambridge 2016Clipper jisc rdn cambridge 2016
Clipper jisc rdn cambridge 2016
 
Clipper, research data network
Clipper, research data networkClipper, research data network
Clipper, research data network
 
Polarsys Talk EclipseCon Europe 2012
Polarsys Talk EclipseCon Europe 2012Polarsys Talk EclipseCon Europe 2012
Polarsys Talk EclipseCon Europe 2012
 
Svenska Yle metadata and data first
Svenska Yle metadata and data firstSvenska Yle metadata and data first
Svenska Yle metadata and data first
 
AntoineLambertResume
AntoineLambertResumeAntoineLambertResume
AntoineLambertResume
 
Open Development in the enterprise, September 2013 version
Open Development in the enterprise, September 2013 versionOpen Development in the enterprise, September 2013 version
Open Development in the enterprise, September 2013 version
 
Discover eZ Publish: why you have to know this product
Discover eZ Publish: why you have to know this productDiscover eZ Publish: why you have to know this product
Discover eZ Publish: why you have to know this product
 
Mozilla Research Party Talk
Mozilla Research Party TalkMozilla Research Party Talk
Mozilla Research Party Talk
 
Equipment of Contribution
Equipment of ContributionEquipment of Contribution
Equipment of Contribution
 
OOP/MM 2017: "Seven (More) Deadly Sins of Microservices"
OOP/MM 2017: "Seven (More) Deadly Sins of Microservices"OOP/MM 2017: "Seven (More) Deadly Sins of Microservices"
OOP/MM 2017: "Seven (More) Deadly Sins of Microservices"
 
Guide to open source
Guide to open source Guide to open source
Guide to open source
 
Building and Sustaining a Community using the Social Web
Building and Sustaining a Community using the Social WebBuilding and Sustaining a Community using the Social Web
Building and Sustaining a Community using the Social Web
 
InnoTube: a collaborative WEB2.0 platform (presented in Paris)
InnoTube: a collaborative WEB2.0 platform (presented in Paris)InnoTube: a collaborative WEB2.0 platform (presented in Paris)
InnoTube: a collaborative WEB2.0 platform (presented in Paris)
 
Personal learning environment
Personal learning environmentPersonal learning environment
Personal learning environment
 
IT and community
IT and communityIT and community
IT and community
 
FLOSS development
FLOSS developmentFLOSS development
FLOSS development
 
Open Source Social Software
Open Source Social SoftwareOpen Source Social Software
Open Source Social Software
 
BCS 2016 "Intro to Microservices (and the Seven Deadly Sins)"
BCS 2016 "Intro to Microservices (and the Seven Deadly Sins)"BCS 2016 "Intro to Microservices (and the Seven Deadly Sins)"
BCS 2016 "Intro to Microservices (and the Seven Deadly Sins)"
 
Social Coding Platforms Facilitate Variant Forks
Social Coding Platforms Facilitate Variant ForksSocial Coding Platforms Facilitate Variant Forks
Social Coding Platforms Facilitate Variant Forks
 
MediaMosa 3.x Release 
& Transcripting Project - Community day - 8 december ...
MediaMosa 3.x Release 
& Transcripting Project  - Community day - 8 december ...MediaMosa 3.x Release 
& Transcripting Project  - Community day - 8 december ...
MediaMosa 3.x Release 
& Transcripting Project - Community day - 8 december ...
 

More from Steffen Gebert

Building an IoT SuperNetwork on top of the AWS Global Infrastructure
Building an IoT SuperNetwork on top of the AWS Global InfrastructureBuilding an IoT SuperNetwork on top of the AWS Global Infrastructure
Building an IoT SuperNetwork on top of the AWS Global InfrastructureSteffen Gebert
 
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...Steffen Gebert
 
Feature Management Platforms
Feature Management PlatformsFeature Management Platforms
Feature Management PlatformsSteffen Gebert
 
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT DevicesServerless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT DevicesSteffen Gebert
 
How our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical RoutersHow our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical RoutersSteffen Gebert
 
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)Steffen Gebert
 
Jenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipelineJenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipelineSteffen Gebert
 
Monitoring Akka with Kamon 1.0
Monitoring Akka with Kamon 1.0Monitoring Akka with Kamon 1.0
Monitoring Akka with Kamon 1.0Steffen Gebert
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins PipelinesSteffen Gebert
 
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesAn Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesSteffen Gebert
 
Let's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a CertificateLet's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a CertificateSteffen Gebert
 
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebCleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebSteffen Gebert
 
SDN interfaces and performance analysis of SDN components
SDN interfaces and performance analysis of SDN componentsSDN interfaces and performance analysis of SDN components
SDN interfaces and performance analysis of SDN componentsSteffen Gebert
 
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-EntwicklungDer Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-EntwicklungSteffen Gebert
 
Official typo3.org infrastructure &
the TYPO3 Server Admin Team
Official typo3.org infrastructure &
the TYPO3 Server Admin TeamOfficial typo3.org infrastructure &
the TYPO3 Server Admin Team
Official typo3.org infrastructure &
the TYPO3 Server Admin TeamSteffen Gebert
 
Neuigkeiten aus dem TYPO3-Projekt
Neuigkeiten aus dem TYPO3-ProjektNeuigkeiten aus dem TYPO3-Projekt
Neuigkeiten aus dem TYPO3-ProjektSteffen Gebert
 
The TYPO3 Server Admin Team
The TYPO3 Server Admin TeamThe TYPO3 Server Admin Team
The TYPO3 Server Admin TeamSteffen Gebert
 

More from Steffen Gebert (20)

Building an IoT SuperNetwork on top of the AWS Global Infrastructure
Building an IoT SuperNetwork on top of the AWS Global InfrastructureBuilding an IoT SuperNetwork on top of the AWS Global Infrastructure
Building an IoT SuperNetwork on top of the AWS Global Infrastructure
 
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
Wenn selbst ‘erlaube allen Verkehr von 0.0.0.0/0’ nicht hilft - Verbindungspr...
 
Feature Management Platforms
Feature Management PlatformsFeature Management Platforms
Feature Management Platforms
 
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT DevicesServerless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
Serverless Networking - How We Provide Cloud-Native Connectivity for IoT Devices
 
How our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical RoutersHow our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical Routers
 
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
 
Jenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipelineJenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipeline
 
Monitoring Akka with Kamon 1.0
Monitoring Akka with Kamon 1.0Monitoring Akka with Kamon 1.0
Monitoring Akka with Kamon 1.0
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
 
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesAn Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Jenkins Pipelines
Jenkins PipelinesJenkins Pipelines
Jenkins Pipelines
 
Let's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a CertificateLet's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a Certificate
 
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the WebCleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
Cleaning Up the Dirt of the Nineties - How New Protocols are Modernizing the Web
 
SDN interfaces and performance analysis of SDN components
SDN interfaces and performance analysis of SDN componentsSDN interfaces and performance analysis of SDN components
SDN interfaces and performance analysis of SDN components
 
Git Power-Workshop
Git Power-WorkshopGit Power-Workshop
Git Power-Workshop
 
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-EntwicklungDer Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
 
Official typo3.org infrastructure &
the TYPO3 Server Admin Team
Official typo3.org infrastructure &
the TYPO3 Server Admin TeamOfficial typo3.org infrastructure &
the TYPO3 Server Admin Team
Official typo3.org infrastructure &
the TYPO3 Server Admin Team
 
Neuigkeiten aus dem TYPO3-Projekt
Neuigkeiten aus dem TYPO3-ProjektNeuigkeiten aus dem TYPO3-Projekt
Neuigkeiten aus dem TYPO3-Projekt
 
The TYPO3 Server Admin Team
The TYPO3 Server Admin TeamThe TYPO3 Server Admin Team
The TYPO3 Server Admin Team
 

Recently uploaded

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

The Development Infrastructure of the TYPO3 Project

  • 1. Brussels, 02. - 03.02.2013 1 The Development Infrastructure of the TYPO3 project Lizenz: CC BY-SA 3.0 (pictures of other authors excluded)
  • 2. Brussels, 02. - 03.02.2013 What to expect from this talk? 2 ✘ Learn to set up a perfect development infrastructure ✘ See the perfect infrastructure of the TYPO3 project ✔ Learn how people in another FLOSS project work ✔ See an infrastructure built from 100% open-source ? Find inspiration for your project ? Get in touch with me/us for collaboration admin@typo3.org - we’re happy to share!
  • 3. Brussels, 02. - 03.02.2013 Steffen Gebert 3 • TYPO3 CMS Core Team Member (2010-2012) • TYPO3 Server Admin Team Member (since 2011) • PhD Student in Computer Science (Communication Networks, since 2011) • E-Mail: steffen.gebert@typo3.org Twitter: @StGebert
  • 4. Brussels, 02. - 03.02.2013 Questions! 4 • Happy to answer your questions! • Come down here after the talk! comments included! • Slides available Foto “Question mark”: Yello-Dog http://www.sxc.hu/photo/1279316 http://slideshare.net/stephenking/ nice that you found the slides - have fun ☺
  • 5. Brussels, 02. - 03.02.2013 What’s TYPO3? 5 • TYPO3 CMS • Started: 1997, first release: 1999 • More than 5M downloads • PHP-based, GPLv2 • New products • TYPO3 Flow: PHP framework • “TYPO3 Flow and the Joy of Development” by Robert Lemke from yesterday • TYPO3 Neos • New CMS based on TYPO3 Flow - alpha state
  • 6. Brussels, 02. - 03.02.2013 Who’s TYPO3? 6 • TYPO3 is community-driven open-source • no company behind, TYPO3 Association for financial support • Core teams steering development (99.x% volunteer work) • CMS with ~25ppl., Flow/Neos with ~12ppl. Photo: Tobias Liebig
  • 7. Brussels, 02. - 03.02.2013 7 Requirements of an Open Source Project Photo by brokenarts: http://www.sxc.hu/photo/207291
  • 8. Brussels, 02. - 03.02.2013 Requirements 8 • Collaboration & Communication • Source Code & Versioning • Quality Assurance & Testing • Documentation & Translation Photo by brokenarts: http://www.sxc.hu/photo/207291 There are couple of temas working on tasks other than development - Design, Usability, Marketing, Screencast, Event teams - Teams and committees of the TYPO3 Association (Board, Expert Advisory Board, Budget Control Committee)
  • 9. Brussels, 02. - 03.02.2013 Using own infrastructure 9 • We’ve been there before Github ☺ • Sourceforge.net initially used for CVS • Got hacked, often unreliable • Owning our data (esp. issue tracker) • Own account management • Provide central place and connected services for the TYPO3 community • Nevertheless, open towards great, free hosted services for less critical things • Human resources are a problem, of course
  • 10. Brussels, 02. - 03.02.2013 10 Communication and Collaboration Image by fangol: http://www.sxc.hu/photo/1269811
  • 11. Brussels, 02. - 03.02.2013 Communication in the TYPO3 Project 11 • Mailing lists and news groups used since 2003 • Ten years later (last Monday): forum.typo3.org
  • 12. Brussels, 02. - 03.02.2013 Forum and Official Communication 12 • Forum • Based on FUDforum • Bi-directional sync with news groups • Easier access to official channels (we hope..) • Decisions take place in lists • Transparency towards more people • Avoid hidden communication • Avoid surprises (well, we still fail too often) Image by svilen001: http://www.sxc.hu/photo/1165445
  • 13. Brussels, 02. - 03.02.2013 Forge Platform 13 • Based on Redmine • Project space for 2400+ projects • Core projects, Community Extensions, Other teams • Features Want to contribute? ➪ See who’s responsible • Membership listing not the • Issue tracker best one ☹ • Wiki, Repo Browser, Roadmap News, Time Tracking forge.typo3.org It’s often a bit chaotic in a big open source community. Being able to find the persons in charge is important! Forge is the place where to search. We know that we’re running a very outdated redmine version. We’re sorry and ashamed. We’re working on an upgrade.
  • 14. Brussels, 02. - 03.02.2013 14 Source Code and Versioning Source: http://nvie.com/posts/a-successful-git-branching-model/
  • 15. Brussels, 02. - 03.02.2013 Source Code Versioning 15 • TYPO3 is using Git since 2010/11 • .. but we use a special flavor of Git • Unfortunately still lot of extensions restricted to subversion Yes.. it’s true. The high Subversion usage is our (=admin team) fault.. we still haven’t launched official git support for community extensions. But it’s near.
  • 16. Brussels, 02. - 03.02.2013 16 Quality Assurance and Testing Photo by bredmakers: http://www.sxc.hu/photo/1280927
  • 17. Brussels, 02. - 03.02.2013 Motivation for Code Reviews 17 • Bugs do exist • Ensure code quality through peer-reviews (4 eyes in our case) • Discussing code improves it • Reviews before merge • Learn from each other • Make development transparent, involves community • Using Gerrit Code Review as Git server and review tool Photo by asifthebes: http://www.sxc.hu/photo/912841 every change has to be reviewed by at least two other persons, one of them being team member
  • 18. Brussels, 02. - 03.02.2013 Gerrit Code Review 18 review.typo3.org All code-changes for core projects are peer-reviewed by at least two people (one of them team member) (Disclaimer: except trivial changes)
  • 19. Brussels, 02. - 03.02.2013 Gerrit Code Review 19
  • 20. Brussels, 02. - 03.02.2013 Gerrit Code Review 20 • Diff view review.typo3.org
  • 21. Brussels, 02. - 03.02.2013 More About Gerrit 21 Interested in more Gerrit details? “Using Gerrit Code Review in an open-source project” by myself :-) Here at 15:40
  • 22. Brussels, 02. - 03.02.2013 Continuous Integration and Code Quality 22 • ci.typo3.org runs our Jenkins server • PHP lint (syntax check) • PHP CodeSniffer (enforcement of Coding Guide Lines) • PHP Mess detector • Automatic down-vote in Gerrit in case of violations • metrics.typo3.org runs Sonar • Code Metrics • For Core and Extensions, 5600+ projects
  • 23. Brussels, 02. - 03.02.2013 TravisCI - More Continuous Integration 23 • TravisCI is »a hosted continuous integration service for the open source community« • What it does? It executes tests! • Fetches your code from Github • Supported languages: C++, Clojure, Erlang, Go, Groovy, Haskell, Java, JavaScript (with Node.js), Perl, PHP, Python, Ruby, Scala To execute post-merge unit tests, we are replicating our Git repo to Github, from which Travis fetches it. In order to let Travis execute them for every patch set, we are currently building a tool to push and fetch Travis’ results and add them to Gerrit.
  • 24. Brussels, 02. - 03.02.2013 TravisCI 24 • Spins up virtual machines (using Vagrant and Chef) • Runs your unit tests in different an environments • Example: php:    -­‐  5.2    -­‐  5.3    -­‐  5.4 PHP 5.2 PHP 5.3 PHP 5.4 env:    -­‐  DB=mysql MySQL ✔ ✔ ✔    -­‐  DB=pgsql PostgreSQL ✔ ✘ ✔
  • 25. Brussels, 02. - 03.02.2013 25 Documentation and Translation Photo by topfer: Photo by ftibor: http://www.sxc.hu/photo/969875 http://www.sxc.hu/photo/533821
  • 26. Brussels, 02. - 03.02.2013 Translating TYPO3 26 • Pootle-based • Core + Extensions can be translated • Language packages generated, provided for download translation.typo3.org Photo by ftibor: http://www.sxc.hu/photo/533821
  • 27. Brussels, 02. - 03.02.2013 Documentation 27 • Was a raw point for long time • Used OpenOffice 1.x .sxw files since ages • Migration to DocBook • started / planned, but format turned out to be too complicated • Migration to reStructuredText (reST) • Started ~2011 • Milestone reached with TYPO3 6.0 (Oct. 2012): docs.typo3.org • TYPO3 CMS Core documentation converted to reST Photo by topfer: http://www.sxc.hu/photo/969875 - During .sxw times, we used a wiki page to write down pending documentation changes, which sucked - docbook format is based on xml, pretty heavyweight. Probably because of markdown, people feel better with plain-text?
  • 28. Brussels, 02. - 03.02.2013 reStructuredText 28 created for • Plain-text format, similar to markdown docs.python.org • Parsed and rendered through sphinx • Rendering chain at TYPO3 • Managed through TYPO3 Flow app lower barrier for adoption • Can import old .sxw files • You can view sources on docs.typo3.org! • Changes reviewed through Gerrit Documentation is parsed and rendered through the tools docutils and sphinx (both created for docs.python.org). http://docutils.sourceforge.net/rst.html Intersphinx allows cross-manual referencing Being able to import old manuals hopefully lowers the barrier to migrate documentation from sxw to reST
  • 29. Brussels, 02. - 03.02.2013 Solutions at a Glance 29 • Collaboration & Communication • Mailing lists / NNTP / Forum using FUDforum, Redmine • Source Code & Versioning • Git with Gerrit as server and review tool • Quality Assurance and Testing • Gerrit, Jenkins with couple PHP tools, TravisCI • Documentation & Translation • reStructuredText, sphinx, Pootle Honestly, we use couple of more tools: - mailman runs our mailing lists.. what else (ah, we have a sympa server vor TYPO3 Assoc member lists, but I wouldn’t recommend that software) - etherpad-lite for meeting notes and collaborative writing: http://notes.typo3.org - BigBlueButton web conferencing server: http://bigbluebutton.typo3.org - and we have been using Mantis as bug tracker for years. Mantis (http://bugs.typo3.org) is now archived and Redmine (http://forge.typo3.org) acts as tracker for *all* TYPO3 projects. - yes, we are still running a subversion server for some thousand projects -
  • 30. Brussels, 02. - 03.02.2013 Questions! 30 • Happy to answer your questions! • @StGebert on Twitter • steffen.gebert@typo3.org comments included! • Slides available Foto “Question mark”: Yello-Dog http://www.sxc.hu/photo/1279316 http://slideshare.net/stephenking/
  • 31. inspiring people to share inspiring people to share