Need to add minitest to Gemfile

Jason Guiditta jguiditt at redhat.com
Mon Aug 13 18:11:44 UTC 2012


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



More information about the aeolus-devel mailing list