Skip to content
This repository has been archived by the owner on Apr 14, 2021. It is now read-only.

Get ready for 2.1.0 release #7479

Merged
31 commits merged into from Dec 15, 2019
Merged

Get ready for 2.1.0 release #7479

31 commits merged into from Dec 15, 2019

Conversation

deivid-rodriguez
Copy link
Member

What was the end-user problem that led to this PR?

The problem was we want to release bundler 2.1.0 before ruby 2.7.0 ships, so that bundler 2.1.0 can be included with ruby 2.7.0.

What is your fix for the problem, implemented in this PR?

My fix is to get ready for the release.

7342: Start using automatiek 0.3.0 r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was that I added a feature to automatiek to vendor subdependencies, but we were not using it because it had not yet been released.

### What is your fix for the problem, implemented in this PR?

My fix is to start using the feature now that it has been released.

### Why did you choose this fix out of the possible options?

I chose this fix because it allows us to manage the `net-http-persistent` dependency in an easier way.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit 48cb4ec)
7422: Turn on warning mode for specs r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was that we're missing verbose warnings like the one fixed by #7417.

### What was your diagnosis of the problem?

My diagnosis was that our specs should let us know about this.

### What is your fix for the problem, implemented in this PR?

My fix is to enable warnings from our helpers that shell out, and fix the warnings they print. There's also some unrelated changes here that I'll try to split out once I get this green.

### Why did you choose this fix out of the possible options?

I chose this fix because it makes it so that our specs help us catching these warnings earlier.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit 4244534)
7439: Fix typo's in Changelog r=deivid-rodriguez a=p8

### What was the end-user problem that led to this PR?

The problems were typos in the Changelog

### What is your fix for the problem, implemented in this PR?

Fix the typos

Co-authored-by: Petrik de Heus <petrik@deheus.net>
(cherry picked from commit f6045fc)
7442: Fix `bundle exec`'ing to rubygems being silent r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was that #7401 caused a regression where `bundle exec`'ing to rubygems would silence rubygems output.

### What was your diagnosis of the problem?

My diagnosis was that the removal of:
* Code where `Bundler::RGProxy` would be only set conditionally on `Bundler.ui =` not being passed `nil`.
* Code setting `Bundler.ui` to `nil` right before shelling during `bundle exec`.

caused rubygems UI to be silent during `bundle exec gem`.

### What is your fix for the problem, implemented in this PR?

My fix is to explictly "unsilence" rubygems UI before `bundle exec` calls.

### Why did you choose this fix out of the possible options?

I chose this fix because it's more explicit than the previous one.

Fixes #7441.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit a11c104)
7450: Backport ruby-core changes r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was that we haven't incorporated recent fixes for integration in ruby-core.

### What is your fix for the problem, implemented in this PR?

My fix is to cherry-pick the fixes.

Co-authored-by: Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit dbcfed3)
7451: Windows spec fixes r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was that we have a bunch of spec failures on Windows (~315).

### What is your fix for the problem, implemented in this PR?

My fix is to improve some stuff to be more OS-independent. This should bring the failures down to ~305.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit 0a866d0)
7452: Bump rubocop and rubocop-performance r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was not really a problem, but it's good to keep our dependencies up to date.

### What is your fix for the problem, implemented in this PR?

My fix is to bump rubocop and rubocop-performance.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit 3e54fbc)
7419: Add :glob to git source uniqueness r=deivid-rodriguez a=fatkodima

Closes #7346

Co-authored-by: fatkodima <fatkodima123@gmail.com>
(cherry picked from commit 87449d5)
7455: Lazily load `open3` r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was `open3` will be gemified in ruby 2.7, and since we use it inside `bundler`, we might activate a version causing a conflict with the user's choice.

### What was your diagnosis of the problem?

My diagnosis was that only loading it when needed should be better.

### What is your fix for the problem, implemented in this PR?

My fix is to lazily load it.

