プロジェクト現状報告・rubyによるjenkinsプラグイン開発

20
第第第 Jenkins 第第第

Upload: kohsuke-kawaguchi

Post on 15-Jan-2015

6.904 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©2010 CloudBees, Inc. All Rights Reserved

第三回 Jenkins 勉強会

Page 2: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©2010 CloudBees, Inc. All Rights Reserved

©2010 CloudBees, Inc. All Rights Reserved

現状報告川口耕介

Page 3: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©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)

Page 4: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©2010 CloudBees, Inc. All Rights Reserved

4©2010 CloudBees, Inc. All Rights Reserved

Jenkins 開発者の動向• プラグインの開発も Jenkins へ– Hudson プロジェクトでのプラグインのコ

ミット

– 25 トッププラグイン• 21 は Jenkins へ• 4 はコミットなし

– 離婚後、 40 の新しいプラグインを追加 (vs 1)

Page 5: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©2010 CloudBees, Inc. All Rights Reserved

5©2010 CloudBees, Inc. All Rights Reserved

ユーザーの必要なものを届ける• 互換性を重視した継続的な開発– ユーザーが必要な機能やバグ修正– 今までと同じやり方で

• バグ修正・ RFE を届けています– 282 のチケットをクローズ (vs 68)– 514 のチケットがファイル (vs 129)

Page 6: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©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

Page 7: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©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

Page 8: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©2010 CloudBees, Inc. All Rights Reserved

8©2010 CloudBees, Inc. All Rights Reserved

Oracle 、 Hudson を Eclipse へ• Jenkins は彼らの想定よりも成功した• Eclipse の下ならば合流できるのか?– ユーザーの間からは合流を望む声は強い– その一方で Eclipse が Oracle の手助けをす

るのを嫌う声も強い– 双方の開発者の反応はもっと冷ややか

• Jenkins コミュニティの反応– 合流の条件を探っているところ– Apache への移管を望む声も強い

Page 9: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©2010 CloudBees, Inc. All Rights Reserved

©2010 CloudBees, Inc. All Rights Reserved

Ruby による Jenkins プラグイン開発川口耕介

Page 10: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©2010 CloudBees, Inc. All Rights Reserved

10©2010 CloudBees, Inc. All Rights Reserved

今日は他人のふんどしで発表• Charles Lowell さん– Twitter では @cowboyd– テキサス人

Page 11: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©2010 CloudBees, Inc. All Rights Reserved

11©2010 CloudBees, Inc. All Rights Reserved

野望• Ruby でもっと Jenkins を使いたい• Ruby で Jenkins を拡張したい

• しかも、 Ruby の知識だけで• Java で動いているということは重要では

ない

Page 12: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©2010 CloudBees, Inc. All Rights Reserved

12©2010 CloudBees, Inc. All Rights Reserved

現状

Ruby 開発者= 潜在的ユー

ザJava 開発者

潜在的プラグイン開発者

Page 13: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©2010 CloudBees, Inc. All Rights Reserved

13©2010 CloudBees, Inc. All Rights Reserved

未来

Ruby 開発者= 潜在的ユーザ

= 潜在的プラグイン開発者

Page 14: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©2010 CloudBees, Inc. All Rights Reserved

14©2010 CloudBees, Inc. All Rights Reserved

Win-Win

• Jenkins の開発者が増える• Ruby 関連のプラグインが増える• Jenkins が Ruby にとって魅力的になる• Jenkins のユーザーが増える• 更に…– Ruby でできるなら他の言語でもできるので

は– 候補 : Python– ソースでプラグインを配布できれば変更も

容易

Page 15: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©2010 CloudBees, Inc. All Rights Reserved©2010 CloudBees, Inc. All Ri

ghts Reserved

Demo

Page 16: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©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

Page 17: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©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 %>

Page 18: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©2010 CloudBees, Inc. All Rights Reserved

18©2010 CloudBees, Inc. All Rights Reserved

まだできていないところ• Rake タスク– スケルトン生成– パッケージング・デバッグ– Rails のようなコード生成とか

• ラッパの自動生成

Page 19: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©2010 CloudBees, Inc. All Rights Reserved

19©2010 CloudBees, Inc. All Rights Reserved

I WANTYOUHelp!

to

Page 20: プロジェクト現状報告・Rubyによるjenkinsプラグイン開発

©2010 CloudBees, Inc. All Rights Reserved

20©2010 CloudBees, Inc. All Rights Reserved

誰でも参加できます!• Java の知識も Jenkins の知識も不要で

す• 週一でハックセッションやってます– 毎週金曜日 10:30am から– 第一線の OSS 技術者とキャッキャウフフ– https://gist.github.com/890558

• 英語もできなくても大丈夫です