On Fri, 30 Jul 2004 06:18:18 +0900, James Britt <jamesunderbarb / neurogami.com> wrote: > I'm writing some code that depends on MIME::Types, and works > better with (but does not depend on) BlueCloth. What sort of application is it? (I'm curious, of course, as I wrote MIME::Types :) With Ruwiki, we depended on Algorithm::Diff -- and we will be depending on Diff::LCS -- and I will be packaging Diff::LCS with Ruwiki. This is because Ruwiki is intended to be standalone, except for the Ruby core libraries. Ruwiki ensures that its versions will be loaded in preference to system versions by modifying $LOAD_PATH such that the Ruwiki library directory is first. If and when I make it "installable" rather than an "unpack and run" program, I will do further work with the install.rb such that I do a "require 'diff/lcs'" (and any other dependencies); if it is not found, then I will install Diff::LCS. If it is found, then I will check to make sure that it is at least version 1.1. If not, then I will prompt the user for replacement. Now, the real problem is that Ruwiki -- as of right now -- only includes those parts of Diff::LCS which are necessary to run Ruwiki. Thus, if I take that route, I will probably offer multiple packages. An alternative -- and perhaps better way for the .tar.gz concept -- is to provide the required and optional packages as .tar.gz packages within one of your distribution packages. This means that OS-specific packagers don't have to strip out the code by hand, and you don't have to worry about those tests. bin/ dep/required/mime-types-1.13.tar.gz dep/optional/bluecloth-0.3.2.tar.gz ... That said, if you have a standalone situation as we have with Ruwiki, feel free to include MIME::Types or any of my other packages. I have RubyForge projects for MIME::Types, Text::Format, and Transaction::Simple, now -- I just haven't announced them. -austin -- Austin Ziegler * halostatue / gmail.com * Alternate: austin / halostatue.ca