From c3d41492e14929f8bbee26a276ee76b9a8c9d5b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Thu, 10 Jul 2025 19:46:39 +0200 Subject: [PATCH] [rubygems/rubygems] Avoid more warnings when using RubyGems with old Bundler We were only avoiding them when the RUBYGEMS_GEMDEPS variable is used. Avoid the warnings in general, whenever the entrypoint to Bundler is `require`. https://github.com/rubygems/rubygems/commit/8683faef36 --- lib/rubygems.rb | 6 ++---- lib/rubygems/core_ext/kernel_require.rb | 7 +++++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/rubygems.rb b/lib/rubygems.rb index 87651eaeb3..7fcf03d855 100644 --- a/lib/rubygems.rb +++ b/lib/rubygems.rb @@ -640,9 +640,8 @@ An Array (#{env.inspect}) was passed in from #{caller[3]} # Load Bundler extensions to RubyGems, making sure to avoid redefinition # warnings in platform constants - def self.load_bundler_extensions - require "bundler/version" - return if Bundler::VERSION >= "2.6.9" + def self.load_bundler_extensions(version) + return unless version <= "2.6.9" previous_platforms = {} @@ -1169,7 +1168,6 @@ An Array (#{env.inspect}) was passed in from #{caller[3]} ENV["BUNDLE_GEMFILE"] ||= File.expand_path(path) require_relative "rubygems/user_interaction" - Gem.load_bundler_extensions require "bundler" begin Gem::DefaultUserInteraction.use_ui(ui) do diff --git a/lib/rubygems/core_ext/kernel_require.rb b/lib/rubygems/core_ext/kernel_require.rb index 073966b696..3a9bdbdc9d 100644 --- a/lib/rubygems/core_ext/kernel_require.rb +++ b/lib/rubygems/core_ext/kernel_require.rb @@ -64,8 +64,11 @@ module Kernel rp end - Kernel.send(:gem, name, Gem::Requirement.default_prerelease) unless - resolved_path + next if resolved_path + + Kernel.send(:gem, name, Gem::Requirement.default_prerelease) + + Gem.load_bundler_extensions(Gem.loaded_specs[name].version) if name == "bundler" next end