1.1 からの主な変更内容がまとめられた Bundler: The best way to manage Ruby applications を読んでのメモです。
細かい変更点は bundler/CHANGELOG.md at 1-2-stable · carlhuda/bundler を参照のこと(英語です)。
Ruby のバージョンを指定できるようになった
Gemfile 中に、下記のように Ruby のバーションを指定できるようになりました。
ruby "1.9.3"
上記の設定は、該当するアプリが 1.9.3 と ABI 互換な Ruby VM に依存していることを宣言しています。バージョンチェックが失敗したら、Bundler は例外を投げます。 :engine と :engine_version オプションでより具体的に設定することが出来ます。
ruby "1.9.3", :engine => "jruby", :engine_version => "1.6.7"
パッチレベルまでは指定できないみたいです。
bundle package の対象に :git や :path の gem も含めることが出来るようになった
下記のように –all オプションを付けると、:git や :path で指定された gem も対象に含めることが出来るようになりました。–all は一度使うと記憶されます。
bundle package --all
そもそも bundle package コマンドってなに
bundle package
コマンドは、gem を vendor/cache にキャッシュするコマンドです。例えば bundle package
を実行 → vendor/cache を git のリポジトリに追加 とすると、他のユーザは gem を外部からダウンロードすることなく bundle install できます。
ローカル git リポジトリ
リモート git リポジトリに置いてある gem をローカルで修正しながら開発したいときなどに恐らく使える設定。例えば下記のコマンドを叩き
bundle config local.rack ~/Work/git/rack
Gemfile に下記のように書く
gem 'rack', :github => 'rack/rack', :branch => 'master'
そうすると、ローカルでは ~/Work/git/rack を参照し、デプロイ時には github 上の rack を参照するようになる。はず(未確認)。