[rubygems/rubygems] Vendor tsort into rubygems

So that it loads a consistent version of the library and `rubygems` is
never affected by gem activation conflicts related to `tsort`.

Getting CI green required updating one `bundler` spec, because `tsort`
is no longer loaded by `bundle clean` until after `BUNDLE_PATH` has been
changed, so to ensure it is found, it needs to be installed under
`BUNDLE_PATH` as well (which will be different from the global system
path on Bundler 3, meaning installing `tsort` to the global system path
is not enough there). This spec workaround can be removed once we also
vendor `tsort` inside `bundler`.

d326880999
This commit is contained in:
Frederik Dudzik 2021-10-21 12:23:08 -07:00 committed by Hiroshi SHIBATA
parent f45af5f0a4
commit 17fb785d15
No known key found for this signature in database
GPG key ID: F9CF13417264FAC2
5 changed files with 463 additions and 6 deletions

View file

@ -1,5 +1,5 @@
# frozen_string_literal: true
require 'tsort'
require_relative 'tsort'
##
# A RequestSet groups a request to activate a set of dependencies.
@ -15,7 +15,7 @@ require 'tsort'
# #=> ["nokogiri-1.6.0", "mini_portile-0.5.1", "pg-0.17.0"]
class Gem::RequestSet
include TSort
include Gem::TSort
##
# Array of gems to install even if already installed