Apache > Gump
Apache Gump
 

Apache Gump

Apache Gump とは

Gump は、Apache Software Foundation 内にて開発されている、継続的インテグレーションの為のツールです。Gump は、Python (プログラミング言語の一種)で書かれており、Apache Ant、Apache Maven や 他のビルドツールを完全にサポートしています。Gump は、ユニークな手法でソフトウェア開発プロジェクトの最新の開発バージョンに対してビルドとコンパイルを行います。 これにより、バージョン管理システム内に変更が加えられたほんの2・3時間後に、それらソフトウェアへの変更が潜在的に不適合(バグを含む)かどうか検出することが可能となるのです。それらの(バグを含む)変更が検出されてすぐに、オンラインで入手可能なより詳細なレポートへのリファレンスを含む「通知」がプロジェクトチームに対して送られます。

あなたは、自身のマシン上で Gump をセットアップし自身所有のプロジェクトに対して Gump を適用できます。しかし、現在最も著名なのは、Apache Software Foundation 上 の Java ベースのプロジェクトをビルドし、それらの依存関係(数百万行にも及ぶコードが数百に及ぶプロジェクトに分けられ構成されています)を明らかにしていることです。これらの目的がある為、Apache Gump プロジェクトは、専用サーバ上で管理/運用されています。

Apache Gump はどのようにして動くのでしょうか?

古典的な(Javaベースの)Gump では、project の定義が、XML からあなたがお使いのプラットフォームにネイティブなスクリプトへと変換されます。一方、Python Gump では、XML がメモリ上のオブジェクトとしてマッピングされます。ビルドが実行されているプロジェクトを含む全てのモジュールに対して スクリプトが cvs や svn update コマンドを走らせ、依存関係が満たされるよう、各々のプロジェクトに対するビルドが起動されます(再帰的に、です)。ビルド結果が出力され、もし成功すれば、そのプロジェクトに依存するプロジェクトが次次にビルドされていきます。

各々のプロジェクトの実際のbuild.xmlファイルを使う事となりますが、CVS/SVN に 格納 されているスクリプトやjarファイルを使うわけではありません。その代わり、CLASSPATHがセットされ、コマンドラインにそのプロパティが渡されます。

最終的な結果として、全てのプロジェクトが毎日最新バージョンの全ての依存関係(最新のAnt, 最新のJUnit, 最新のXMLパーサー)に従ってビルドされます。

ビルドの結果が、多くの Jakarta (Apache Jakarta) プロジェクトのスタイルと調和のあるHTMLページに生成・保管されます。多数のハイパーテキスト・リンクが追加され、素早く且つ容易にナビゲートする事が可能となっています。また、メインのビルド・ページで、ビルドの失敗が色つきで表示されます。

オプションとして、Perlスクリプトが様々なニュースグループに対し、詳細エラー情報(naglist)を省略した形の電子メールを送付します。これは、概して、ビルドの失敗を開発者たちに警告する為に使われています。

Apache Gump はどこで入手可能か?

Apache Gump はどのようなタイミングで起動されるの?

Gump は様々な場所で継続的に動いています。主だったものとして Apache Software Foundation 管轄のハードウェアがあります。以下をご覧下さい:

サイト名 JVM コメント
Apache (マシン名:vmgump) 1.4.2_04 1日4回

Gump って誰ですか?

Gump は、映画のタイトルとしても有名なForrest Gumpに因んで名前が付けられています。ビルドのプロセスは、"Generate(生成)"、"Updates(更新)"、"Build All(全部のビルド)"と続きます。再帰的に行われるものであり、これらのオペレーションが結合されてコマンドが生成されますので、頭文字をとって"guba"と言います。この言葉は、"Bubba Gump"を想起させるものであります(訳注:オアフ、マウイ、ハワイ等にある、アメリカ全国チェーンの海老のお店:"Bubba Gump":尚、Forrest Gumpの主人公は、年がら年じゅうエビのことばかり喋っている男で、同じアラバマ出身の黒人"Bubba"=ババと知り合い、二人は戦争が終ったら一緒にエビ事業を始めることを約束し合う・・という設定になっています)。

奇妙な事に、この名前は私にとってふさわしいものでもありました。何故なら、私が元々 Apache Cocoon の大ファンであり(今でもそうです)、このプロジェクトのビルドに関するフラストレーションが元となって Apache Gumpプロジェクト創設のモチベーション付けがなされたからです。Apache Cocoon の FAQ(訳注:今は、このFAQの中に、命名の由来に関するものがなくなりました)によれば、Cocoonプロジェクトもまた、プロジェクトの創始者が特に好きであった映画に因んで名づけられていたからです(訳注:1985年、20世紀フォックス提供、ザナック・ブラウン・プロダクション【コクーン】....1988年には続編の【コクーン2/遥かなる地球】が上映)。ですから、このプロジェクト(Gump)も、私が好きな映画に因んだ名前が付くのが相応しいであろうと....

運良く、数多くの偶然の産物によって、私はますますこの名前が適切な選択であったと確証を持つに至りました。映画のオープニング・エンディングのシーンに始まる「バカなことをするやつがバカだ」という映画の名文句が、ビルドのプロセスを通じて数多く生じるビルド・エラーという"亡霊"を捕捉する何かであるように思えてなりません。 もっと私にとって意味深い事に .... Gump の母が言った賢明な言葉が私の頭を過ぎります ....「人生はチョコレート箱のようなもの。開けてみるまで何が入っているかわからない(Life is like a box of chocolates - you never know what you are going to get!)」。私は、最新バージョンのものを持ってきてそれらを全て結合/統合しようとする「ビルド・プロセス」に関するこれ以上の適切な説明は無いのではないかと思っています!

何故、Gump が書かれたのでしょうか?

この質問に対する答えは大変ややこしいので、別ページを用意することとします。

by Sam Ruby, Adam Jack, Community

 
Original English Page would be found from HERE     --    BBS/ApacheNews
Terra-International, Inc. -- テラ・インターナショナル
Special Thanks -- 【お問い合わせ/テキスト広告】