From a clean install w/o gems in the current rvm gemset:
$ gem install rubygems-bundler
$ gem install bundler
$ gem install rake
$ head -1 `which bundle`
$ head -1 `which rake`
$ echo -e "source 'http://rubygems.org'\ngem 'compass'" > Gemfile
$ head -1 `which sass`
$ head -1 `which compass`
most likely you have a setting BUNDLE_BIN in ~/.bundle/config or in you environment.
using rubygems-bundler does not affect binaries generated by bundler.
You should turn of that BUNDLE_BIN variable as bundler provided binaries are no longer required for proper working when using rubygems-bundler gem.
No to both of those :(
$ env | grep BUNDLE_BIN
$ cat ~/.bundle/config
cat: ~/.bundle/config: No such file or directory
It doesn't look like it's the traditional bundler-binstubs:
gem install sass
cat `which sass`
gem uninstall sass
echo -e "source 'http://rubygems.org'\ngem 'sass'" > Gemfile
cat `which sass`
outputs https://gist.github.com/1150403 - identical except for the shebang
gem uninstall sass
outputs https://gist.github.com/1150405 - the bundler binstub
and what is the output of
bundle config bin
bundle should generate wrappers only when the bin is set. if it is generating binaries in other cases it might mean there is a bug ...
for interactive help you can join me on #rubygems-bundler IRC channel on freenode.
so this is issue with rubygems, I will check with newest version, thanks
Ah, alright. Thanks for looking into this!
$ gem -v
I'm having the same problem, with a similar setup. Only difference is that I'm running RubyGems 1.8.8 and RVM. I haven't been able to track down where the problem is in the code, but I suspect that it's in the way Bundler does the gem install -- via a Ruby call instead of the command line.
As a work-around, I've been running gem regenerate_binstubs after every bundle install.
Other than that, I think the plugin is great. Thanks!
After checking it looks like bundler does not run rubygems plugins, I'm not sure if that is a bug or feature ...
rubygems-bundler uses shebang customization backported from rubygems 1.9, and in 1.9 backporting via rubygems plugin will be not needed - so then it should be working.
For now please use gem regenerate_binstubs as it will solve this problem.
One of main goals of rubygems-bundler is backporting so I will investigate this issue in free time to provide solution to make your life easier.
OK, I dug deeper, and found that Rubygems only loads plugins when the gem command is run (i.e. when rubygems/gem_runner is loaded). Since neither Bundler nor RubyGems loads that file (except from the gem binary), the rubygems-bundler hooks do not get loaded.
Might be worth bringing this up with the bundler guys? They probably want to keep gem-based behavior the same
I think Rubygems would be the right place to "fix" the problem of hooks only being called when invoked via the gem command.
I think it might be fixed with this change bundler/bundler#1364 could someone confirm ?
I have tried the above with bundler 1.0.21 (manually applied the changes over installed gem) and it worked fine, I could not get bundler 1.1pre working - but as soon it will be functional this will work as expected.
just to make things easier I have released today mpapis-bundler 1.0.21 with support for rubygems plugins and depending on rubygems-bundler, the future is now - details http://niczsoft.com/2011/10/no-more-bundle-exec/
there was an update to bundler and to my fork - gem "mpapis-bundler", "~> 126.96.36.199" - updated to reflect bundler/bundler#1500 (comment) ... rubygems plugins allowed via Gemfile:
gem "mpapis-bundler", "~> 188.8.131.52"
group :never do