I expect this PR to fix [some of the errors](https://travis-ci.org/bundler/bundler/jobs/615940817) currently happening in our CI against ruby-head.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit 2a5378c)
7456: Lazily load CGI r=deivid-rodriguez a=deivid-rodriguez

Thanks so much for the contribution!
To make reviewing this PR a bit easier, please fill out answers to the following questions.

### What was the end-user problem that led to this PR?

The problem was that our ruby-head build is failing in CI.

### What was your diagnosis of the problem?

My diagnosis was that since `cgi` is now a default gem on ruby 2.7, we're getting someunintended activations of the new default gem inside our specs.

### What is your fix for the problem, implemented in this PR?

My fix is to lazily load CGI.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit c3eae8e)
7458: Improve default gem activation specs r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The original problem was that currently we are having some issues because ruby-core gemified some libraries that we use inside bundler. We shouldn't use default gems during `bundler/setup` because activating them might cause activation conflicts later on if the user has chosen a different version of the default gem from the one that's selected by default.

The good news is that we have some nice specs that check that we never activate default gems, and they've been very useful lately for detecting this kind of breakage.

The bad news is that some of these specs usually fail with really verbose error messages that make it difficult to find the root cause of the problems.

### What was your diagnosis of the problem?

My diagnosis was that we could improve these specs to give better errors.

### What is your fix for the problem, implemented in this PR?

My fix is to improve the specs with several tweaks, the main ones being:

* Split them into one spec per default gem, so that when a default gem is unintentionally activated by bundler, only that spec fails, and with a reasonably concise error message.

* Add a "gem activation hack" to the specs so that when a default gem is activated by `bundler/setup`, we get the exact location of where the activation happened.

As an example, up to know, running `bin/rspec ./spec/runtime/setup_spec.rb -e "activates older versions"` against current ruby-head (ruby/ruby@4325f080862b36a3e3ddee472169f65758612ad3) and current rubygems (rubygems/rubygems@15ac911c686f68e1985bf700a053a84c46443e1d) leads to:

<details>
  <summary>The following error message before this patch (1664 lines)</summary>

```
Randomized with seed 15961
F

Retried examples: 0

Failures:

  1) Bundler.setup with gemified standard libraries default gem activation activates older versions of default gems
     Failure/Error: expect(the_bundle).to include_gems(*default_gems.map {|g| "#{g} 0.0.0.a" })

       expected the bundle to include gems "benchmark 0.0.0.a", "bigdecimal 0.0.0.a", "cgi 0.0.0.a", "csv 0.0.0.a", "date 0.0.0.a", "delegate 0.0.0.a", "e2mmap 0.0.0.a", "etc 0.0.0.a", "fcntl 0.0.0.a", "fiddle 0.0.0.a", "fileutils 0.0.0.a", "forwardable 0.0.0.a", "gdbm 0.0.0.a", "getoptlong 0.0.0.a", "io-console 0.0.0.a", "ipaddr 0.0.0.a", "irb 0.0.0.a", "json 0.0.0.a", "logger 0.0.0.a", "matrix 0.0.0.a", "mutex_m 0.0.0.a", "net-pop 0.0.0.a", "net-smtp 0.0.0.a", "observer 0.0.0.a", "open3 0.0.0.a", "openssl 0.0.0.a", "ostruct 0.0.0.a", "prime 0.0.0.a", "pstore 0.0.0.a", "psych 0.0.0.a", "racc 0.0.0.a", "rdoc 0.0.0.a", "readline 0.0.0.a", "readline-ext 0.0.0.a", "reline 0.0.0.a", "rexml 0.0.0.a", "rss 0.0.0.a", "sdbm 0.0.0.a", "singleton 0.0.0.a", "stringio 0.0.0.a", "strscan 0.0.0.a", "timeout 0.0.0.a", "tracer 0.0.0.a", "uri 0.0.0.a", "webrick 0.0.0.a", "yaml 0.0.0.a", and "zlib 0.0.0.a" but:
           benchmark is not installed:
               Invoking run!("require 'benchmark.rb'; puts BENCHMARK", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           bigdecimal is not installed:
               Invoking run!("require 'bigdecimal.rb'; puts BIGDECIMAL", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           cgi is not installed:
               Invoking run!("require 'cgi.rb'; puts CGI", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           csv is not installed:
               Invoking run!("require 'csv.rb'; puts CSV", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           date is not installed:
               Invoking run!("require 'date.rb'; puts DATE", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           delegate is not installed:
               Invoking run!("require 'delegate.rb'; puts DELEGATE", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           e2mmap is not installed:
               Invoking run!("require 'e2mmap.rb'; puts E2MMAP", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           etc is not installed:
               Invoking run!("require 'etc.rb'; puts ETC", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           fcntl is not installed:
               Invoking run!("require 'fcntl.rb'; puts FCNTL", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           fiddle is not installed:
               Invoking run!("require 'fiddle.rb'; puts FIDDLE", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           fileutils is not installed:
               Invoking run!("require 'fileutils.rb'; puts FILEUTILS", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           forwardable is not installed:
               Invoking run!("require 'forwardable.rb'; puts FORWARDABLE", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           gdbm is not installed:
               Invoking run!("require 'gdbm.rb'; puts GDBM", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           getoptlong is not installed:
               Invoking run!("require 'getoptlong.rb'; puts GETOPTLONG", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           io-console is not installed:
               Invoking run!("require 'io-console.rb'; puts IOCONSOLE", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           ipaddr is not installed:
               Invoking run!("require 'ipaddr.rb'; puts IPADDR", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           irb is not installed:
               Invoking run!("require 'irb.rb'; puts IRB", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           json is not installed:
               Invoking run!("require 'json.rb'; puts JSON", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           logger is not installed:
               Invoking run!("require 'logger.rb'; puts LOGGER", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           matrix is not installed:
               Invoking run!("require 'matrix.rb'; puts MATRIX", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           mutex_m is not installed:
               Invoking run!("require 'mutex_m.rb'; puts MUTEX_M", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           net-pop is not installed:
               Invoking run!("require 'net-pop.rb'; puts NETPOP", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           net-smtp is not installed:
               Invoking run!("require 'net-smtp.rb'; puts NETSMTP", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           observer is not installed:
               Invoking run!("require 'observer.rb'; puts OBSERVER", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           open3 is not installed:
               Invoking run!("require 'open3.rb'; puts OPEN3", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           openssl is not installed:
               Invoking run!("require 'openssl.rb'; puts OPENSSL", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           ostruct is not installed:
               Invoking run!("require 'ostruct.rb'; puts OSTRUCT", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           prime is not installed:
               Invoking run!("require 'prime.rb'; puts PRIME", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           pstore is not installed:
               Invoking run!("require 'pstore.rb'; puts PSTORE", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           psych is not installed:
               Invoking run!("require 'psych.rb'; puts PSYCH", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           racc is not installed:
               Invoking run!("require 'racc.rb'; puts RACC", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           rdoc is not installed:
               Invoking run!("require 'rdoc.rb'; puts RDOC", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           readline is not installed:
               Invoking run!("require 'readline.rb'; puts READLINE", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           readline-ext is not installed:
               Invoking run!("require 'readline-ext.rb'; puts READLINEEXT", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           reline is not installed:
               Invoking run!("require 'reline.rb'; puts RELINE", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           rexml is not installed:
               Invoking run!("require 'rexml.rb'; puts REXML", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           rss is not installed:
               Invoking run!("require 'rss.rb'; puts RSS", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           sdbm is not installed:
               Invoking run!("require 'sdbm.rb'; puts SDBM", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           singleton is not installed:
               Invoking run!("require 'singleton.rb'; puts SINGLETON", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           stringio is not installed:
               Invoking run!("require 'stringio.rb'; puts STRINGIO", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           strscan is not installed:
               Invoking run!("require 'strscan.rb'; puts STRSCAN", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           timeout is not installed:
               Invoking run!("require 'timeout.rb'; puts TIMEOUT", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           tracer is not installed:
               Invoking run!("require 'tracer.rb'; puts TRACER", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           uri is not installed:
               Invoking run!("require 'uri.rb'; puts URI", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           webrick is not installed:
               Invoking run!("require 'webrick.rb'; puts WEBRICK", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           yaml is not installed:
               Invoking run!("require 'yaml.rb'; puts YAML", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'
           zlib is not installed:
               Invoking run!("require 'zlib.rb'; puts ZLIB", {}) failed:
               /home/deivid/Code/bundler/lib/bundler/runtime.rb:312:in `check_for_activated_spec!': You have already activated uri 0.10.0, but your Gemfile requires uri 0.0.0.a. Since uri is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports uri as a default gem. (Gem::LoadError)
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:31:in `block in setup'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/spec_set.rb:147:in `each'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `map'
                   from /home/deivid/Code/bundler/lib/bundler/runtime.rb:26:in `setup'
                   from /home/deivid/Code/bundler/lib/bundler.rb:150:in `setup'
                   from -e:1:in `block in <main>'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:136:in `with_level'
                   from /home/deivid/Code/bundler/lib/bundler/ui/shell.rb:88:in `silence'
                   from -e:1:in `<main>'

       Commands:
       $ /home/deivid/.rbenv/versions/master/bin/ruby -I/home/deivid/Code/bundler/lib -w -e  \
         <<EOS
                   if Gem::Specification.is_a?(Enumerable)
                     puts Gem::Specification.select(&:default_gem?).map(&:name)
                   end
       EOS
       benchmark
       bigdecimal
       bundler
       cgi
       csv
       date
       delegate
       e2mmap
       etc
       fcntl
       fiddle
       fileutils
       forwardable
       gdbm
       getoptlong
       io-console
       ipaddr
       irb
       json
       logger
       matrix
       mutex_m
       net-pop
       net-smtp
       observer
       open3
       openssl
       ostruct
       prime
       pstore
       psych
       racc
       rdoc
       readline
       readline-ext
       reline
       rexml
       rss
       sdbm
       singleton
       stringio
       strscan
       timeout
       tracer
       uri
       webrick
       yaml
       zlib
       # $? => 0

       $ /home/deivid/.rbenv/versions/master/bin/ruby -I/home/deivid/Code/bundler/spec/rubygems -S gem \
         --backtrace generate_index
       Generating Marshal quick index gemspecs for 49 gems
       .................................................
       Complete
       Generated Marshal quick index gemspecs: 0.009s
       Generating specs index
       Generated specs index: 0.000s
       Generating latest specs index
       Generated latest specs index: 0.000s
       Generating prerelease specs index
       Generated prerelease specs index: 0.000s
       Compressing indices
       Compressed indices: 0.000s
       # $? => 0

       $ /home/deivid/.rbenv/versions/master/bin/ruby \
         -I/home/deivid/Code/bundler/lib:/home/deivid/Code/bundler/spec -rsupport/hax \
         -rsupport/artifice/fail /home/deivid/Code/bundler/exe/bundle install --retry 0
       Fetching source index from file:///home/deivid/Code/bundler/tmp/1/gems/remote4/
       Resolving dependencies...
       Fetching benchmark 0.0.0.a
       Installing benchmark 0.0.0.a
       Fetching bigdecimal 0.0.0.a
       Installing bigdecimal 0.0.0.a
       Using bundler 2.1.0.pre.3
       Fetching cgi 0.0.0.a
       Installing cgi 0.0.0.a
       Fetching csv 0.0.0.a
       Installing csv 0.0.0.a
       Fetching date 0.0.0.a
       Installing date 0.0.0.a
       Fetching delegate 0.0.0.a
       Installing delegate 0.0.0.a
       Fetching e2mmap 0.0.0.a
       Installing e2mmap 0.0.0.a
       Fetching etc 0.0.0.a
       Installing etc 0.0.0.a
       Fetching fcntl 0.0.0.a
       Installing fcntl 0.0.0.a
       Fetching fiddle 0.0.0.a
       Installing fiddle 0.0.0.a
       Fetching fileutils 0.0.0.a
       Installing fileutils 0.0.0.a
       Fetching forwardable 0.0.0.a
       Installing forwardable 0.0.0.a
       Fetching gdbm 0.0.0.a
       Installing gdbm 0.0.0.a
       Fetching getoptlong 0.0.0.a
       Installing getoptlong 0.0.0.a
       Fetching io-console 0.0.0.a
       Installing io-console 0.0.0.a
       Fetching ipaddr 0.0.0.a
       Installing ipaddr 0.0.0.a
       Fetching irb 0.0.0.a
       Installing irb 0.0.0.a
       Fetching json 0.0.0.a
       Installing json 0.0.0.a
       Fetching logger 0.0.0.a
       Installing logger 0.0.0…
