[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:003640] Re: ruby gemについて
- To: dennou-ruby@xxxxxxxxxxx
- Subject: [dennou-ruby:003640] Re: ruby gemについて
- From: Takeshi Horinouchi <horinout@xxxxxxxxxxxxxxxxx>
- Date: Tue, 02 Apr 2013 17:13:59 +0900
堀之内です。
> > 2年ほど?前 に、dennou-ruby プロダクトの顔をそろえましょうという提案をし、
> > http://davis.gfd-dennou.org/rubygadgets/ja/?%28Others%29+Dennou+Ruby+%C0%BD%C9%CA%A5%C6%A5%F3%A5%D7%A5%EC%A1%BC%A5%C8
> > に案を作りました。
について質問です。(面倒かけてすみませんがよろしくお願いします。)
| == ディレクトリ構成
...
| == インストール
...
| rake nongeminstall とする (名前は要検討)
は特に異論ありません。rake のタスク名も nongeminstall
でまあいいかと。カッコよくはないですがわかりやすいし,
基本 (rake install) は gem というので良いと思います。
| == Gem
| * スペックを name.gemspec ファイルにわかるか、 Rakefile に書くか
| * 分けたほうがそれぞれ変更しやすいのでは?
すみませんが,分けるかどうかといっても何をどうというのがないと
わかってない私にはつらいです。解説か具体例がほしいなぁ。
| * rake build で作成
| * build という名前は bundler の仕様
タスクの名前が bundler に合わせてあること自体は構わないです。
| * lib/numru/a/b/ ディレクトリ以下に、version.rb を用意し、
| NumRu::A::B::VERSION 定数を定義するようにする
これもいいと思います。
| == Rakefile
| * 拡張ライブラリのコンパイル、インストール、gem 作成、
| source tar ball, test 実行のタスクを定義する
すみません,その具体例がほしいです。
前のメールに私がかいたように,なにか良いチュートリアルページ
ないですかね。
| === テンプレート案
| # -*- mode: ruby; coding: utf-8 -*-
| require 'rake/packagetask'
| require 'rake/clean'
| begin
| require 'bundler/gem_tasks'
これは bundler を使う例ですね。
とりあえず bundler 等のツールを使わないで,
「Dennou Ruby 製品テンプレート」案に
準拠した例がほしいです。拡張ライブラリも含むのが良いです。
rb-grib はまさに準拠してる?(迷ってた部分は結局どうしましたか)
他にはいい例ないでしょうか。
# あとは外部の依存ライブラリ判断をしてるのがあれば
というところでしょうか。
> 西澤さま:
>
> ありがとうございます。おぼろげな記憶ではそういうのもあったような...
> という状態です。当時はまともに検討せずすみませんでした。とりあえ
> ず読んでみます。
>
> > gem で管理されていない物への依存関係ですが、
> > 決まった方法はないと思います。
> > dcl-c は ruby-dcl に同梱しても良いのではと思ったりもしています。
> > netcdf は何か工夫が必要ですね。
>
> どんな工夫が考えられるありえるでしょうか。
>
> 堀之内
>
> > 西澤です
> >
> > 2年ほど?前 に、dennou-ruby プロダクトの顔をそろえましょうという提案をし、
> > http://davis.gfd-dennou.org/rubygadgets/ja/?%28Others%29+Dennou+Ruby+%C0%BD%C9%CA%A5%C6%A5%F3%A5%D7%A5%EC%A1%BC%A5%C8
> > に案を作りました。
> >
> > 結局議論は進まないまま、
> > 案はそのまま案のままですので、
> > 決定版ではありません。
> > ここらへんでちゃんと決めた方が良いですね。
> >
> > gem の作り方ですが、
> > 個人的な結論は、
> > 極力ツールを使わず、手で gemspec を書く
> > のが良いのではないかということです。
> > ツールは流行廃りがありますし、
> > 依存するものが増えるので、かえって後々の手間が増える気がします。
> > gemspec はそんなに難しくなく、かつ、一度書けばあとはマイナー変更でよいので。
> > また、すでにいくつか gem になっているものがあるので、
> > それをコピペすればそんなに手間ではないはずです。
> >
> > gem で管理されていない物への依存関係ですが、
> > 決まった方法はないと思います。
> > dcl-c は ruby-dcl に同梱しても良いのではと思ったりもしています。
> > netcdf は何か工夫が必要ですね。
> > あと何があったでしょうか
> >
> >
> >
> > 西澤誠也
> >
> >
> >
> > 2013年4月2日 12:49 Takeshi Horinouchi <horinout@xxxxxxxxxxxxxxxxx>:
> > > 堀之内です。
> > >
> > > 電脳Ruby関係のライブラリーのうち私がメンテするものは,
> > > これまで(私自身は) gem で提供してませんでした。
> > > 諸般の理由で gem は敬遠してたのですが,
> > > gem が標準でなかった ruby 1.8 もぼちぼち終わりですので,
> > > ここらで gem で提供するようにしないといかんかなと思い始めて
> > > います(やっとかよという声も聞こえそうですが)。ぼちぼち
> > > 調べようとしてるのですが,いろいろよくわからないので,
> > > 教えていただけると助かります。
> > >
> > > Q1 gem の作り方のチュートリアルとしてお勧めのページを
> > > 教えてください。ググればいろいろ出てきますが...。
> > > ツール(bundlerとかjewelerとか)を使って一から作るというのを
> > > 散見します。ゼロからはじめるならそういうのに乗っていくといいの
> > > かなと思いますが,既存のライブラリーを gem 化するのに良い
> > > ページもわかると嬉しいです。なお,ツールのはやりすたりに
> > > あまり影響されたくないという意識もちょっとあります。
> > >
> > > Q2 拡張ライブラリを含む gem の作り方のチュートリアルで
> > > お勧めのを教えてください。特に重要なのがラッパーで,
> > > C で書かれた外部のライブラリーに依存するわけですが,
> > > その依存関係の記述は最近はどうでしょう(以前はうまい
> > > 仕組みがないと聞いた気がしますが)。同梱する extconf.rb
> > > に書いてあっても,gem install するまで依存関係がみたされ
> > > ないことがわからず,インストールが途中で止まるというのは
> > > 嬉しくない(たぶんふつうそこで投げ出される)ので,
> > > spec になんらか記述できるとよいと思いますが。
> > > 不幸にしてそのような仕組みがない場合,どのように作ると
> > > ユーザーをうまく導けるといった経験則などあると嬉しいです。
> > >
> > > よろしくお願いします。
> > >
> > > 堀之内 武
> > > 北海道大学 地球環境科学研究院 地球圏科学部門
> > > 〒060-0810 札幌市北区北10条西5丁目
> > >
> > >
> >
> >
> >
> > --
> > Seiya Nishizawa
> > RIKEN Advanced Institute for Computational Science
> > Tel: +81-78-940-5754, Fax: +81-78-304-4972
> > 7-1-26, Minatojima-minami-machi, Chuo-ku, Kobe, Hyogo 650-0047, Japan
>
> 堀之内 武
> 北海道大学 地球環境科学研究院 地球圏科学部門
> 〒060-0810 札幌市北区北10条西5丁目
>
堀之内 武
北海道大学 地球環境科学研究院 地球圏科学部門
〒060-0810 札幌市北区北10条西5丁目