• Save
Opening opensource : The Jenkins Way
Upcoming SlideShare
Loading in...5
×
 

Opening opensource : The Jenkins Way

on

  • 7,486 views

 

Statistics

Views

Total Views
7,486
Views on SlideShare
7,386
Embed Views
100

Actions

Likes
5
Downloads
0
Comments
2

7 Embeds 100

http://paper.li 71
http://tweetedtimes.com 10
http://a0.twimg.com 9
http://us-w1.rockmelt.com 7
http://twitter.com 1
https://twitter.com 1
https://foresttechnologies.atlassian.net 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Opening opensource : The Jenkins Way Opening opensource : The Jenkins Way Presentation Transcript

  • Opening Opensourcethe Jenkins Way
    BreizhCamp 17 juin 2011
    ©2011 Cloud Bees, Inc. All Rights Reserved
  • Nicolas De loof
    • Java-Boy
    • New-Bee at
    • (ex-)CommitterMaven
    • JUG-Leader
    ©2011 CloudBees, Inc. All Rights Reserved
  • Jenkins ?
    ©2011 CloudBees, Inc. All Rights Reserved
  • de factocontinuousintegration Server in Java ecosystem(non exclusive)
    Basis for Software Factory automation
    • Q&A Code inspection
    • Release management
    • Continuousdeployment
    • Business Intelligence …
    ©2011 CloudBees, Inc. All Rights Reserved
  • Hudson / Jenkins : the fork
    ©2011 CloudBees, Inc. All Rights Reserved
  • ©2011 CloudBees, Inc. All Rights Reserved
    User choosed Jenkins
    13 000 downloads / week
    1 500 member on jenkins-users
    4 000 followers @jenkinsci
  • 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
  • OpenSource model
    How to attract new contributors ?
    ©2011 CloudBees, Inc. All Rights Reserved
  • Voice committer
    Committer
    Contributor
    Supporting User
    User
    Standard OSS model « meritocratic »
    ©2011 CloudBees, Inc. All Rights Reserved
  • 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
  • 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
  • Mypersonalexperience
    ©2011 CloudBees, Inc. All Rights Reserved
    Motivation
    (# of contributions)
    (neveroccurred)
  • Rule #1 : lower the contribution barrier
    The Jenkins-way
    ©2011 CloudBees, Inc. All Rights Reserved
  • Want to contribute ?
    ©2011 CloudBees, Inc. All Rights Reserved
    Ask for commit
  • « Withgreat power, comesgreatresponsibility »
    Self-censoredcontributors
    ©2011 CloudBees, Inc. All Rights Reserved
  • 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
  • Rule #2 : Release often (even more)
    The Jenkins-way
    ©2011 CloudBees, Inc. All Rights Reserved
  • 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
  • OpenSource model
    How to merge contributions ?
    ©2011 CloudBees, Inc. All Rights Reserved
  • Contributormayask for code review
    Contribution mayrequire few changes beforebeeingapplied
    Wedon’twant to discouragecontributors
    WTF ?
    ©2011 CloudBees, Inc. All Rights Reserved
  • 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
  • GitHub pull request
    ©2011 CloudBees, Inc. All Rights Reserved
  • Rule #3 : Tools matter, use the right ones
    The Jenkins-way
    ©2011 CloudBees, Inc. All Rights Reserved
    patch
    Pull request +
    Commit pattern
  • 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
  • Opensource model
    Embrace new features
    ©2011 CloudBees, Inc. All Rights Reserved
  • 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
  • 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
  • Rule #6 : design for extensibility
     Multiple technical solutions (incl. @Inject)
    The Jenkins way
    ©2011 CloudBees, Inc. All Rights Reserved
  • OpenSource model
    How to talk together ?
    ©2011 CloudBees, Inc. All Rights Reserved
  • User forum
    Dev forum
    Private forum
    (+ lobbying)
    Multiple discussion levels
    ©2011 CloudBees, Inc. All Rights Reserved
  • Need for private discussion whenitcouldhurtsomeone
    • invitation for new Committers
    … but wedon’t have to « filter » committersanymore
    WTF ?
    ©2011 CloudBees, Inc. All Rights Reserved
  • 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
  • Rule #4 : Makethings transparent
    The Jenkins way
    ©2011 CloudBees, Inc. All Rights Reserved
  • OpenSource model
    Who’s the boss ?
    ©2011 CloudBees, Inc. All Rights Reserved
  • Right, projectneedssome sort of lead… but not a despot !
    « BenevolentDictator For Life »-syndrom
    Lead
    ©2011 CloudBees, Inc. All Rights Reserved
  • Highly active contributor
    Good knowledge of projecthistory
    Good technicalskills
    Visionary
    Newbie-compliant
    Not egocentric
    Lead must be …
    ©2011 CloudBees, Inc. All Rights Reserved
  • Kohsuke Kawaguchi
    Andrew Bayer
    Dean Yu
    (all from != companies)
    And discuss in public !
    Lead-commiteeissafer
    ©2011 CloudBees, Inc. All Rights Reserved
  • Rule #5 : choose a good Lead model
     focus first on building a community
    The Jenkins way
    ©2011 CloudBees, Inc. All Rights Reserved
  • Opensource (x)or Business ?
    ©2011 CloudBees, Inc. All Rights Reserved
  • (
    ©2011 CloudBees, Inc. All Rights Reserved
  • CloudBees relation with Jenkins ?
    ©2011 CloudBees, Inc. All Rights Reserved
  • 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
  • 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
  • CloudBeescontributesbugfixes to OSS
    CloudBees vs OpenSource
    ©2011 CloudBees, Inc. All Rights Reserved
  • Q&A, stabilised + support (here I am!)
    Some entreprise plugins
    • Security (RBAC)
    • Virtualisation, auto-scaling, hypervisorintegration
    • Jobs classification (folders)
    • Advanced Backup
    Nectar value for entreprises
    ©2011 CloudBees, Inc. All Rights Reserved
  • 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
  • Thanks to flexible Jenkins model
    Easiest maintenance
    Easiest contributions to oss
    All thosesfeatures are Plugins !
    ©2011 CloudBees, Inc. All Rights Reserved
  • )
    ©2011 CloudBees, Inc. All Rights Reserved
  • Does Jenkins model applyelsewhere ?
    ©2011 CloudBees, Inc. All Rights Reserved
  • I’mtrying to for GWT-maven-plugin
    Does Jenkins model applyelsewhere ?
    ©2011 CloudBees, Inc. All Rights Reserved
  • #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
  • Future willsay…
    Allready 3 contributors to join :
    • complaining about missingfeatures,
    • encouraged to contribute,
    • added to team,
    • theyfixed issues by themself !
    Salvador Diaz to analyse Pull Request
    Pierre-Yves Ricaucommitted 5 fixes
    Doesitwork ?
    ©2011 CloudBees, Inc. All Rights Reserved
  • Q&A
    Thankyou
    ©2011 CloudBees, Inc. All Rights Reserved