7459: Unskip quality specs r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was after 5003a43 backported from ruby-core, quality_specs are no longer run, not even in our repo.

### What was your diagnosis of the problem?

My diagnosis was that the condition to check whether the root folder is a git folder was incorrect.

### What is your fix for the problem, implemented in this PR?

My fix is to correct the condition.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit 8c78566)
7461: Set parallel_tests to output progress in the same format as regular RSpec r=deivid-rodriguez a=colby-swandale

# What was the end-user problem that led to this PR?

When running tests using the `parallel_test` tool, there will be no output on the terminal to show the progress or result of the test suit.

```
$ ./bin/parallel_rspec spec
8 processes for 162 specs, ~ 20 specs per process

Took 576 seconds (9:36)
```

You have to go diving into a file that's located in `tmp/parallel_runtime_rspec.log`.

It would be better to have the output that we get from the regular `./bin/rspec` and show the progress/result of the test suit.

### What was your diagnosis of the problem?

Run the parallel test suit using `./bin/parallel_rspec spec`

### What is your fix for the problem, implemented in this PR?

Add the additional `progress` formatter to the parallel rspec configuration

Co-authored-by: Colby Swandale <me@colby.fyi>
(cherry picked from commit 8b5bd05)
7465: December manpages r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was that man pages are out of date.

