プロジェクト現状報告・rubyによるjenkinsプラグイン開発
DESCRIPTION
TRANSCRIPT
©2010 CloudBees, Inc. All Rights Reserved
第三回 Jenkins 勉強会
©2010 CloudBees, Inc. All Rights Reserved
©2010 CloudBees, Inc. All Rights Reserved
現状報告川口耕介
©2010 CloudBees, Inc. All Rights Reserved
3©2010 CloudBees, Inc. All Rights Reserved
Jenkins 開発者の動向• Hudson の開発者のほとんどは Jenkins へ
• 733 コミット (vs 172)– 42% はコミュニティから (vs 1%)– 48 人 (vs 7)
• コミットは増加した– 170 プル・リクエスト (vs 20)– リリースあたり平均 11.3 個の変更 (vs 6.7)
• 94 公表コミッタ on GitHub (vs 4)• 496 リポジトリ (vs 1)
©2010 CloudBees, Inc. All Rights Reserved
4©2010 CloudBees, Inc. All Rights Reserved
Jenkins 開発者の動向• プラグインの開発も Jenkins へ– Hudson プロジェクトでのプラグインのコ
ミット
– 25 トッププラグイン• 21 は Jenkins へ• 4 はコミットなし
– 離婚後、 40 の新しいプラグインを追加 (vs 1)
©2010 CloudBees, Inc. All Rights Reserved
5©2010 CloudBees, Inc. All Rights Reserved
ユーザーの必要なものを届ける• 互換性を重視した継続的な開発– ユーザーが必要な機能やバグ修正– 今までと同じやり方で
• バグ修正・ RFE を届けています– 282 のチケットをクローズ (vs 68)– 514 のチケットがファイル (vs 129)
©2010 CloudBees, Inc. All Rights Reserved
6©2010 CloudBees, Inc. All Rights Reserved
ユーザーの動向• 公開 Hudson サイト、 Jenkins へ移行– Apache, JRuby, NASA, Nuxeo, Scala, PiWiki,
CreativeCommons, OpenIndiana, …
• ユーザー ML のトラフィック– 1280 メール (vs 259)
• ダウンロード数– 8132 war, 2733 deb, 1237 rpm, 1320 zip
( 毎週 )
• OS のディストリビューションも移行している– Ubuntu, FreeBSD, OpenBSD
©2010 CloudBees, Inc. All Rights Reserved
7©2010 CloudBees, Inc. All Rights Reserved
チケットアクティビティ
Jan-05 Jan-06 Jan-07 Jan-08 Jan-09 Jan-10 Jan-110
50
100
150
200
250
300
350
400
CreatedResolved
©2010 CloudBees, Inc. All Rights Reserved
8©2010 CloudBees, Inc. All Rights Reserved
Oracle 、 Hudson を Eclipse へ• Jenkins は彼らの想定よりも成功した• Eclipse の下ならば合流できるのか?– ユーザーの間からは合流を望む声は強い– その一方で Eclipse が Oracle の手助けをす
るのを嫌う声も強い– 双方の開発者の反応はもっと冷ややか
• Jenkins コミュニティの反応– 合流の条件を探っているところ– Apache への移管を望む声も強い
©2010 CloudBees, Inc. All Rights Reserved
©2010 CloudBees, Inc. All Rights Reserved
Ruby による Jenkins プラグイン開発川口耕介
©2010 CloudBees, Inc. All Rights Reserved
10©2010 CloudBees, Inc. All Rights Reserved
今日は他人のふんどしで発表• Charles Lowell さん– Twitter では @cowboyd– テキサス人
©2010 CloudBees, Inc. All Rights Reserved
11©2010 CloudBees, Inc. All Rights Reserved
野望• Ruby でもっと Jenkins を使いたい• Ruby で Jenkins を拡張したい
• しかも、 Ruby の知識だけで• Java で動いているということは重要では
ない
©2010 CloudBees, Inc. All Rights Reserved
12©2010 CloudBees, Inc. All Rights Reserved
現状
Ruby 開発者= 潜在的ユー
ザJava 開発者
潜在的プラグイン開発者
©2010 CloudBees, Inc. All Rights Reserved
13©2010 CloudBees, Inc. All Rights Reserved
未来
Ruby 開発者= 潜在的ユーザ
= 潜在的プラグイン開発者
©2010 CloudBees, Inc. All Rights Reserved
14©2010 CloudBees, Inc. All Rights Reserved
Win-Win
• Jenkins の開発者が増える• Ruby 関連のプラグインが増える• Jenkins が Ruby にとって魅力的になる• Jenkins のユーザーが増える• 更に…– Ruby でできるなら他の言語でもできるので
は– 候補 : Python– ソースでプラグインを配布できれば変更も
容易
©2010 CloudBees, Inc. All Rights Reserved©2010 CloudBees, Inc. All Ri
ghts Reserved
Demo
©2010 CloudBees, Inc. All Rights Reserved
16©2010 CloudBees, Inc. All Rights Reserved
実装方針• Core を変更して型がない事に対応• Ruby オブジェクトをラッパに包んで Java 化
– プラグイン開発者の書くコードが Ruby っぽくなる
class TestRootAction < Hudson::Plugin::RootAction def icon_file_name "gear.png"; end
def display_name “ruby からこんにちは " endend
©2010 CloudBees, Inc. All Rights Reserved
17©2010 CloudBees, Inc. All Rights Reserved
ビュー• ERB + 既存の taglib を呼ぶレイヤ– これなら書く気になります?– 何ならいいですか?
<% l = taglib("/lib/layout") %><% l.layout(:title => "Hello from ERB") do %> <% l.main_panel do %> <h1>Hello from ERB</h1> <p> With proper Jenkins UI tags </p>
<% end %><% end %>
©2010 CloudBees, Inc. All Rights Reserved
18©2010 CloudBees, Inc. All Rights Reserved
まだできていないところ• Rake タスク– スケルトン生成– パッケージング・デバッグ– Rails のようなコード生成とか
• ラッパの自動生成
©2010 CloudBees, Inc. All Rights Reserved
19©2010 CloudBees, Inc. All Rights Reserved
I WANTYOUHelp!
to
©2010 CloudBees, Inc. All Rights Reserved
20©2010 CloudBees, Inc. All Rights Reserved
誰でも参加できます!• Java の知識も Jenkins の知識も不要で
す• 週一でハックセッションやってます– 毎週金曜日 10:30am から– 第一線の OSS 技術者とキャッキャウフフ– https://gist.github.com/890558
• 英語もできなくても大丈夫です