Created
April 18, 2010 10:03
-
-
Save svenfuchs/370142 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I would like to be able to have multiple bundles (or Gemfiles) per project. | |
I'd imagine things to work like this: | |
Gemfile.a1 | |
gem 'a', '~> 1' # depends on gem b (1.0.0) | |
Gemfile.a2 | |
gem 'a', '~> 2' # depends on gem b (2.0.0) | |
Now `bundle install` would install all the relevant versions: | |
a (1.0.0) | |
a (2.0.0) | |
b (1.0.0) | |
b (2.0.0) | |
From the runner/application/process I could now pick a bundle that I want to | |
work within: | |
bunde exec a1 ruby test/all.rb # runs test/all.rb within bundle a1 | |
bunde exec a2 ruby test/all.rb # runs test/all.rb within bundle a2 | |
Even if `bundle exec` can't easily be extended like this I still might have | |
my own bundle-aware runner that could do something like: | |
bundle = Bundler.pick('a1') | |
bundle.setup(:group1, :group2) | |
instead of: | |
Bundler.setup(:group1, :group2) | |
This would unlock tons of flexibility and power that - unless I'm missing | |
something big - not available with Bundler. | |
E.g. it would be a snap to test a particular version of the I18n gem against | |
several Rails versions on Heroku. | |
With the current Bundler single-bundle design that always only allows to | |
install a single, consistent bundle and run stuff within this bundle I'd have | |
to set up a CI server per Ruby version AND per Rails version that I want to | |
test against on Heroku. (Which of course is possible but really ugly.) | |
Being able to tell the server to pick up one of many Gemfiles/bundles which | |
all already are installed on my Heroku stack I'd only have to maintain a stack | |
per Ruby version (like 1.8.7 and 1.9.1). I could then have the CI server run | |
my tests against each of the installed bundles. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment