Need to add minitest to Gemfile

Jason Guiditta jguiditt at redhat.com
Mon Aug 13 18:25:05 UTC 2012


On 13/08/12 14:11 -0400, Jason Guiditta wrote:
>On 11/08/12 09:14 -0400, Hugh Brock wrote:
>>On Fri, Aug 10, 2012 at 04:44:34PM +0200, Vít Ondruch wrote:
>>>Dne 9.8.2012 19:36, Jason Guiditta napsal(a):
>>>>On 09/08/12 09:18 -0700, Crag Wolfe wrote:
>>>>>On 08/09/2012 06:46 AM, Jason Guiditta wrote:
>>>>>>On 08/08/12 17:22 -0700, Crag Wolfe wrote:
>>>>>>>conductor/src/Gemfile currently does not have a dependency for
>>>>>>>minitest, but it should. I ran into this while trying to run "bundle
>>>>>>>exec rake spec" and "bundle exec rake cucumber" in a
>>>>>>>bundler-development environment (thanks Richard for helping me debug
>>>>>>>this).
>>>>>>>
>>>>>>>I'm not certain whether this dependency belongs in the top section as
>>>>>>>"gem 'minitest' (which works fine for me) or just under "group
>>>>>>>:development, :test do"
>>>>>>>
>>>>>>>--Crag
>>>>>>>
>>>>>>>P.S. Is there a reason we don't have the lists of gems in Gemfile
>>>>>>>alphabetized? :-)
>>>>>>
>>>>>>Where do you see a dep needed on minitest? I have an rvm gemset with
>>>>>>only gems install by bundler (which does not include minitest), and it
>>>>>>seems fine. If we really did need it for some reason, where it
>>>>>>goes should be the dev/test block - requiring a test library to run
>>>>>>the main app would be madness and a bug to be fixed, imo.
>>>>>>
>>>>>>-j
>>>>>
>>>>>I am just using Bundler, not rvm.  FWIW, this particular test is
>>>>>on FC17.  The error I get is pasted below, the main hint being
>>>>>"cannot load such file -- minitest/unit (LoadError)".  This
>>>>>error goes away when I add minitest to the Gemfile and refresh
>>>>>my gems with "bundle install". So, not sure why it is not an
>>>>>issue in rvm (is it doing some extra Gem magic?) but clearly
>>>>>looks to be an issue just using Bundler.
>>>>>
>>>>>$ bundle exec rake cucumber
>>>>>===== boot.rb will try and use bundler =========
>>>>>===== application.rb will try and use bundler =========
>>>>>Failed to load /home/prince/w1/conductor/src/config/oauth.json,
>>>>>continuing without OAuth support. Run rake dc:oauth_keys and
>>>>>restart Conductor to enable.
>>>>>/usr/bin/ruby -S bundle exec cucumber  --profile default
>>>>>Using the default profile...
>>>>>===== boot.rb will try and use bundler =========
>>>>>===== application.rb will try and use bundler =========
>>>>>DEPRECATION WARNING: Calling set_table_name is deprecated.
>>>>>Please use `self.table_name = 'the_name'` instead. (called from
>>>>><top (required)> at /home/prince/w1/conductor/src/
>>>>>config/environment.rb:23)
>>>>>Failed to load /home/prince/w1/conductor/src/config/oauth.json,
>>>>>continuing without OAuth support. Run rake dc:oauth_keys and
>>>>>restart Conductor to enable.
>>>>>DEPRECATION WARNING: Calling set_table_name is deprecated.
>>>>>Please use `self.table_name = 'the_name'` instead. (called from
>>>>><class:Quota> at /home/prince/w1/conductor/src/app
>>>>>/models/quota.rb:37)
>>>>>DEPRECATION WARNING: Calling set_primary_key is deprecated.
>>>>>Please use `self.primary_key = 'the_name'` instead. (called from
>>>>><class:ViewState> at /home/prince/w1/conductor/s
>>>>>rc/app/models/view_state.rb:33)
>>>>>cannot load such file -- minitest/unit (LoadError)
>>>>>/home/prince/w1/bundler/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in
>>>>>`require'
>>>>>/home/prince/w1/bundler/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in
>>>>>`block in require'
>>>>>.....
>>>>>
>>>>Actually, after a quick look, it appears minitest is part of ruby 1.9,
>>>>so since you are on f17, I suspect the issue is there. To attempt to
>>>>test this, I spun up a new f17 vm and installed ruby(nothing of ours).
>>>>I then ran:
>>>>$ irb
>>>>irb(main):001:0> require 'minitest/unit'
>>>>LoadError: cannot load such file -- minitest/unit
>>>>
>>>>F17 installs ruby 1.9.3, fwiw, your example shows 1.9.1 - but I dont
>>>>think that is the problem.
>>>>
>>>>Same error, so good indicator there.  I ran the same experiment on
>>>>rvm+ruby 1.9, and the library loaded.  Then I created a new gemset,
>>>>blew away the lock file, and rebuilt it on ruby 1.9 (rvm-installed).
>>>>Still no minitest listed there. Then I did a bit of googling, and see
>>>>that minitest is, in fact, part of the 1.9 stdlib[1][2], meaning
>>>>installing ruby should get the library for you. Even the github
>>>>page[3] for minitest says the gem is only needed for ruby 1.8.
>>>>
>>>>Back to f17.  yum search minitest gets me a rubygem.  I have more
>>>>searching to do, but I vaguely recall some discussion on ruby-sig
>>>>about splitting out some parts of ruby libraries into separately
>>>>installable rpms, for the purpose of allowing them to be updated
>>>>independently for errata/bugfixes, for example.  I am going to search
>>>>the archive and reply again shortly, but wanted to get this mail out n
>>>>case you are beating your head against it still.
>>>>However, all this still doesn't answer the question of why minitest is
>>>>being required in the first place, or by whom.  Grepping for
>>>>'minitest' in activesupport gem dir returned nothing for me, so think
>>>>that is not the culprit. I also grepped in the specifications
>>>>directory, and found references to it in a number of libraries, but
>>>>they are all listed as developer_dependencies, unless you have a
>>>>version of rubygems < 1.2.0. This is not the case is it?  If not, have
>>>>you made any changes to your Gemfile? I can continue to help debug
>>>>this if needed, ping me later on irc - perhaps I can replicate your
>>>>steps to see where things mught have gone wrong.
>>>>
>>>>-j
>>>>
>>>>[1]
>>>>http://www.rubyinside.com/a-minitestspec-tutorial-elegant-spec-style-testing-that-comes-with-ruby-5354.html
>>>>
>>>>[2]
>>>>http://www.bootspring.com/2010/09/22/minitest-rubys-test-framework/
>>>>[3] https://github.com/seattlerb/minitest
>>>
>>>Jason,
>>>
>>>Yes, I can confirm it is Fedora issue, since Fedora unbundles
>>>minitest out of Ruby, because bundling is wrong. Please add the
>>>minitest into your Gemfile. Since that time, it will work on your
>>>Mac as well as on Fedora.
>>>
>>>BTW minitest is required by activesupport. And you should search for
>>>"test/unit".
>>
>>This is another reason we shouldn't be depending on any of the Fedora
>>ruby stack for upstream development. Rather than "add minitest into
>>your Gemfile," which makes us automatically different from normal
>>upstream Ruby projects, let's "use standard upstream Ruby with RVM."
>>Then it becomes a different team's concern to do the product
>>packaging, which may well include "add minitest into the Cloud Engine
>>Product's Gemfile" and undoubtedly many other distro-specific changes.
>>
>>For the record, I have no opinion on whether bundling in Fedora
>>packages is wrong or not. I just don't want packaging in between us
>>and success.
>>
>>--Hugh
>>
>
>+1, I meant to reply with something similar, but forgot.  I thin
>adding a dependency in the product (or even fedora) _rpm spec_ is
>fine, but it doesn't belong in the Gemfile.  I have not tested this
>scenario, but I suspect it will 'just work' if done this way, and
>allows fedora/rhel to do what they want afa ruby package structure.
>
>-j

After I sent this, I remembered I had an f17 vm where I had replicated
the require failure.  I just booted it, installed rubygem-minitest,
and then tries to require 'minitest/unit' (the error line crag got),
and it worked, didn't even require loading rubygems first, so this
further makes me feel any minitest requirement here is a pure
rhel/fedora spec/rpm packaging issue.



More information about the aeolus-devel mailing list