### What is your fix for the problem, implemented in this PR?

My fix is to update them.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit 88bc81b)
7464: Improve rubygems switcher r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was we have some code in our tests to make sure that the `ENV["RGV"]` variable we use to set the rubygems version we want to test bundler against is always respected, including every subprocess our tests start. However:

* The code was overly complicated.
* It didn't support custom branches, for example, `RGV=lazily_load_uri`. This is a feature I find very useful when a PR you're working on also need some changes in the rubygems side, like it happened to me at #7460.

### What was your diagnosis of the problem?

My diagnosis was that all the code needs to do is:

* Set up the location of the rubygems code we'll test bundler against, be it a path, a branch, or a released version.
* Modify `RUBYOPT` to include that location in the LOAD_PATH, so that `rubygems` is always loaded from there instead of the system's version.

### What is your fix for the problem, implemented in this PR?

My fix is to do just that, remove all the stuff that wasn't needed, and do a bit of renaming to improve readability.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit 0cb5192)
7463: Vendor fileutils 1.4.1 r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was no big deal. Just a discrepancy between the fileutils version we're vendoring and the one that will ship with ruby 2.7. This doesn't cause any issues, but I prefer that they match.

### What is your fix for the problem, implemented in this PR?

My fix is to `bin/rake vendor:fileutils[v1.4.1]` and commit the result.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit f6b970d)
7462: Document running tests in parallel inside a dev environment r=deivid-rodriguez a=colby-swandale

### What was the end-user problem that led to this PR?

We do not have any documentation for running the test suite in parallel. Developers working on Bundler may be unaware that the test suite can be executed in parallel to help speed up the time needed to run tests.

