Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Working towards Bundler 3

Working towards Bundler 3

Bundler hit a big milestone this year with the release of Bundler 2 🎉, but not without its bumps and hurdles. We'll look into the problems that some of our users have been experiencing after the Bundler 2 release, what the core team has been doing to fix these issues and what we've since learned. Afterwards, We'll look at the upcoming Bundler 2.1 and Bundler 3 releases.

Colby Swandale

April 20, 2019

More Decks by Colby Swandale

Other Decks in Programming


  1. $ bundle install Fetching gem metadata from https://rubygems.org/...... Resolving dependencies...

    Using bundler 2.0.1 Fetching mini_portile2 2.4.0 Installing mini_portile2 2.4.0 Fetching nokogiri 1.10.2 Installing nokogiri 1.10.2 with native extensions
  2. $ ruby --version ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin18] $

    gem install bundler Fetching: bundler-2.0.1.gem (100%) ERROR: Error installing bundler: bundler requires Ruby version >= 2.3.0.
  3. $ ruby --version ruby 2.4.6p354 (2019-04-01 revision 67394) [x86_64-darwin18] $

    gem --version 2.7.9 $ gem install bundler Fetching: bundler-2.0.0.gem (100%) ERROR: Error installing bundler: There are no versions of bundler (= 2.0.0) compatible with your Ruby & RubyGems bundler requires RubyGems version >= 3.0.0. The current RubyGems version is 2.7.9. Try 'gem update --system' to update RubyGems itself.
  4. $ grep -A 1 "BUNDLED WITH" Gemfile.lock BUNDLED WITH 1.17.3

    $ bundle version Bundler version 1.17.3
  5. $ grep -A 1 "BUNDLED WITH" Gemfile.lock BUNDLED WITH 2.0.1

    $ bundle version Bundler version 2.0.1
  6. RubyGems 3 Matches on major version (Same as Bundler 1)

    BUNDLED WITH 2.0.1 Bundler Versions 2.0.1 2.0.2 2.1.0 3.0.pre.1 1.17.2
  7. RubyGems 2 Matches on exact version BUNDLED WITH 2.0.1 Bundler

    Versions 2.0.1 2.0.2 2.1.0 3.0.pre.1 1.17.2
  8. Ideas for a better major release • Actively engage for

    feedback from the community • Longer pre release cycles • More transparency around breaking changes
  9. $ bundle show rack [DEPRECATED] use `bundle info rack` instead

    of `bundle show rack` /Users/colby/Desktop/.bundle/ruby/2.6.0/gems/rack-2.0.7
  10. $ bundler Bundler version 3.0.0 Bundler commands: Primary commands: bundle

    install [OPTIONS] # Install the current environment to the bundle update [OPTIONS] # Update the current environment bundle cache [OPTIONS] # Locks and then caches all of the gems bundle exec [OPTIONS] # Run the command in context of the bundle config NAME [VALUE] # Retrieve or set a configuration value bundle help [COMMAND] # Describe available commands or one Utilities: bundle add GEM VERSION # Add gem to Gemfile and run bundl bundle binstubs GEM [OPTIONS] # Install the binstubs of the listed bundle check [OPTIONS] # Checks if the dependencies listed bundle doctor [OPTIONS] # Checks the bundle for common -V, [--verbose], [--no-verbose] # Enable verbose output mode
  11. $ bundler update Fetching gem metadata from https://rubygems.org/... Fetching gem

    metadata from https://rubygems.org/. Resolving dependencies... Fetching rack 2.0.3 (was 1.6.8) Installing rack 2.0.3 (was 1.6.8) Removing rack (1.6.8) Bundle updated!
  12. $ bundle info rack * rack (2.0.7) Summary: a modular

    Ruby webserver interface Homepage: https://rack.github.io/ Path: /home/c/Desktop/.bundle/ruby/2.6.0/gems/rack-2.0.7