More Related Content
Similar to Opening opensource : The Jenkins Way
Similar to Opening opensource : The Jenkins Way (20)
More from Nicolas De Loof
More from Nicolas De Loof (17)
Opening opensource : The Jenkins Way
- 12. ©2011 CloudBees, Inc. All Rights Reserved User choosed Jenkins 13 000 downloads / week 1 500 member on jenkins-users 4 000 followers @jenkinsci
- 13. 900 members on jenkins-dev 48 active contributors, 94 publicized 170 Pull-requestsfromoccasionalcontributors 11,3 changes per release(6,7 before the fork) … as Developersdid ©2011 CloudBees, Inc. All Rights Reserved
- 15. Voice committer Committer Contributor Supporting User User Standard OSS model « meritocratic » ©2011 CloudBees, Inc. All Rights Reserved
- 16. Use the tool Contribute to user-forum Getfamiliarwith the code Contribute to dev-forum Fix bugs and post patches Be nicewitheverybody Do some lobbying How to become a Committer … ©2011 CloudBees, Inc. All Rights Reserved
- 17. Difficult to getinto the code Difficult to getspare time Difficult to fix bug or add new features Laborious to create and maintain patches Frustrating to wait for approval How manytalentuousguys do weloosehere ? In practice… ©2011 CloudBees, Inc. All Rights Reserved
- 19. Rule #1 : lower the contribution barrier The Jenkins-way ©2011 CloudBees, Inc. All Rights Reserved
- 22. Discover a regression : revert Test harness to the rescue(stillmuch to do there) Possible if therewas few changes between releases ! Hey, thisis SCM roleafter all ! ©2011 CloudBees, Inc. All Rights Reserved
- 23. Rule #2 : Release often (even more) The Jenkins-way ©2011 CloudBees, Inc. All Rights Reserved
- 24. One release per week Few changes between releases Easy to rollbackwhensomethingisbroken + « stable but older » branch (3 month) withCritical bug fixes only Jenkins releases ©2011 CloudBees, Inc. All Rights Reserved
- 26. Contributormayask for code review Contribution mayrequire few changes beforebeeingapplied Wedon’twant to discouragecontributors WTF ? ©2011 CloudBees, Inc. All Rights Reserved
- 27. Diff format isdefinitly not a sexy format for humans > +@Deprecated > +public class Base64 > +{ > + public Base64() > + { > + super(); Doesitreallyneed to call Object.super(). Can we not leaveitwith the default constructor as Plexus' original has? > + } Diff format (SVN patch) ©2011 CloudBees, Inc. All Rights Reserved
- 29. Rule #3 : Tools matter, use the right ones The Jenkins-way ©2011 CloudBees, Inc. All Rights Reserved patch Pull request + Commit pattern
- 30. Origin of the Hudson/Jenkins fork(java.netoutage) 200 forks on Jenkins GitHub repo ! 170 pull requests Jenkins atGitHub ©2011 CloudBees, Inc. All Rights Reserved
- 32. 250 plugins !(maven plugin is the only one in core) Evengrowingecosystem Contributorcan focus on some plugin thatbringthem value daily Modular design ©2011 CloudBees, Inc. All Rights Reserved
- 33. Extension point withruntimediscovery Need to plugsomewhere in Jenkins ? add a new extension point Someidea for a new plugin ? add for a repo on github/jenkins-ci Extensibility ©2011 CloudBees, Inc. All Rights Reserved
- 34. Rule #6 : design for extensibility Multiple technical solutions (incl. @Inject) The Jenkins way ©2011 CloudBees, Inc. All Rights Reserved
- 36. User forum Dev forum Private forum (+ lobbying) Multiple discussion levels ©2011 CloudBees, Inc. All Rights Reserved
- 38. All discussions are public On jenkins-dev On irc #jenkinsci Meeting bi-weekly on irc Logged by irc-bot for lateravailabilityhttp://meetings.jenkins-ci.org/jenkins transparency ©2011 CloudBees, Inc. All Rights Reserved
- 39. Rule #4 : Makethings transparent The Jenkins way ©2011 CloudBees, Inc. All Rights Reserved
- 41. Right, projectneedssome sort of lead… but not a despot ! « BenevolentDictator For Life »-syndrom Lead ©2011 CloudBees, Inc. All Rights Reserved
- 42. Highly active contributor Good knowledge of projecthistory Good technicalskills Visionary Newbie-compliant Not egocentric Lead must be … ©2011 CloudBees, Inc. All Rights Reserved
- 43. Kohsuke Kawaguchi Andrew Bayer Dean Yu (all from != companies) And discuss in public ! Lead-commiteeissafer ©2011 CloudBees, Inc. All Rights Reserved
- 44. Rule #5 : choose a good Lead model focus first on building a community The Jenkins way ©2011 CloudBees, Inc. All Rights Reserved
- 48. Nectar : enhanced & supported Jenkins DEV@Cloud : hosted software factory RUN@Cloud : Java PaaS Public : hosted by Amazon Private : on yourownvirtualized infra CloudBees in 5 words ©2011 CloudBees, Inc. All Rights Reserved
- 49. KK is a CloudBeesemployee… but CloudBeesengaged to neverinterferewith Jenkins Lead committee DEV@Cloudisawesomethanks to active opensourceecosystem ! CloudBees vs OpenSource ©2011 CloudBees, Inc. All Rights Reserved
- 56. Jenkins cluster Multi-tenant masters Pool of slaves Automaticprovisionning On phisical or virtual machines Centralised management (plugins, upgrades, default config…) DEV@CloudPrivate Edition ©2011 CloudBees, Inc. All Rights Reserved
- 57. Thanks to flexible Jenkins model Easiest maintenance Easiest contributions to oss All thosesfeatures are Plugins ! ©2011 CloudBees, Inc. All Rights Reserved
- 60. I’mtrying to for GWT-maven-plugin Does Jenkins model applyelsewhere ? ©2011 CloudBees, Inc. All Rights Reserved
- 61. #1 : lower the contribution barrierjustask to join the team ! #2 : release oftenone release per month #3 : toolsmattermovedfromcodehaussvn to GitHub #4 : makeit transparenteverythinghappens on googlegroups #5 : choose a good lead-modelmyself + Olivier Lamy, may change … #6 : design for extensibilitymore investigation requiredhere Applyingrules ©2011 CloudBees, Inc. All Rights Reserved
- 65. theyfixed issues by themself !Salvador Diaz to analyse Pull Request Pierre-Yves Ricaucommitted 5 fixes Doesitwork ? ©2011 CloudBees, Inc. All Rights Reserved