よたらぼ
自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

August 21, 2005 [おもひで]

[Ruby-GNOME2] 2 new developers

今回、GTK+-2.8向けの改修をしてもらえることを機に、Guillaume CottenceauとPascal Terjan両氏にRuby-GNOME2プロジェクトチームとして参加して頂きました(厳密にはRuby-GNOME2の開発用CVSへのアクセス権をあげただけなんだけど)。

二人とも以前からパッチくれたり問題解析してもらっているので今後もさらに協力してくれることでしょう。してくれるといいな。

すでにSFの開発者として18人がクレジットされています(AUTHORSは26人)。残念ながら現在もアクティブに動いている人はその中の一握りなのですが、それでもこれだけの人数の人たちがいろいろと手伝ってくれたのは有り難いことです。

[Ruby] Ruby-GetText-Package on RubyForge

Ruby-GNOME2は他の人に任せて、Ruby-GetText-Packageを1.0.0に向けて改良中です(すみません、→ Ruby-GNOME2な方々)。

残念ながらRuby本体には取り込んでもらえそうにない(反応0...orz)→gemもサポートしたい、ということで開発主体をRubyForgeに移しました

MLも作ってみたので興味のある方は是非参加してください。

すでにかなり改造したRuby-GetText-Packageの開発版がCVSにあります。人柱募集中です(^^;)。

落ち着いたら、前言ってた翻訳系のサイトも立ち上げてみようかなぁ(遠い目)。

ところでRubyForgeってssh出来ないのかな。みんなどうやってサイトを構築してるのだろう。

[Ruby] rake

今回、Gem化するにあたってrakeも使ってみてるんだけど、これ、便利だね。数行書くだけ(というかマニュアルからのコピペ)でtar.gzとかgemとか作ってくれるし。

以前から、青木さんのsetup.rbと何が違うのかなぁ、ってよくわかってなかったんだけど、最大の利点はタスクを自分で定義できる、ってことだということが使ってみて理解できた。この数日間でのオレなりの理解を忘れないようにちょっとメモっておこう。

青木さんのsetup.rbでは、all/config/show/setup/install/clean/destcleanの7つのタスク(ruby setup.rb task のtaskの部分)のみ使うことができる。これはこれでとても簡潔でインストーラとしての機能に不足はない。

ただし、それ以外のタスク、例えば、テストするタスク、po→moファイル化するタスク、raccファイル→.rbファイル化するタスク、という具合に細かく分類することはちょっと難しい[*1]。もちろん、それらはインストール時には一気にやってしまえばいい(pre|post-TASK.rbのどこかに記述しておく)から実際にインストールを実施するユーザから見れば問題ないんだけど、開発時にはそれらを別々に実行したいなんて時も多い。さらには、tar.gz, gem化する等というタスクをconfig/setupあたりに入れるわけにもいかない。

なので、オレは今まで個別にスクリプトを書いて開発時にはそれを実行するようにしてきた。まぁ、それはそれでいいのだけど、rakeに従って記述しておくと、ファイルは1つにまとめることが出来るし、定型的なタスクがデフォルトで用意されているのも便利。

[*1] setup.rbでも(pre|post-TASK.rbのどこかから呼び出す別ファイルとしてそれぞれ別のタスク用.rbファイルを用意するっていう回避策もあると思う。でも、それって結局Rakefileを使うと楽ちんだ。

ちょっと不思議なのが、なぜかインストール関係が弱い(自分で書かないといけない)...ように思う。うまいやり方があるのかなぁとは思うのだけど、いくつか見た他のアプリもたいていは自前のinstall.rbを持ってたり、青木さんのsetup.rbを使ってたりしてる。まぁ、Gem化しちゃえば必要ないよ、ってことかもしれないけど、インストールしてくれるsetup.rb互換のタスクがデフォルトで準備されてたら便利なのになぁ(ってすでにある?)。

というわけで、今のところは、開発者向け(つまりオレ向け)タスクはrake、インストールには青木さんのsetup.rbと棲み分けしようかと考え中。

具体的には、raccファイル→.rbファイル化、po→moファイル化、gem,tar.gz化あたりはRakefileに仕込んでおき、setup.rbはあくまでインストール向け(pre|post-setup.rbとかでrakeのタスクを呼ぶ)。

ユーザはgemの場合はgemでインストールするし、tar.gzからインストールする場合は従来通りsetup.rbを使う、って感じ。どうかな。


編集