SciRuby / daru

Data Analysis in RUby
BSD 2-Clause "Simplified" License
1.03k stars 139 forks source link

Please do not show the Install optional dependencies message everytime on runtime #404

Closed IsmailM closed 6 years ago

IsmailM commented 6 years ago

I'm using StatSample in GeneValidator - a CLI tool for validating gene predictions... We are using a single feature in StatSample - the Wilcoxon Test...

StatSample depends on Daru - hence this issue here...

Each time anyone runs GeneValidator Command line tool, they see the following messages:

Install the spreadsheet gem version ~>1.1.1 for using spreadsheet functions.

Install the mechanize gem version ~>2.7.5 for using mechanize functions.

That confuses people. Especially since GeneValidator does not need any spreadsheet or mechanize functions...

I would prefer that instead of showing the following message each time Daru is loaded, it is simply shown when daru is installed (e.g. in the spec.post_install_message). As that is when people are installing stuff and should be told about other optional dependencies...

To be quite frank - This is a really annoying and I'm considering looking at alternatives because of this...

https://github.com/SciRuby/daru/blob/0127dd5e2cb62d8a4a6550ef9cfb177ae387cd5e/lib/daru.rb#L89-L97

zverok commented 6 years ago

@IsmailM Please, a small bit of patience :) We are finishing daru-io, accompanying gem which encapsulates all import/export functionality, and it behaves much more accurate (e.g. prints those messages only when you really try to use some of this functionality). I believe not later than in a 2-3 weeks we'll do a great update on Daru.

Of course those messages are an extremely bad idea, it is just an artifact of an old, old times...

rainchen commented 6 years ago

I had the same issue, I "fixed" it in this way:

# Gemfile
gem 'daru', '~> 0.1.6', require: false
# config/initializers/daru_config.rb
# ignore error message like "Install the spreadsheet gem version"
if defined? silence_stream
  silence_stream($stderr) { require 'daru' }
end

nasty but works...

IsmailM commented 6 years ago

Hey guys,

Any updates/timeframe on this?

IsmailM commented 6 years ago

Hey @zverok, just a quick heads-up - I have submitted a PR (changing 5 lines) to 'fix' just this issue.

Would appreciate it if you could take the time to look through it and release a new gem version on rubygems.org - see #457.

zverok commented 6 years ago

The solution is pushed to master, please check.

IsmailM commented 6 years ago

That's perfect 👍

Really appreciate it @zverok.

Any chance you could make a gem release so that we could use it 👍

IsmailM commented 6 years ago

Hey @zverok

Any chance you could push a new gem release so that we can use the fix that you pushed 👍

cc @v0dro

zverok commented 6 years ago

@IsmailM I plan to review/release everything that had changed for last few months this weekend.

IsmailM commented 6 years ago

Hey @zverok,

Sorry to bug you about this, but would really appreciate it if you could review/release things soon 👍

(we are releasing a submitting a paper really soon (potentially towards the end of next week) and so would really love to include the latest version of daru in our tool)

Many Thanks Ismail Moghul

zverok commented 6 years ago

You'll laugh, but last Saturday morning when I started to review PRs to merge, I accidentally overturned a cup of tea into my laptop and lost it for entire weekend :( But THIS weekend (more probably Saturday, e.g. tomorrow) I am dedicated to the task.

Sorry to be a shitty maintainer, I am stepping down from this role at autumn, hopefully, my successor could do better.

IsmailM commented 6 years ago

Hey @zverok, Many thanks for submitting a RubyGems update - Really appreciate it 👍

PS. Sorry to hear about your laptop - hope it survived the coffee last weekend.