SlideShare a Scribd company logo
1 of 34
Download to read offline
Continuous Integration
                 Tools in Perl
                              Michael Peters
                              Plus Three, LP




YAPC::NA 10
Pittsburgh, PA
What is CI?

●Build and test all the time
●As soon as you can


●As loud as you can


●On as many platforms as you need


●On as many different configurations as you need
What is CI?

●Home grown (bash + email)
●CruiseControl


●Buildbot


●Tinderbox


●CABIE


●Smolder


Hudson, TeamCity, Continuum, Cerberus, ControlTier,
●

OpenMake Mojo, lots of others
Take a drink
CruiseControl

●http://cruisecontrol.sourceforge.net/
●Java based


●Very well known, "industry standard"


●Lots of plugins for lots of things


 ● SCM


 ● Notification


 ● Build management (make, Ant, Maven, rake)


 ● Lots more
CruiseControl

●Web UI
  ● View old builds/tests


  ● See what CruiseControl is doing right now


     ● Is it checking out code?


     ● Is it building?


●Build Loop Daemon


  ● Separate process to do the heavy lifting
CruiseControl
CruiseControl

Limitations and Complaints
 ● Not Perl (Java)


 ● Run loop is on a single machine


    ● They are working on distributed


 ● Format is not a standard


    ● Yes it's XML, but...


    ● Whatever JUnit spits out
CruiseControl

Limitations and Complaints
 ● Not Perl (Java)


 ● Run loop is on a single machine


    ● They are working on distributed


 ● Format is not a standard


    ● Yes it's XML, but...


    ● Whatever JUnit spits out


 ● All Java and all XML
Take a drink
Buildbot

●http://buildbot.net/trac
●Python based


●Designed to be distributed


   ● master/slave architecture


   ● nice for OSS projects and volunteers


●Tracks some metrics over time


   ● warnings


   ● link checks


   ● compile time


   ● etc
Buildbot

●Lots of notification channels
  ● Email


  ● IRC bot (real time insults)


  ● GTk app


●Lots of built-in support for CSMs


  ● CVS, svn, perforce, Bonsai, git, Mercurial,

    Bazaar,
●Web UI


●CLI
Buildbot
Buildbot

Limitations and Complaints
 ● Not Perl (Python)

 ● Sometimes too heavy

 ● Ugggggly

 ● It's complicated

 ● Configuration is all Python

 ● Format is not standard

     ● Whatever your test spits out and returns

 ● Developer's can't customize notifications for

   themselves
 ● No detailed breakdown of test failures
Take a drink
Tinderbox

●http://www.mozilla.org/projects/tinderbox
●Perl based


●Mozilla Project


   ● currently being rewritten


   ● used for Firefox, Thunderbird, etc


   ● Integrates with Bugzilla


   ● Only supports CVS


●Add comments to build runs


●Currently being rewritten


   ● Seems to use Buildbot underneath
Tinderbox
Tinderbox

Limitations and Complaints
 ● No packages, no releases (grab from CVS)

 ● Not much support

    ● from Mozilla

    ● nor the Perl community

 ● Just does CVS

 ● Developers can't customize their notifications

 ● Kind of ugly
Tinderbox

Limitations and Complaints
 ● Format is not standard

     append 3:
     object count 10 = 10 OK
     array count 13 = 13 OK
     0: 3=3 (0x84f9540) c: 4 OK
     1: 0=0 (0x84f9510) c: 1 OK
     2: 1=1 (0x84f9520) c: 1 OK
     3: 2=2 (0x84f9530) c: 1 OK
     4: 3=3 (0x84f9540) c: 4 OK
     5: 4=4 (0x84f9550) c: 1 OK
     6: 3=3 (0x84f9540) c: 4 OK
     7: 5=5 (0x84f9560) c: 1 OK
     8: 6=6 (0x84f9570) c: 1 OK
     9: 7=7 (0x84f9580) c: 1 OK
     10: 8=8 (0x84f9590) c: 1 OK
     11: 9=9 (0x84f95e8) c: 1 OK
     12: 3=3 (0x84f9540) c: 4 OK
Take a drink
CABIE

●http://cabie.tigris.org/
●Perl based


●Web UI and CLI tools


●Job daemon


   ● scheduled build jobs


   ● job priority


   ● job triggers


●Data stored in MySQL


●Email notification
CABIE
CABIE

Limitations and Complaints
 ● No installer

 ● Format is not standard

     ● Whatever text your build/test spit out and

       return
 ● It's ugly too

 ● No community support
Take a drink
Smolder

●http://github.com/mpeters/smolder/tree/master
●Perl based


●Web UI


●Some CLI tools


●CPAN installable


●Public and Private


   ● understands projects


   ● understands developers


●Being used for Parrot VM project
Smolder

●View detailed reports about exactly what failed
  ● Ajax/on-demand


  ● Much easier to find what went wrong


●All reports are submitted TAP Archives


●All data stored in SQLite


●Notification channels


  ● Email


  ● Atom


●Tags


●Trend reporting
Smolder
Smolder
Smolder

Limitations and Complaints
 ● Fair number of dependecies


    ● 44 deps


    ● 132 deps of deps of deps...


 ● HTTP::Server::Simple isn't very reliable


 ● Hard coded notification options (only email and

   Atom)
 ● No plugins for extra features


 ● No integration with other systems
Smolder

Limitations and Complaints
 ● No integrated build system


    ● simple bash script + cron


    ● SmokeRunner::Multi


    ● Module::Build::Smolder


 ● No notifications of build failures
Take a drink
My Dream Date

●Smolder and Buildbot sitting in a tree...
●Separate, but integrated build loop and reporting


●Build status and detailed test reporting


●Optionally distributed for multiple platforms and

parallel builds
●Standard formats


  ● TAP


  ● Something for the build notifications
My Dream Date

Pluggable architecture
●

 ● Notifications (email, twitter, building alarm system)

 ● SCM support

 ● Common build systems (make, Makefile.PL,

    Build.PL, Ant, Maven, rake)
●Expose the TAP metadata for plugins to use
   ● Link to bug reports

   ● Link to source code or specs

   ● visual diffs

●Installable via CPAN

●Packagable for distros
Continuous Integration
                         Tools in Perl
                                      Michael Peters
                                      Plus Three, LP




                           ¿?
       All comics borrowed from
        Toothpaste For Dinner
http://www.toothpastefordinner.com/

More Related Content

What's hot

What's hot (20)

Ui Testing with Ghost Inspector
Ui Testing with Ghost InspectorUi Testing with Ghost Inspector
Ui Testing with Ghost Inspector
 
Scripting robot
Scripting robotScripting robot
Scripting robot
 
Test driving-qml
Test driving-qmlTest driving-qml
Test driving-qml
 
POUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love youPOUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love you
 
Introducing Ghost Inspector
Introducing Ghost InspectorIntroducing Ghost Inspector
Introducing Ghost Inspector
 
Java-Jersey 到 Python-Flask 服務不中斷重構之旅
Java-Jersey 到 Python-Flask 服務不中斷重構之旅Java-Jersey 到 Python-Flask 服務不中斷重構之旅
Java-Jersey 到 Python-Flask 服務不中斷重構之旅
 
Testing sync engine
Testing sync engineTesting sync engine
Testing sync engine
 
Automatic codefixes
Automatic codefixesAutomatic codefixes
Automatic codefixes
 
Python in Test automation
Python in Test automationPython in Test automation
Python in Test automation
 
Javascript test frameworks
Javascript test frameworksJavascript test frameworks
Javascript test frameworks
 
Releasing High Quality Packages - Longhorn PHP 2021
Releasing High Quality Packages - Longhorn PHP 2021Releasing High Quality Packages - Longhorn PHP 2021
Releasing High Quality Packages - Longhorn PHP 2021
 
CommandBox & ForgeBox Package Management
CommandBox & ForgeBox Package ManagementCommandBox & ForgeBox Package Management
CommandBox & ForgeBox Package Management
 
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
 
Automate Thyself
Automate ThyselfAutomate Thyself
Automate Thyself
 
Hadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoopHadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoop
 
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecerTDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
 
