This isn't a problem in the ruby-thor package (although it could do with
an update). This is a problem with the ruby-bundler package.

Specifically, the upstream bundler codebase vendors Thor under a
separate namespace (Bundler::Thor) to avoid this specific issue. Bundler
itself needs Thor, but many projects do too. So to make something like
"bundle exec (whatever)" work, without version clashes, bundler uses a
different namespace for its internal copy of Thor.

The Debian/Ubuntu ruby-bundler package is broken though, since it rips
out the carefully vendored code in a specific namespace, and uses
ruby-thor in the Thor namespace instead.

Here is the patch that causes the issue:

From: Christian Hofstaedtler <z...@debian.org>
Date: Thu, 15 Mar 2018 14:51:43 +0100
Subject: Replace bundled libraries with system versions
Forwarded: not-needed

--- a/lib/bundler/vendored_molinillo.rb
+++ b/lib/bundler/vendored_molinillo.rb
@@ -1,4 +1,4 @@
 # frozen_string_literal: true

 module Bundler; end
-require_relative "vendor/molinillo/lib/molinillo"
+require "molinillo"
--- a/lib/bundler/vendored_thor.rb
+++ b/lib/bundler/vendored_thor.rb
@@ -2,7 +2,7 @@

 module Bundler
   def self.require_thor_actions
-    require_relative "vendor/thor/lib/thor/actions"
+    require "thor/actions"
   end
 end
-require_relative "vendor/thor/lib/thor"
+require "thor"

Reply via email to