[Cucumber] gem missing dependencies

Hi!

Looks like installing hoe (which brings in rubyforge and rake) solved
the problem below.
Who builds the gem / should I report this to / should I send a patch ?

Bye,
Kero.


fresh install of debian lenny, upgraded to unstable.

$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
$ gem -v
1.2.0
$ gem list

*** LOCAL GEMS ***

builder (2.1.2)
cucumber (0.3.0)
diff-lcs (1.1.2)
polyglot (0.2.5)
rspec (1.2.4)
term-ansicolor (1.0.3)
treetop (1.2.5)
$ cucumber
/usr/lib/ruby/1.8/rubygems.rb:578:in report_activate_error': Could not find RubyGem hoe (>= 1.8.0) (Gem::LoadError) from /usr/lib/ruby/1.8/rubygems.rb:134:inactivate’
from /usr/lib/ruby/1.8/rubygems.rb:158:in activate' from /usr/lib/ruby/1.8/rubygems.rb:157:ineach’
from /usr/lib/ruby/1.8/rubygems.rb:157:in activate' from /usr/lib/ruby/1.8/rubygems.rb:158:inactivate’
from /usr/lib/ruby/1.8/rubygems.rb:157:in each' from /usr/lib/ruby/1.8/rubygems.rb:157:inactivate’
from /usr/lib/ruby/1.8/rubygems.rb:158:in activate' from /usr/lib/ruby/1.8/rubygems.rb:157:ineach’
from /usr/lib/ruby/1.8/rubygems.rb:157:in activate' from /usr/lib/ruby/1.8/rubygems.rb:49:ingem’
from /var/lib/gems/1.8/bin/cucumber:18

On Sun, Apr 26, 2009 at 2:16 PM, Kero van Gelder [email protected] wrote:

Hi!

Looks like installing hoe (which brings in rubyforge and rake) solved the problem below.
Who builds the gem / should I report this to / should I send a patch ?

I just fixed that:
http://github.com/aslakhellesoy/cucumber/commit/23cbc9b6c54ebe1ecf568610c2696762f22f0b06

Aslak

Hi list & Clifford,

Looks like installing hoe (which brings in rubyforge and rake) solved the problem below.

I just fixed that:
http://github.com/aslakhellesoy/cucumber/commit/23cbc9b6c54ebe1ecf568610c2696762f22f0b06

Thanks Aslak, that was quick, but…
I had to try that, and the 0.3.1 release made that very easy.
Didn’t help.
looks like polyglot is the culprit, from some extra output I created
from rubygems:

#<Gem::Specification:0xb7c92d60 @extensions=[], @summary=“Allows custom
language loaders for specified file extensions to be hooked into
require”, @version=#<Gem::Version “0.2.5”>,
@loaded_from=“/var/lib/gems/1.8/specifications/polyglot-0.2.5.gemspec”,
@original_platform=nil, @post_install_message=nil, @description=“Allows
custom language loaders for specified file extensions to be hooked into
require”, @dependencies=[#<Gem::Dependency:0xb7c922fc
@version_requirement=nil, @name=“hoe”,
@version_requirements=#<Gem::Requirement:0xb7c922c0 @version=nil,
@requirements=[[“>=”, #<Gem::Version “1.8.0”>]]>, @type=:runtime>],
@requirements=[], @test_files=[“test/test_helper.rb”,
“test/test_polyglot.rb”], @require_paths=[“lib”],
@extra_rdoc_files=[“History.txt”, “License.txt”, “Manifest.txt”,
“README.txt”, “website/index.txt”], @date=Tue Mar 03 00:00:00 +0100
2009, @new_platform=“ruby”, @executables=[], @authors=[“Clifford
Heath”], @cert_chain=[], @name=“polyglot”,
@required_rubygems_version=#<Gem::Requirement:0xb7c92b6c @version=nil,
@requirements=[[“>=”, #<Gem::Version “0”>]]>, @files=[“History.txt”,
“License.txt”, “Manifest.txt”, “README.txt”, “Rakefile”,
“config/hoe.rb”, “config/requirements.rb”, “lib/polyglot.rb”,
“lib/polyglot/version.rb”, “log/debug.log”, “script/destroy”,
“script/generate”, “script/txt2html”, “setup.rb”,
“tasks/deployment.rake”, “tasks/environment.rake”, “tasks/website.rake”,
“test/test_helper.rb”, “test/test_polyglot.rb”, “website/index.html”,
“website/index.txt”, “website/javascripts/rounded_corners_lite.inc.js”,
“website/stylesheets/screen.css”, “website/template.rhtml”],
@has_rdoc=true, @specification_version=2, @loaded=true,
@signing_key=nil, @default_executable=nil,
@email=“[email protected]”,
@required_ruby_version=#<Gem::Requirement:0xb7c92ce8 @version=nil,
@requirements=[[“>=”, #<Gem::Version “0”>]]>, @rdoc_options=[“–main”,
“README.txt”], @bindir=“bin”, @rubygems_version=“1.2.0”,
@homepage=“http://polyglot.rubyforge.org”, @platform=“ruby”,
@autorequire=nil, @rubyforge_project=“polyglot”>

[#<Gem::Dependency:0xb7c922fc @version_requirement=nil, @name=“hoe”,
@version_requirements=#<Gem::Requirement:0xb7c922c0 @version=nil,
@requirements=[[“>=”, #<Gem::Version “1.8.0”>]]>, @type=:runtime>]

Clifford, let’s take this off-list.

Bye,
Kero.

builder (2.1.2)
from /usr/lib/ruby/1.8/rubygems.rb:157:in each' from /usr/lib/ruby/1.8/rubygems.rb:157:in activate’
from /usr/lib/ruby/1.8/rubygems.rb:158:in activate' from /usr/lib/ruby/1.8/rubygems.rb:157:in each’
from /usr/lib/ruby/1.8/rubygems.rb:157:in activate' from /usr/lib/ruby/1.8/rubygems.rb:158:in activate’
from /usr/lib/ruby/1.8/rubygems.rb:157:in each' from /usr/lib/ruby/1.8/rubygems.rb:157:in activate’
from /usr/lib/ruby/1.8/rubygems.rb:49:in `gem’
from /var/lib/gems/1.8/bin/cucumber:18


How can I change the world if I can’t even change myself?
– Faithless, Salva Mea

I had to try that, and the 0.3.1 release made that very easy.
Didn’t help.
looks like polyglot is the culprit, from some extra output I created from
rubygems:

This is the umpteenth time polyglot messes up. Polyglot is broken broken
broken. Cucumber doesn’t use it, but can’t escape it, because Treetop
always loads it. I have tried to lobby the Treetop developers to make
it
optional. I have sent a patch (as a treetop fork). It’s still in there.

What else can I do?

Aslak

On Tue, Apr 28, 2009 at 1:14 AM, Kero van Gelder [email protected] wrote:

This is the umpteenth time polyglot messes up. Polyglot is broken broken
broken. Cucumber doesn’t use it, but can’t escape it, because Treetop
always loads it. I have tried to lobby the Treetop developers to make
it
optional. I have sent a patch (as a treetop fork). It’s still in there.

What else can I do?

How far do you want to take it?

We got gems, github. Think RPath, fedora spins, debian derivatives.
Grab all stuff from rubyforge and publish your own gem-feed.
Tweaked to fit your needs.

I know how to work around it by saying good bye to the “official”
treetop.
That shouldn’t be necessary though - my patch is tiny:

But it’s a month old and noone else has committed anything to Treetop
since.
Also, despite the number of forks of Treetop, not a single commit in
these
forks have been merged back to the official repo. Ever.

I know stewardship of the project has been handed over, but it still
doesn’t
seem to go anywhere. Too bad, because Treetop is a kickass library.

Looks like my only option is to fork it, release my own gem and make
Cucumber depend on that instead. That sucks.

I’ll stop whining now :-/

Aslak

On 28/04/2009, at 7:23 AM, Kero van Gelder wrote:

Hi list & Clifford,

Looks like installing hoe (which brings in rubyforge and rake)
solved the problem below.
I just fixed that:
Thanks Aslak, that was quick, but…
I had to try that, and the 0.3.1 release made that very easy.
Didn’t help.
looks like polyglot is the culprit, from some extra output I created
from rubygems:

Clifford, let’s take this off-list.

Kero,

Thanks for taking a positive approach to helping me fix Polyglot.
It’s a breath of fresh air compared to Aslak’s poisonous attitude.
I’ve never been unwilling to fix it, but I need to be told what the
problem is - not just that there is a problem. Also, I’ve been away
from any computer for the last five weeks. Since I don’t (yet) use
Cucumber, I hadn’t diagnosed the cause of the problem. If it’s the
hoe dependency, it can be fixed.

Polyglot requires hoe because it’s built using “newgem”. It’s a
nuisance, and I’ll be happy to remove it, or make hoe a dev-time
dependency only if possible. I’ve contacted Dr Nic to ask how to
proceed. In my view, using hoe shouldn’t add a runtime dependency.

BTW… why, if polyglot has a hoe dependency, doesn’t hoe get
installed when you install cucumber? I’m not saying that the
dependency is a good thing, but shouldn’t rubygems install it
anyhow?

Also, I think I’m the only one likely to publish a new Treetop gem.
The forks of Treetop have resulted in no pull requests - they’re
just experimental. We have a list of feature requests we’re thinking
about, but Treetop is so nice and clean and we don’t want to move
forward unless we can keep it that way - we have however recently
applied a github patch.

I can easily remove Polyglot, but not for the sole reason that someone
complains that it causes problems they’re unwilling to describe,
diagnose, or help fix. If a complaint comes with a bad attitude, I’ll
just
continue to ignore it.

Clifford H…

This is the umpteenth time polyglot messes up. Polyglot is broken broken
broken. Cucumber doesn’t use it, but can’t escape it, because Treetop
always loads it. I have tried to lobby the Treetop developers to make it
optional. I have sent a patch (as a treetop fork). It’s still in there.

What else can I do?

How far do you want to take it?
We got gems, github. Think RPath, fedora spins, debian derivatives.
Grab all stuff from rubyforge and publish your own gem-feed.
Tweaked to fit your needs.

But for that scheme to work, others should not lure us away from your
feed with their own, that tweaks other gems.

So I guess what you really need is a policy for gems on rubyforge.
rubygems looking over some quality and cohesiveness, like (linux)
distros
check quality and make sure packages work together.

The kind of check we’d want to do on polyglot is easy to automate.
If it’d be done when creating the gem, as well as on rubyforge before
it’s put in the feed, I guess noone can complain.

Bye,
Kero.


How can I change the world if I can’t even change myself?
– Faithless, Salva Mea

Polyglot requires hoe because it’s built using “newgem”. It’s a
nuisance, and I’ll be happy to remove it, or make hoe a dev-time
dependency only if possible. I’ve contacted Dr Nic to ask how to
proceed. In my view, using hoe shouldn’t add a runtime dependency.

Hm, snippet from long p spec (from my prev email):
@dependencies=[#<Gem::Dependency:0xb7c922fc @version_requirement=nil,
@name=“hoe”, @version_requirements=#<Gem::Requirement:0xb7c922c0
@version=nil, @requirements=[[">=", #<Gem::Version
+“1.8.0”>]]>, @type=:runtime>]

So your dependency is/was runtime-only, it seems.
But the stuff got fixed in the meantime!
I’m guessing it’s the rubygems upgrade on my system.

$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
$ gem -v
1.3.2
$ gem list

*** LOCAL GEMS ***

builder (2.1.2)
calibre-semaphore (1.0.0)
cucumber (0.3.2)
diff-lcs (1.1.2)
polyglot (0.2.5)
rspec (1.2.6)
term-ansicolor (1.0.3)
treetop (1.2.5)
$ gem dependency polyglot
Gem polyglot-0.2.5
hoe (>= 1.8.0, development) <= not runtime anymore! same 0.2.5
polyglot gem!

$ cucumber
0 scenarios ()
0 steps ()
$

Bye,
Kero.


How can I change the world if I can’t even change myself?
– Faithless, Salva Mea