The Forever Plan • Fix every known bug • Deprecate everything we wanted to get rid of by 1.0.0.0.0.0.0.1 • Don't make promises we can't deliver • Ship in ~2012 Samuel Giddins, RubyConf BR 2017 6
Bundler::FeatureFlag - if Bundler::Version.split(".").first.to_i >= 2 - if Gem::Version.new(Bundler::VERSION) >= Gem::Version.new("2.0") + if Bundler.feature_flag.enable_cool_new_feature? new_behavior end Samuel Giddins, RubyConf BR 2017 13
Documentation Tests • Every setting documented • Bundler can't use arbitrary config settings any more • Keep language friendly & welcoming • All commands have a custom man page Samuel Giddins, RubyConf BR 2017 14
Changing Bundler versions on CI Rspec.describe "the lockfile format", bundler: "< 1" do end Rspec.describe "the lockfile format", bundler: 2 do end Samuel Giddins, RubyConf BR 2017 16
The Other Forever Plan The rumors of Bundler's death have been greatly exaggerated http://bundler.io/blog/2013/12/07/the-rumors-of- bundlers-death-have-been-greatly-exaggerated.html Samuel Giddins, RubyConf BR 2017 18
The Other Forever Plan • Shipping Bundler in Ruby ✔ • Merging RubyGems and Bundler ✔✘ • Making everything forward and backward compatible ✘ Samuel Giddins, RubyConf BR 2017 19
New bundle config Interface Old: $ bundle config # list all settings $ bundle config "path" # print the current `path` setting $ bundle config "path" "vendor" # set the path to "vendor" $ bundle config --delete "path" # delete the current setting for `path` Samuel Giddins, RubyConf BR 2017 25
New bundle config Interface New: $ bundle config list # list all settings $ bundle config get "path" # print the current `path` setting $ bundle config set "path" "vendor" # set the path to "vendor" $ bundle config unset "path" # delete the current setting for `path` Samuel Giddins, RubyConf BR 2017 26
Why Bundler 2? A brief history of Bundler usage1 Version Release Date Downloads 0.3.0 July 29, 2009 3,308 1.0.0 August 29, 2010 297,889 1.15.4 August 19, 2017 12,493,974 All Time 205,973,132 1 Current as of November 10, 2017 Samuel Giddins, RubyConf BR 2017 43
Why Bundler 2? A brief history of Bundler: http://andre.arko.net/2015/04/28/how-does-bundler- work-anyway/ • André Arko, Bundler Project Lead Samuel Giddins, RubyConf BR 2017 44