<% Include("/hsphere/local/home/terraint/common.phps");%> Gump:Jakartaプロジェクト管理 - Gump -- エクストリーム・プログラミング(X.P.)
Gump

Gump

出力結果

クロス リファレンス

データ定義

参加するには

日本語訳 (Translations)

オリジナル

5W1H:Gumpとは何?

Gumpは、社会的な実験です。Gumpが掲げる主たる目標は、多種多様なプロジェクト同士で、インテグレーション・依存関係・バージョン管理等の情報を互いに素早く且つ頻繁にやり取りさせる事にあります。考え方の一つの方向性としては、先例の無い規模の継続的インテグレーションが適用されたエクストリーム・プログラミング(X.P.)のコンセプトである、とも言えるでしょう。

本質的に、論拠は以下のとおりです -- もし、「継続的インテグレーション」が小さいプロジェクトにとって良いものであるならば、何故、再帰的に適用されないのでしょうか?何故ソースが提供されている依存関係全てをインクルードしないのでしょうか?


5W1H:Gumpはどのように動いているの?

Gumpプロジェクトの定義ファイルは、XMLから貴方がお使いのプラットフォーム依存型スクリプトに変換されます。これらのスクリプトは、ビルド中のプロジェクトに含まれる全てのモジュールのCVSのアップデート・コマンドを実行し、各々のプロジェクトの依存関係が充足される順番通りにビルドを実行します。

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

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

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

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


5W1H:Gumpはどこにありますか?


5W1H:Gumpはいつ実行されるの?

社会的に望ましくない影響を与えさせないよう、Gumpが実行される時間は予測可能でなければなりません。全世界的なスケールのオープンソース開発であれば、明らかに、全ての人間が休息中である時間と言うのは存在しません。

US/Pacific 時間で深夜行うとしつこいメールが送られることとなります。親切にもSunやCovalentによって提供されたハードウェア上で、6時間ごとに実行されています。以下のテーブルは、いくつかの代表的なタイムゾーンにおける実行時間の全てのスケジュールです。

  米国:西海岸 米国:東海岸 GMT 豪州:メルボルン
Rubix 深夜0時 3 am 0800 7 pm
Nagoya 6 am 9 am 1400 1 am
Covalent 正午 3 pm 2000 7 am
Nagoya 6 pm 9 pm 0200 1 pm

"official"なGumpの実行(Linux上で)と同じ時間に、nagoyaサーバで実験的な"run"を行うようにしました。これは、Java 1.4.*上での完全な実行を含みます。これはまた、JDK 1.3 を使ったベースラインビルドにも使うまったく同じソースを使います。


5W1H:Gumpとは誰?

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

奇妙な事に、この名前は私にとってふさわしいものでもありました。何故なら、私が元々XML-Cocoonの大ファンであり(今でもそうです)、このプロジェクトのビルドに関するフラストレーションが元となってGumpプロジェクトの動機付けがされたからです。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!)」。私は、最新バージョンのものを持ってきてそれらを全て結合/統合しようとする「ビルド・プロセス」に関するこれ以上の適切な説明は無いのではないかと思っています!


5W1H:どうしてGumpが書かれたの?

この質問への回答は複雑で理解・説明が困難なので、別ページに書いておく事にします。



Copyright © 1999-2005, Apache Software Foundation
Translated into Japanese by Tetsuya Kitahata , powered by Terra-International, Inc.
<% orig();%>