Gauche:DistributedBuildFarm
やりたいこと
- Debian 2.2 http://gauche.sourceforge.jp/build.log
- FreeBSD 5.2 http://www.hadaly.org/fuyuki/gauche/build.log
な状況を
くらいまでもっていきたい。
考えていること
- 事実1: オープンソースの開発においてはどこか1箇所にに多数のマシンを置いてbuild farmを構築することは難しいことが多い。
- 事実2: ソフトウェア作者にビルドの結果を報告する統一的手段がない。不便。
- ユーザーがあるツールを走らせると、勝手にconfigure/build/make checkして、結果を作者に通知するような仕組みがあればいいのではないか?
- 利点。作者は自動的にどういうプラットフォームで自分のソフトウェアが動いているかの情報を集められる。
- 集まった情報を適当に集計すれば、build.samba.orgのようなものができそうな気がする。
- sambaではfarmに参加するマシンにかなり高い ハードル を設けているが、これは不要のように思われる。「新しいリリースが出たからビルドしてみました無事に通りました」程度の情報でも作者には有益なはず。 あとはどう処理するかの問題。
- 要するに、build.samba.orgの仕組みを一般化したようなツールがほしい。 夏休みの自由研究に最適かも。誰かやってみませんか?
コメント
Shiro: あーこれ私もほしい。こちらでぼんやり考えていたのは、 一応、使えるマシンの環境が多岐に渡ることを考慮して (ターゲットマシンからcvs coが出来るとは限らない)、 一つ以上のエージェントがあちこちにログインしてtarballを送り込んで untar+configure+make+make check+make install+make install-checkを やるって感じ。で、エージェント同士で結果を報告してまとめてゆく。
expectみたいなことが出来るツールutil.expectを まず書いて、それからGaucheのリリースエンジニアリングフェーズを 徐々に自動化してこうかな、なんてもやもや考えてましたが、 いつになるやらわかりません。でもmenehuneって開発コードネームは 決まってたりします。
他に興味ある人いますか?
hira: とりあえず「ユーザーがあるツールを走らせると・・・」ていう仕組みから手をつけたほうがいいような気がします。menehuneは面白いけど、安全面を考えると(私には考えきれないから)ちょっとコワイです。
skimu: 結果を特定のメールアドレスに投げるといった感じの Nightly build スクリプトを走らせるというタイプならすぐにでもご協力できます。 CPU パワーは有り余ってるので... MacOS10.3 (G5), MacOS10.2 (G4), NetBSD1.6 i386(2.0 が出たらアップデート予定)があります。単に Gauche をビルドするというのでなく、 いまはやり(?)のグリッドコンピューティングのフレームワークを作るというならそれはそれで多いに興味があります。
Shiro: 「グリッドコンピューティング」って言葉は、昔からあったやつにhype用の ラベルを貼ったみたいでなんか落ち着かないんですが、menehuneは とりあえず仕事を投げといたら小人さんがいろいろやってくれるような仕組みを 簡単に書きたいという感覚です。リモートで実行するのは、具体的にはsourceforgeの コンパイルファームを使う、みたいな場合を想定してます。sshのコネクションが 張れるのは前提で、ログインしてコマンド数個を打つことすら自動化したいのです (あと、そのようなコンパイルファームサービスの場合、内側から張れるコネクションに 制限がかかっている場合もあるので、通信手段をメールやhttpだけに制限したくない、 というのはあります)。
skimu: ああ、なるほどだから expect なんですね。暇そうな小人さんに仕事を振ることを考えてました。
ま、あんまり最初から色々目指してもアレなんで、とりあえず情報収集サイト あたりから手をつけるのがいいかなあ。
skimu: ついでに、簡単なベンチマーク、スケーラビリティテストを入れておくと、 システム毎の違いとか、VM/Compiler をいじったときにその効果がわかるので面白いかも。
fuyuki: Shiroさんが考えているのはRPC的なことだと思いますが、 私が当初想定していたのはpush型(ユーザーの側から見て)のモデルでした。 で、skimuさんのようにマシンパワーの余っている人にはcronで回してもらって、 そうでもない人には新リリースをビルドしたときにでも「送信」してもらえれば けっこう有益な情報が集まるかなーと。 集まりすぎることを懸念する向きもあるかもしれませんが、昨今のSPAMの流量に 比べればなんてことないでしょう。比較が悪いか。