### What is your fix for the problem, implemented in this PR?

Document how to run the parallel Bundler test suit in the Contributing docs.

Co-authored-by: Colby Swandale <me@colby.fyi>
(cherry picked from commit fe91eb2)
7471: Vendor latest thor's master r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was that I need to pull some changes from latest `thor` master to avoid loading the `uri` library for #7460.

### What is your fix for the problem, implemented in this PR?

My fix is to run `bin/rake vendor:thor[master]` and commit changes.

Not that I used an `automatiek` version including segiddins/automatiek#7 that avoids some false positive when replacing namespaces.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit 2559589)
7473: Cleanup some unnecessary code r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was #7460 is very big so I want to extract these changes to a separate PR, so that we're more aware of them.

### What was your diagnosis of the problem?

My diagnosis was that this code can be removed. In particular, in the `GemRemoteFetcher` class there was the following comment

https://github.com/bundler/bundler/blob/25595896eb0f8dfd004d941093bf1d8f4a39aeeb/lib/bundler/gem_remote_fetcher.rb#L9-L10

After having a look, I think the comment would make sense if where it says "gemstash", it actually meant "bundler". That would make sense to me since this is about fetching remote specs, so I would assume it's the client side running it.

Assuming this is the correct interpretation, we can remove the code since our minimum supported rubygems version is 2.5.2, and this code was included in rubygems in 2.5.0.

### What is your fix for the problem, implemented in this PR?

My fix is to remove the `GemRemoteFetcher` class, plus simplify other related code.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit bada03d)
7474: Fix `bundle exec rake install` failing r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was that I noticed `bundle exec rake install` was failing on my gem using the latest prerelease of bundler.

### What was your diagnosis of the problem?

My diagnosis was that `bundler` silences output of rubygems by default, and in a `bundle exec` context, `bundler/setup` is always required by subprocesses. So, the `rake install` task is silencing rubygems, but it requires it to not be silent:

https://github.com/bundler/bundler/blob/bada03dd6d4d15828fb5b2cf7f744948e88a69a3/lib/bundler/gem_helper.rb#L91-L92

### What is your fix for the problem, implemented in this PR?

My fix is to wrap the execution of the rubygems subprocess with `Bundler.with_original_env` so that the `gem` command runs without `bundler` involved.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit f44ebf0)
7476: Bump RuboCop to 0.77.0 r=deivid-rodriguez a=koic

### What was the end-user problem that led to this PR?

RuboCop 0.77.0 has been released.
https://github.com/rubocop-hq/rubocop/releases/tag/v0.77.0

This PR updates the following changes.