Maven - Taming the Beast
Maven - Taming the BeastMaven - Taming the Beast
Maven - Taming the Beast
 
KYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under ControlKYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under Control
 
Managing Modules Without Going Crazy (NPW 2007)
Managing Modules Without Going Crazy (NPW 2007)Managing Modules Without Going Crazy (NPW 2007)
Managing Modules Without Going Crazy (NPW 2007)
 
Create an architecture for web test automation
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automation
 

Similar to Perl Continous Integration

Creating a mature puppet system
Creating a mature puppet systemCreating a mature puppet system
Creating a mature puppet system
rkhatibi
 
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with CobblerCodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest
 

Similar to Perl Continous Integration (20)

Instant LAMP Stack with Vagrant and Puppet
Instant LAMP Stack with Vagrant and PuppetInstant LAMP Stack with Vagrant and Puppet
Instant LAMP Stack with Vagrant and Puppet
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipeline
 
Scaling Magento
Scaling MagentoScaling Magento
Scaling Magento
 
Road to sbt 1.0 paved with server
Road to sbt 1.0   paved with serverRoad to sbt 1.0   paved with server
Road to sbt 1.0 paved with server
 
LCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at LinaroLCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at Linaro
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
 
Survival of the Continuist
Survival of the ContinuistSurvival of the Continuist
Survival of the Continuist
 
Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023
 
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven Infrastructure
 
Creating a Mature Puppet System
Creating a Mature Puppet SystemCreating a Mature Puppet System
Creating a Mature Puppet System
 
Creating a mature puppet system
Creating a mature puppet systemCreating a mature puppet system
Creating a mature puppet system
 
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with CobblerCodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
 
Making sense of the front-end, for PHP developers
Making sense of the front-end, for PHP developersMaking sense of the front-end, for PHP developers
Making sense of the front-end, for PHP developers
 
Creating a reasonable project boilerplate
Creating a reasonable project boilerplateCreating a reasonable project boilerplate
Creating a reasonable project boilerplate
 
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff  - Mykel Alvis at Puppet Camp AltantaDon't Suck at Building Stuff  - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
 
Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projects
 
