SlideShare a Scribd company logo
Jenkins User Conference      San Francisco, Oct 2nd 2011   #jenkinsconf


       Twitter4J, Jenkins and Regression



                     Yusuke Yamamoto
                     Twitter4J.org / Twitter, Inc.
                                      http://twitter4j.org/
Jenkins User Conference   San Francisco, Oct 2nd 2011   #jenkinsconf



   Who Am I?




     10+ years experience in Java
     Author of open-source tools including:
      – Samurai http://samuraism.jp/samurai/
      – Twitter4J http://twitter4j.org/
Jenkins User Conference     San Francisco, Oct 2nd 2011   #jenkinsconf



   What is Twitter4J

     Open-source library for the Twitter API
     Compatible with
      – Java 1.4.2+
      – Android
      – Google App Engine
     Available since Jun 2007
Jenkins User Conference   San Francisco, Oct 2nd 2011   #jenkinsconf



   Tools Powering Twitter4J




                                           Maven Central repo
Jenkins User Conference        San Francisco, Oct 2nd 2011   #jenkinsconf


The release flow
                          release:perform

           git push origin master




                                               oss.sonatype.org
                          service hook
                                                    promote




     dev       twitter4j.org github.com repo1.maven.org
Jenkins User Conference     San Francisco, Oct 2nd 2011   #jenkinsconf



   Test-driven Development

            1. Write a test case which fails

            2. Implement and commit

            3. Run test cases

            4.   J NO regression
Jenkins User Conference   San Francisco, Oct 2nd 2011   #jenkinsconf



   The Timeline



     May 2007: Started Twitter4J project
     Mar 2009: Applied Hudson
Jenkins User Conference   San Francisco, Oct 2nd 2011   #jenkinsconf



   The Timeline



     May 2007: Started Twitter4J project
     Mar 2009: Applied Hudson

With Jenkins applied, your software
           should be regression free…
Jenkins User Conference   San Francisco, Oct 2nd 2011   #jenkinsconf



   The Timeline



     May 2007: Started Twitter4J project
     Mar 2009: Applied Hudson
     Oct 2010: Critical regression found
Jenkins User Conference   San Francisco, Oct 2nd 2011   #jenkinsconf



   The Timeline



     May 2007: Started Twitter4J project
     Mar 2009: Applied Hudson
     Oct 2010: Critical regression found


      The how and why
Jenkins User Conference     San Francisco, Oct 2nd 2011   #jenkinsconf




The Issue

 Version: Twitter4J 2.1.5
 Symptom: certain method calls fail with 401


401:Authentication credentials
  were missing or incorrect.
Jenkins User Conference           San Francisco, Oct 2nd 2011     #jenkinsconf




Direct Cause of the Issue
 bug in StringUtil – introduced in v2.1.5
  – leads invalid OAuth signature in certain condition
public static String[] split(String str, String separator){
 String[] returnValue;
 int index;
 if(-1 == str.indexOf(separator)){
  returnValue = new String[0];
 }else{
...

                            expected                     actual
  split(“foo,bar”,”,”)    {“foo”, “bar”}       √ {“foo”, “bar”}
  split(“foobar”,”,”)     {“foobar”}           L {}
Jenkins User Conference              San Francisco, Oct 2nd 2011   #jenkinsconf




 Why StringUtil.split()

  String#split() - @since Java1.4
  Found of a compatibility issue with CLDC
   – CLDC doesn’t support String#split()
Caused by: java.lang.NoSuchMethodError: java.lang.String: method split
           (Ljava/lang/String;)[Ljava/lang/String; not found
  at twitter4j.conf.PropertyConfiguration.setFieldsWithTreePath(Ljava/
 util/Properties;Ljava/lang/String;)V(PropertyConfiguration.java:196)
  at twitter4j.conf.PropertyConfiguration.<init>(Ljava/lang/String;)V
                   (PropertyConfiguration.java:121)
Jenkins User Conference       San Francisco, Oct 2nd 2011   #jenkinsconf




General Cause of Software Regressions



W/ test cases                 W/O test cases

        not enough test                    implementation
           coverage                       wrongly modified

                                       external resource
    test failure(s) ignored
                                      became incompatible
Jenkins User Conference      San Francisco, Oct 2nd 2011   #jenkinsconf




General Cause of Software Regressions



W/ test cases                W/O test cases

       not enough test                   implementation
          coverage                      wrongly modified

                                     external resource
   test failure(s) ignored
                                    became incompatible
Jenkins User Conference       San Francisco, Oct 2nd 2011   #jenkinsconf




General Cause of Software Regressions



W/ test cases                 W/O test cases

        not enough test                    implementation
           coverage                       wrongly modified

                                       external resource
    test failure(s) ignored
                                      became incompatible
Jenkins User Conference        San Francisco, Oct 2nd 2011   #jenkinsconf




Ignoring Failed Test Cases

 Generally not recommended
                  but
 Sometimes you need to, because
  – external resource not available
                          or
  – test failure caused by a component managed by
    other committer
Jenkins User Conference       San Francisco, Oct 2nd 2011   #jenkinsconf




General Cause of Software Regressions



W/ test cases                 W/O test cases

        not enough test                    implementation
           coverage                       wrongly modified

                                       external resource
    test failure(s) ignored
                                      became incompatible
Jenkins User Conference        San Francisco, Oct 2nd 2011   #jenkinsconf




General Cause of Software Regressions

 W/ test cases                 W/O test cases

         not enough test                   implementation
            coverage                      wrongly modified

                                        external resource
     test failure(s) ignored
                                       became incompatible

        test case wrongly
            modified
Jenkins User Conference               San Francisco, Oct 2nd 2011   #jenkinsconf



Ruined Tests with Basic Auth Deprecation
                          TwitterTestUnit
before refactoring:
                           test base class
 Basic auth & OAuth



                  BasicTest               OAuthTest
                 Basic auth                OAuth



 after refactoring:
  OAuth only                                     not recognized by Maven

                          TwitterTestUnit
Jenkins User Conference               San Francisco, Oct 2nd 2011   #jenkinsconf



Ruined Tests with Basic Auth Deprecation
                          TwitterTestUnit
before refactoring:
                           test base class
 Basic auth & OAuth



                  BasicTest               OAuthTest
                 Basic auth                OAuth



 after refactoring:
  OAuth only                                     not recognized by Maven

                          TwitterTestUnit
Jenkins User Conference   San Francisco, Oct 2nd 2011   #jenkinsconf




Lessons Learned - 1

 check the Ages of failed tests
Jenkins User Conference    San Francisco, Oct 2nd 2011   #jenkinsconf




Lessons Learned - 2
 be very careful when you refactor test cases
 make sure that
  – number of test cases doesn’t change many
  – code coverage doesn’t decrease




   smelly
   trend
Jenkins User Conference                San Francisco, Oct 2nd 2011   #jenkinsconf



   Thank You To Our Sponsors
    Platinum
    Sponsor

    Gold
    Sponsor

    Silver
    Sponsor

    Bronze
    Sponsors




Coming Soon: The CloudBees Newsletter for Jenkins

ü Please complete the Jenkins survey to help us better serve the community
     (bonus: a chance to win an Apple TV!)
Jenkins User Conference   San Francisco, Oct 2nd 2011   #jenkinsconf



   Who Am I?

More Related Content

Similar to Jenkins User Conference - Twitter4J, Jenkins and regression (20)

PDF
JUC NY - Advanced Continuous Deployment with Jenkins
XebiaLabs
 
PPTX
Beyond Continuous Delivery - Jenkins User Conference - 23 Oct 2014
Chris Hilton
 
PPTX
Jenkins For One
Mark Waite
 
PDF
QA in DevOps: Transformation thru Automation via Jenkins
Tatyana Kravtsov
 
PDF
Frank's Learning Summary - Evolution of agile testing
Frank Lee
 
PPTX
Supermondays: Jenkins CI lightning talk
Michael Peacock
 
PPTX
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Andrew Bayer
 
PDF
Jenkins for One
Matthew McCullough
 
PDF
Continuous Integration
Liyao Chen
 
PPTX
varun JENKINS.pptx
VgPolampalli
 
PPTX
Best Practices for Mission-Critical Jenkins
mrooney7828
 
PPT
Jenkins Scriptler in 90mins
Larry Cai
 
PDF
Basics of Selenium IDE,Core, Remote Control
usha kannappan
 
PDF
The Butler and the Snake - Continuous Integration for Python
Timo Stollenwerk
 
PDF
Jenkins CI
haochenglee
 
PDF
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
CloudBees
 
PPTX
Building your Continuous Delivery Toolkit @ JUC SF 2014
XebiaLabs
 
PDF
Jenkins & IaC
HungWei Chiu
 
PPTX
Jenkins 1
Elad Hirsch
 
ODP
Testing JSF with Arquillian and Selenium
Lukáš Fryč
 
JUC NY - Advanced Continuous Deployment with Jenkins
XebiaLabs
 
Beyond Continuous Delivery - Jenkins User Conference - 23 Oct 2014
Chris Hilton
 
Jenkins For One
Mark Waite
 
QA in DevOps: Transformation thru Automation via Jenkins
Tatyana Kravtsov
 
Frank's Learning Summary - Evolution of agile testing
Frank Lee
 
Supermondays: Jenkins CI lightning talk
Michael Peacock
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Andrew Bayer
 
Jenkins for One
Matthew McCullough
 
Continuous Integration
Liyao Chen
 
varun JENKINS.pptx
VgPolampalli
 
Best Practices for Mission-Critical Jenkins
mrooney7828
 
Jenkins Scriptler in 90mins
Larry Cai
 
Basics of Selenium IDE,Core, Remote Control
usha kannappan
 
The Butler and the Snake - Continuous Integration for Python
Timo Stollenwerk
 
Jenkins CI
haochenglee
 
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
CloudBees
 
Building your Continuous Delivery Toolkit @ JUC SF 2014
XebiaLabs
 
Jenkins & IaC
HungWei Chiu
 
Jenkins 1
Elad Hirsch
 
Testing JSF with Arquillian and Selenium
Lukáš Fryč
 

More from Yusuke Yamamoto (20)

PDF
株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
Yusuke Yamamoto
 
PDF
これからはじめるGit、GitHub #stapy
Yusuke Yamamoto
 
PDF
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
Yusuke Yamamoto
 
PDF
JetBrains IDEハンズオン
Yusuke Yamamoto
 
PDF
Java Küche 2016 LT 在室状況自動通知ボット #JavaKueche
Yusuke Yamamoto
 
PDF
Java Küche 2016 #JavaKueche
Yusuke Yamamoto
 
PDF
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
Yusuke Yamamoto
 
PDF
WebStormから始まる快適Web開発ワークフロー #html5jk
Yusuke Yamamoto
 
PDF
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
Yusuke Yamamoto
 
PDF
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...
Yusuke Yamamoto
 
PDF
カジュアルにスレッドダンプ - @yusuke #javacasual
Yusuke Yamamoto
 
PDF
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
Yusuke Yamamoto
 
PDF
Twitter4jハンズオン 5/1 #twtr_hack
Yusuke Yamamoto
 
PDF
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
Yusuke Yamamoto
 
PDF
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Yusuke Yamamoto
 
PDF
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Yusuke Yamamoto
 
PDF
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Yusuke Yamamoto
 
PDF
貧乏人のHeroku活用術 #herokujp
Yusuke Yamamoto
 
PDF
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
Yusuke Yamamoto
 
PDF
JavaScript時代のJava #kansumiB7 #kansumi
Yusuke Yamamoto
 
株式会社サムライズム 新製品発表会 物理イカリングのご紹介 #gbdaitokai
Yusuke Yamamoto
 
これからはじめるGit、GitHub #stapy
Yusuke Yamamoto
 
誰も知らない IntelliJ IDEA凄技100選 #kotlin_sansan
Yusuke Yamamoto
 
JetBrains IDEハンズオン
Yusuke Yamamoto
 
Java Küche 2016 LT 在室状況自動通知ボット #JavaKueche
Yusuke Yamamoto
 
Java Küche 2016 #JavaKueche
Yusuke Yamamoto
 
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...
Yusuke Yamamoto
 
WebStormから始まる快適Web開発ワークフロー #html5jk
Yusuke Yamamoto
 
データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
Yusuke Yamamoto
 
Troubleshooting Slowdowns, Freezes, Deadlocks : Introduction to Thread Dump #...
Yusuke Yamamoto
 
カジュアルにスレッドダンプ - @yusuke #javacasual
Yusuke Yamamoto
 
Excel方眼紙アプリケーションサーバと侍の新機能 #jjug
Yusuke Yamamoto
 
Twitter4jハンズオン 5/1 #twtr_hack
Yusuke Yamamoto
 
株式会社サムライズム@samuraismがcoincheck for ECを使ってビットコイン決済に対応した話 #gbdaitokai
Yusuke Yamamoto
 
Botを使った業務効率化 / Java8を使ったBot実装効率化 @yusuke #jjug
Yusuke Yamamoto
 
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Yusuke Yamamoto
 
Java デバッガ活用術 ~勘デバッグ・print デバッグから抜けだそう~ #jjug_ccc #ccc_h4
Yusuke Yamamoto
 
貧乏人のHeroku活用術 #herokujp
Yusuke Yamamoto
 
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
Yusuke Yamamoto
 
JavaScript時代のJava #kansumiB7 #kansumi
Yusuke Yamamoto
 
Ad

Recently uploaded (20)

PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PPTX
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Ad

Jenkins User Conference - Twitter4J, Jenkins and regression

  • 1. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf Twitter4J, Jenkins and Regression Yusuke Yamamoto Twitter4J.org / Twitter, Inc. http://twitter4j.org/
  • 2. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf Who Am I? 10+ years experience in Java Author of open-source tools including: – Samurai http://samuraism.jp/samurai/ – Twitter4J http://twitter4j.org/
  • 3. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf What is Twitter4J Open-source library for the Twitter API Compatible with – Java 1.4.2+ – Android – Google App Engine Available since Jun 2007
  • 4. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf Tools Powering Twitter4J Maven Central repo
  • 5. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf The release flow release:perform git push origin master oss.sonatype.org service hook promote dev twitter4j.org github.com repo1.maven.org
  • 6. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf Test-driven Development 1. Write a test case which fails 2. Implement and commit 3. Run test cases 4. J NO regression
  • 7. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf The Timeline May 2007: Started Twitter4J project Mar 2009: Applied Hudson
  • 8. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf The Timeline May 2007: Started Twitter4J project Mar 2009: Applied Hudson With Jenkins applied, your software should be regression free…
  • 9. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf The Timeline May 2007: Started Twitter4J project Mar 2009: Applied Hudson Oct 2010: Critical regression found
  • 10. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf The Timeline May 2007: Started Twitter4J project Mar 2009: Applied Hudson Oct 2010: Critical regression found The how and why
  • 11. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf The Issue Version: Twitter4J 2.1.5 Symptom: certain method calls fail with 401 401:Authentication credentials were missing or incorrect.
  • 12. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf Direct Cause of the Issue bug in StringUtil – introduced in v2.1.5 – leads invalid OAuth signature in certain condition public static String[] split(String str, String separator){ String[] returnValue; int index; if(-1 == str.indexOf(separator)){ returnValue = new String[0]; }else{ ... expected actual split(“foo,bar”,”,”) {“foo”, “bar”} √ {“foo”, “bar”} split(“foobar”,”,”) {“foobar”} L {}
  • 13. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf Why StringUtil.split() String#split() - @since Java1.4 Found of a compatibility issue with CLDC – CLDC doesn’t support String#split() Caused by: java.lang.NoSuchMethodError: java.lang.String: method split (Ljava/lang/String;)[Ljava/lang/String; not found at twitter4j.conf.PropertyConfiguration.setFieldsWithTreePath(Ljava/ util/Properties;Ljava/lang/String;)V(PropertyConfiguration.java:196) at twitter4j.conf.PropertyConfiguration.<init>(Ljava/lang/String;)V (PropertyConfiguration.java:121)
  • 14. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf General Cause of Software Regressions W/ test cases W/O test cases not enough test implementation coverage wrongly modified external resource test failure(s) ignored became incompatible
  • 15. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf General Cause of Software Regressions W/ test cases W/O test cases not enough test implementation coverage wrongly modified external resource test failure(s) ignored became incompatible
  • 16. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf General Cause of Software Regressions W/ test cases W/O test cases not enough test implementation coverage wrongly modified external resource test failure(s) ignored became incompatible
  • 17. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf Ignoring Failed Test Cases Generally not recommended but Sometimes you need to, because – external resource not available or – test failure caused by a component managed by other committer
  • 18. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf General Cause of Software Regressions W/ test cases W/O test cases not enough test implementation coverage wrongly modified external resource test failure(s) ignored became incompatible
  • 19. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf General Cause of Software Regressions W/ test cases W/O test cases not enough test implementation coverage wrongly modified external resource test failure(s) ignored became incompatible test case wrongly modified
  • 20. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf Ruined Tests with Basic Auth Deprecation TwitterTestUnit before refactoring: test base class Basic auth & OAuth BasicTest OAuthTest Basic auth OAuth after refactoring: OAuth only not recognized by Maven TwitterTestUnit
  • 21. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf Ruined Tests with Basic Auth Deprecation TwitterTestUnit before refactoring: test base class Basic auth & OAuth BasicTest OAuthTest Basic auth OAuth after refactoring: OAuth only not recognized by Maven TwitterTestUnit
  • 22. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf Lessons Learned - 1 check the Ages of failed tests
  • 23. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf Lessons Learned - 2 be very careful when you refactor test cases make sure that – number of test cases doesn’t change many – code coverage doesn’t decrease smelly trend
  • 24. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf Thank You To Our Sponsors Platinum Sponsor Gold Sponsor Silver Sponsor Bronze Sponsors Coming Soon: The CloudBees Newsletter for Jenkins ü Please complete the Jenkins survey to help us better serve the community (bonus: a chance to win an Apple TV!)
  • 25. Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf Who Am I?