```console
% bin/rake rubocop
bin/rubocop --parallel
Error: The `Layout/AlignArray` cop has been renamed to
`Layout/ArrayAlignment`.
(obsolete configuration found in .rubocop.yml, please update it)
The `Layout/AlignParameters` cop has been renamed to
`Layout/ParameterAlignment`.
(obsolete configuration found in .rubocop.yml, please update it)
The `Layout/IndentAssignment` cop has been renamed to
`Layout/AssignmentIndentation`.
(obsolete configuration found in .rubocop.yml, please update it)
The `Layout/IndentFirstArgument` cop has been renamed to
`Layout/FirstArgumentIndentation`.
(obsolete configuration found in .rubocop.yml, please update it)
The `Layout/IndentFirstArrayElement` cop has been renamed to
`Layout/FirstArrayElementIndentation`.
(obsolete configuration found in .rubocop.yml, please update it)
The `Layout/IndentFirstHashElement` cop has been renamed to
`Layout/FirstHashElementIndentation`.
(obsolete configuration found in .rubocop.yml, please update it)
The `Layout/LeadingBlankLines` cop has been renamed to
`Layout/LeadingEmptyLines`.
(obsolete configuration found in .rubocop.yml, please update it)
The `Layout/TrailingBlankLines` cop has been renamed to
`Layout/TrailingEmptyLines`.
(obsolete configuration found in .rubocop.yml, please update it)
The `Lint/DuplicatedKey` cop has been renamed to
`Lint/DuplicateHashKey`.
(obsolete configuration found in .rubocop.yml, please update it)
The `Lint/MultipleCompare` cop has been renamed to
`Lint/MultipleComparison`.
(obsolete configuration found in .rubocop.yml, please update it)
The `Lint/StringConversionInInterpolation` cop has been renamed to
`Lint/RedundantStringCoercion`.
(obsolete configuration found in .rubocop.yml, please update it)
The `Naming/UncommunicativeBlockParamName` cop has been renamed to
`Naming/BlockParameterName`.
(obsolete configuration found in .rubocop.yml, please update it)
rake aborted!
Command failed with status (2): [bin/rubocop --parallel...]
/Users/koic/src/github.com/bundler/bundler/Rakefile:123:in `block in
<top (required)>'
/Users/koic/src/github.com/bundler/bundler/Rakefile:15:in `block in
invoke'
/Users/koic/src/github.com/bundler/bundler/Rakefile:14:in `invoke'
/Users/koic/src/github.com/bundler/bundler/spec/support/rubygems_ext.rb:87:in
`load'
/Users/koic/src/github.com/bundler/bundler/spec/support/rubygems_ext.rb:87:in
`gem_load_and_activate'
/Users/koic/src/github.com/bundler/bundler/spec/support/rubygems_ext.rb:45:in
`gem_load'
Tasks: TOP => rubocop
(See full trace by running task with --trace)
```

### What is your fix for the problem, implemented in this PR?

And this PR has auto-correction of .rubocop.yml using Mry gem.
https://github.com/pocke/mry

```console
% gem i mry
Fetching mry-0.77.0.2.gem
Successfully installed mry-0.77.0.2
1 gem installed
% mry .rubocop.yml
```

Co-authored-by: Koichi ITO <koic.ito@gmail.com>
(cherry picked from commit 14d2384)
7460: Vendor `uri` library r=hsbt a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was that after the gemification of the `uri` library (which will happen in ruby 2.7), `bundler` will activate the default version of the new library inside its own `bundler/setup` code. That means users won't be able to specify the version of the library they want/need to use in their own Gemfiles.

### What was your diagnosis of the problem?

My diagnosis was that we should avoid using `uri` inside `bundler/setup` code.

### What is your fix for the problem, implemented in this PR?

My fix is to vendor the `uri` library, like we did with `fileutils`.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit 6394536)
7475: Delay deprecation of `bundle config` and `bundle update` without args r=hsbt a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem I was thinking about the upcoming release of bundler 2.1.0, and I'm not convinced about these two deprecations.

I'm not necessarily against them, but these command are very common IMO, and we'll be making them harder to run. Again, maybe for good reasons, but still. That will be combined with the fact that:

* In this same release, we'll be enabling all of the other deprecations.
* Ruby 2.7 will include bundler 2.1 and ruby 2.7 will also come with a lot of warnings about keyword arguments.

### What was your diagnosis of the problem?

My diagnosis was that I think it's better to postpone these two deprecations for now. Get the other deprecations going and get user feedback about them, and then worry about these two later.

### What is your fix for the problem, implemented in this PR?

My fix is to delay both deprecations.

### Why did you choose this fix out of the possible options?

I chose this fix because I don't want to be too annoying to users at this moment.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit 69a88cf)
7477: Skip `did_you_mean` and `delegate` failures on MRI 2.7 r=deivid-rodriguez a=deivid-rodriguez

# What was the end-user problem that led to this PR?