Gestión de infraestructura tomcat/Tom EE con tfactory
Gestión de infraestructura tomcat/Tom EE con tfactoryGestión de infraestructura tomcat/Tom EE con tfactory
Gestión de infraestructura tomcat/Tom EE con tfactory
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Perl Continous Integration

  • 1. Continuous Integration Tools in Perl Michael Peters Plus Three, LP YAPC::NA 10 Pittsburgh, PA
  • 2. What is CI? ●Build and test all the time ●As soon as you can ●As loud as you can ●On as many platforms as you need ●On as many different configurations as you need
  • 3. What is CI? ●Home grown (bash + email) ●CruiseControl ●Buildbot ●Tinderbox ●CABIE ●Smolder Hudson, TeamCity, Continuum, Cerberus, ControlTier, ● OpenMake Mojo, lots of others
  • 5. CruiseControl ●http://cruisecontrol.sourceforge.net/ ●Java based ●Very well known, "industry standard" ●Lots of plugins for lots of things ● SCM ● Notification ● Build management (make, Ant, Maven, rake) ● Lots more
  • 6. CruiseControl ●Web UI ● View old builds/tests ● See what CruiseControl is doing right now ● Is it checking out code? ● Is it building? ●Build Loop Daemon ● Separate process to do the heavy lifting
  • 8. CruiseControl Limitations and Complaints ● Not Perl (Java) ● Run loop is on a single machine ● They are working on distributed ● Format is not a standard ● Yes it's XML, but... ● Whatever JUnit spits out
  • 9. CruiseControl Limitations and Complaints ● Not Perl (Java) ● Run loop is on a single machine ● They are working on distributed ● Format is not a standard ● Yes it's XML, but... ● Whatever JUnit spits out ● All Java and all XML
  • 11. Buildbot ●http://buildbot.net/trac ●Python based ●Designed to be distributed ● master/slave architecture ● nice for OSS projects and volunteers ●Tracks some metrics over time ● warnings ● link checks ● compile time ● etc
  • 12. Buildbot ●Lots of notification channels ● Email ● IRC bot (real time insults) ● GTk app ●Lots of built-in support for CSMs ● CVS, svn, perforce, Bonsai, git, Mercurial, Bazaar, ●Web UI ●CLI
  • 14. Buildbot Limitations and Complaints ● Not Perl (Python) ● Sometimes too heavy ● Ugggggly ● It's complicated ● Configuration is all Python ● Format is not standard ● Whatever your test spits out and returns ● Developer's can't customize notifications for themselves ● No detailed breakdown of test failures
  • 16. Tinderbox ●http://www.mozilla.org/projects/tinderbox ●Perl based ●Mozilla Project ● currently being rewritten ● used for Firefox, Thunderbird, etc ● Integrates with Bugzilla ● Only supports CVS ●Add comments to build runs ●Currently being rewritten ● Seems to use Buildbot underneath
  • 18. Tinderbox Limitations and Complaints ● No packages, no releases (grab from CVS) ● Not much support ● from Mozilla ● nor the Perl community ● Just does CVS ● Developers can't customize their notifications ● Kind of ugly
  • 19. Tinderbox Limitations and Complaints ● Format is not standard append 3: object count 10 = 10 OK array count 13 = 13 OK 0: 3=3 (0x84f9540) c: 4 OK 1: 0=0 (0x84f9510) c: 1 OK 2: 1=1 (0x84f9520) c: 1 OK 3: 2=2 (0x84f9530) c: 1 OK 4: 3=3 (0x84f9540) c: 4 OK 5: 4=4 (0x84f9550) c: 1 OK 6: 3=3 (0x84f9540) c: 4 OK 7: 5=5 (0x84f9560) c: 1 OK 8: 6=6 (0x84f9570) c: 1 OK 9: 7=7 (0x84f9580) c: 1 OK 10: 8=8 (0x84f9590) c: 1 OK 11: 9=9 (0x84f95e8) c: 1 OK 12: 3=3 (0x84f9540) c: 4 OK
  • 21. CABIE ●http://cabie.tigris.org/ ●Perl based ●Web UI and CLI tools ●Job daemon ● scheduled build jobs ● job priority ● job triggers ●Data stored in MySQL ●Email notification
  • 22. CABIE
  • 23. CABIE Limitations and Complaints ● No installer ● Format is not standard ● Whatever text your build/test spit out and return ● It's ugly too ● No community support
  • 25. Smolder ●http://github.com/mpeters/smolder/tree/master ●Perl based ●Web UI ●Some CLI tools ●CPAN installable ●Public and Private ● understands projects ● understands developers ●Being used for Parrot VM project
  • 26. Smolder ●View detailed reports about exactly what failed ● Ajax/on-demand ● Much easier to find what went wrong ●All reports are submitted TAP Archives ●All data stored in SQLite ●Notification channels ● Email ● Atom ●Tags ●Trend reporting
  • 29. Smolder Limitations and Complaints ● Fair number of dependecies ● 44 deps ● 132 deps of deps of deps... ● HTTP::Server::Simple isn't very reliable ● Hard coded notification options (only email and Atom) ● No plugins for extra features ● No integration with other systems
  • 30. Smolder Limitations and Complaints ● No integrated build system ● simple bash script + cron ● SmokeRunner::Multi ● Module::Build::Smolder ● No notifications of build failures
  • 32. My Dream Date ●Smolder and Buildbot sitting in a tree... ●Separate, but integrated build loop and reporting ●Build status and detailed test reporting ●Optionally distributed for multiple platforms and parallel builds ●Standard formats ● TAP ● Something for the build notifications
  • 33. My Dream Date Pluggable architecture ● ● Notifications (email, twitter, building alarm system) ● SCM support ● Common build systems (make, Makefile.PL, Build.PL, Ant, Maven, rake) ●Expose the TAP metadata for plugins to use ● Link to bug reports ● Link to source code or specs ● visual diffs ●Installable via CPAN ●Packagable for distros
  • 34. Continuous Integration Tools in Perl Michael Peters Plus Three, LP ¿? All comics borrowed from Toothpaste For Dinner http://www.toothpastefordinner.com/