Create  FrontPage  Index  Search  Changes  Login

RDtool

このページでは、RDtoolを標準添付するべきかどうかについて考えてみます。

Rubyの公式配布物に新たなライブラリを添付するにあたっては、以下の5項目について明確にすることが期待されているようです。(参考:[ruby-dev:24721?])

(1) 複数のライブラリのうちどれがもっとも優れているか

  • デファクトスタンダードの実装として十分すぎる実績があります。
  • 他の実装として、RAAにはrdoがあります。が、機能的にも実績の上でも、RDtoolを凌ぐとはあまり思えません。長所である「Pure Rubyで記述されている」という点も、racc runtimeが標準で使える現在では、その優位性も薄れています。

(2) その「優れている」というのはどのように基準によってか

  • 標準のドキュメントフォーマットとして使われてきた実績の長さです。
  • コードの安定性(APIの変更が頻繁に行われたりしない)の面からでも評価できると思われます。
  • とはいえ、安定しているということは、逆に「アクティブな開発が行われず停滞している」ということも言えるのかも知れません。もっとも、標準添付するのには、そういう意味でのアクティブさは考慮しなくてもよいかもしれません(最低限の保守は継続的に行われることを期待したいですが)。

(3) メンテナは確保できるか

  • Moonwolfさんがメンテナとして立候補しました。オリジナルの製作者のToshさんの承認を受けています。

(4) コードレビューは行われているか

  • ライブラリとしてのRDtoolはかなりのコードレビューが行われたと思います。
    • 実装で言うと、
      • RWiki(咳さん)
      • tDiaryのRDスタイル(うえちさん、たださん)
      • Hikiのrd+ style(Masao Mutohさん)
      • lilyのRDスタイル(前田さん)
      • Wikiもどき(岩月さん)
      • rd2sdoc(Nobuhiko Inabaさん)
      • RD2LaTeX変換ライブラリ(澤田 淳二さん)
      • rd2word(Hiroyuki KUROSAKIさん)
      • Web Publisher(カモノハシさん)
      • RAA(なひさん、なかむら(う)さん)
      • ... などなど多数の実装があります。
        • でも、まだ十分ではないかも……`ruby -w`で実行すると大量のwarningがでます。しかもRuby1.6/1.8両方です。
    • 配布するパッケージとして十分なレビューがされていないと思います。
      • rd2コマンドの出力するバージョンが古いことが指摘されなかった。
        • 0.6.14の時点からずっと0.6.13と表示していた。
      • 0.6.14においてユニットテストがrunit/cui/mytestrunnerがない為、実行できない。
        • rd2htmlの出力するHTMLが変わったのにテストが修正されていなかった。0.6.15以降は全てのテストが通るようになっています。152 tests, 559 assertions, 0 failures, 0 errors
    • doc/rd-draft.rdに書いてあるリンクが切れている。
  • たった3行の為にamstdが必要だったが改善されなかった。
    • アプリケーションとしては十分なレビューがされていないと思います。
      • 日本語固有のcharsetしか出力できない。 UTF-8出力できない。
      • 入力に対するcharset変換がない。8ビット系以外のUTF-16,UTF-32などを処理できない。
      • charset指定しないとUTF-8扱いになるが、ドキュメントに記述がない。

(5) RDocドキュメントは用意できるか

  • これから整備していく予定です。
    • 整備してから標準添付に、という流れでしょうか。

RDtoolを標準にするメリット・デメリット

  • [メリット]
    • レンタルサーバにRubyが入っていると必ず使えるようになる。
  • [デメリット]
    • 大きめの変更やリリースについて本体にひきずられる。 ruby-list:40198
    • 最近のRDtoolの更新ペースでは問題にならないのでは。
  • [考慮する点]
    • RDtoolは*.ryから*.tab.rbを作るのにraccを必要とするので、まずraccを添付する必要があるのでは?ruby-list:40302
Last modified:2011/08/14 22:56:02
Keyword(s):
References:
This page is frozen.