Closed kshahkshah closed 12 years ago
Hey,
First, thanks a lot for your bug fix!
Concerning the dependencies, initially I did have them as rubygems dependencies. However, the reason I switched them to the installer is because none of them is essential to the functioning of all the library (since the whole library is based on pluggable wrappers, of which none are really essential to the core). Therefore, I believe it doesn't make sense to ask the user to install all of them by default - accordingly, the installer gives the user this additional freedom of choice. IMHO, this is only one more example to highlight that optional dependencies are crucially missing to rubygems. What do you think?
Also, what do you mean by "the external binary libraries doesn't inform you of what to install"? Didn't you get the message saying, e.g.:
Do you want to install ocropus to recognize text in image files (y/n)?
I am not sure if I understand well.
Thanks for your input, Louis
Instead of an installer theres modules that know how to check for the dependency? IE.
raise 'Please add "gem 'stanford-nlp' to your gemfile" unless defined?(StanfordNLP)
Yes, that is another possibility that I thought of - e.g. defining a treat_require
function and using that across the library. But I don't really see the advantage of that versus the installer ?
Installer is a bit of an uncommon case. Albeit, it's a great idea. Ruby developers tend to know that when you load a module / class, that class knows how to take care of it's dependencies. (autoload for example).
I think that if we were to create a great "Getting Started" guide that encapsulated setting StanfordNLP or Enju up with the installer, there could be huge advantages. But we also have to consider production environments, that just want to install the gem and dependencies separately because of a chef script.
I'll close this issue unless somebody has a precise modification to propose?
I like the automated installer but it appears to be duplicating the efforts of rubygems.
For instance in
dependencies.rb
there are listed 12 gems which could simply be listed as runtime dependencies in the treat.gemspec file.Also, the external binary libraries doesn't inform you of what to install if you choose to install manually. That information is only available on the wiki.
This is more of meta issues, but I did find a small bug as well which I will fork and fix.