`ruby-head` build [is broken again](https://travis-ci.org/bundler/bundler/jobs/624581155).

### What was your diagnosis of the problem?

Ruby 2.7 will turn `did_you_mean` into a default gem. That means that bundler tests that make sure that an arbritary version of default gems can be specified in the `Gemfile` will now run against `did_you_mean`. And this doesn't work because `did_you_mean` is activated in ruby's `prelude.rb`, way before `bundler/setup` is required, so the latest version will always be activated, regardless of what the user specifies. If these versions are not the same, a gem activation conflict error will happen.

Note that this problem is not specific to ruby 2.7, it simply gets triggered by the change of making it a default gem, but it would also happen on older versions if the user `did_you_mean` version specified in the `Gemfile` does not match the latest version installed on her system.

As a consequence of this, we also get activation trouble because `did_you_mean` depends on `delegate` which is also a default gem on ruby 2.7. This problem _is_ specific to ruby 2.7 because `delegate` was not gemified before that, but can probably be workarounded by removing the `delegate` dependendcy from `did_you_mean`.

### What is your fix for the problem, implemented in this PR?

My "fix" allow these failures, because there's not much we can do about this at the moment. However, I'd like to ping @yuki24 and ask how difficult would be to remove the dependency on `delegate` from `did_you_mean`, because that would fix the issue with the `delegate` gem.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit 3bd06e7)
7418: Restore previous BUNDLE_GEMFILE in bundler/inline r=deivid-rodriguez a=fatkodima

[Without spacing changes](https://github.com/bundler/bundler/pull/7418/files?w=1)

Closes #7159

Co-authored-by: fatkodima <fatkodima123@gmail.com>
(cherry picked from commit 4367f9a)
7478: Revert "Write & read dummy gems binarily" r=deivid-rodriguez a=deivid-rodriguez

This reverts commit f11c475.

### What was the end-user problem that led to this PR?

The problem was that since #7451, azure logs are flooded with messages like

```
The file will have its original line endings in your working directory
warning: LF will be replaced by CRLF in foo.gemspec.
```

This makes it hard to scan for other potential errors.

### What was your diagnosis of the problem?

My diagnosis was that some commit in that PR introduced this warnings.

### What is your fix for the problem, implemented in this PR?

My fix is to revert the offending commit.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit f143253)
7480: Vendor thor 1.0.0 r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was that `thor` 1.0.0 has been released, so we should vendor it.

### What is your fix for the problem, implemented in this PR?

My fix is to vendor it.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit 935c727)
bundlerbot and others added 4 commits December 15, 2019 12:15
7482: Fixed test failures with gem command path on ruby core repo r=deivid-rodriguez a=hsbt

### What was the end-user problem that led to this PR?

Some of the examples failed with ruby-core repository.

### What was your diagnosis of the problem?

The ruby-core repository used `gem` commands under the its repository named `bin/gem` directory. But the current examples points `gem` command with a global path.

### What is your fix for the problem, implemented in this PR?

I fixed them used by `ruby_core?` helper methods.

Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
(cherry picked from commit 4045ba4)
7483: Delegate should be supported now r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was that delegate is now supported since `did_you_mean` drop its dependency on it at ruby/ruby@e270806.

### What was your diagnosis of the problem?

My diagnosis was that we can test that arbitrary `delegate` versions can be included in Gemfiles again.

### What is your fix for the problem, implemented in this PR?

My fix removes `delegate` from the exemptions.

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
(cherry picked from commit fc2b63c)
@deivid-rodriguez
Copy link
Member Author

@bundlerbot merge

ghost pushed a commit that referenced this pull request Dec 15, 2019
7479: Get ready for 2.1.0 release r=deivid-rodriguez a=deivid-rodriguez

### What was the end-user problem that led to this PR?

The problem was we want to release bundler 2.1.0 before ruby 2.7.0 ships, so that bundler 2.1.0 can be included with ruby 2.7.0.

### What is your fix for the problem, implemented in this PR?

My fix is to get ready for the release.


Co-authored-by: Bundlerbot <bot@bundler.io>
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
@ghost
Copy link

ghost commented Dec 15, 2019

Build succeeded

@ghost ghost merged commit c40d5e1 into 2-1-stable Dec 15, 2019
@ghost ghost deleted the release/2.1.0 branch December 15, 2019 14:19
This pull request was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants