rubygems-update 3.3.26 → 3.3.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e15fba091e0f0303d0ac5480a0f0f5198156cc5a46b5b6a2e20d008da275fbb4
4
- data.tar.gz: 9941c6a073821a2d2d651ee692f3118b2696d34f194b3d81037a246780f51454
3
+ metadata.gz: 408d9d522251e2fb954bfdf84102ada35c4e3566cd6f6bc4601258de20aaa289
4
+ data.tar.gz: 757b2eebebe6a052bcbc0c29d5b720501024af1f2127a588b3b19acfc0bdf2f6
5
5
  SHA512:
6
- metadata.gz: f68f3c6385129bc8777ed4018aa651a0960500efa2fbe07190473589ee421cd927e8eeec5abbaa44b4162efa90a671227d4cd86161c706bdd60c0c4dd8ac06c6
7
- data.tar.gz: 47b1eeb8a5ecc12006e6aa01afbdeebf20fd820bf868714c99c8338de484af5b803e289941d33279e47882d6b07d79789472ca1a19dd3d19e14c263c0eb39ff1
6
+ metadata.gz: 7d44e28517679d5a93af05db7a4886510a86e0a286bcce642d582427abfad81123ac551003f3076731ec8034909e68adc9068194ff4429f74788bf2e06a76f6d
7
+ data.tar.gz: f0b21ecf2a8bb7e34c5f25d38d27dc47b1e1b94255c616b3bf29e28d6f9fd4eb45794ff80d1f7ae91c45e40ca0542f6e5c52ca1b62c9e3893829da1bce841457
@@ -4,8 +4,8 @@ module Bundler
4
4
  # Represents metadata from when the Bundler gem was built.
5
5
  module BuildMetadata
6
6
  # begin ivars
7
- @built_at = "2022-11-17".freeze
8
- @git_commit_sha = "23ec5b8501".freeze
7
+ @built_at = "2023-11-10".freeze
8
+ @git_commit_sha = "d1204e84f1".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -71,6 +71,7 @@ module Bundler
71
71
  when Gem::Specification, RemoteSpecification, LazySpecification, EndpointSpecification then search_by_spec(query)
72
72
  when String then specs_by_name(query)
73
73
  when Gem::Dependency then search_by_dependency(query)
74
+ when Array then search_by_name_and_version(*query)
74
75
  else
75
76
  raise "You can't search for a #{query.inspect}."
76
77
  end
@@ -173,6 +174,10 @@ module Bundler
173
174
  end
174
175
  end
175
176
 
177
+ def search_by_name_and_version(name, version)
178
+ specs_by_name(name).select {|spec| spec.version == version }
179
+ end
180
+
176
181
  EMPTY_SEARCH = [].freeze
177
182
 
178
183
  def search_by_spec(spec)
@@ -13,7 +13,6 @@ module Bundler
13
13
  @dependencies = []
14
14
  @platform = platform || Gem::Platform::RUBY
15
15
  @source = source
16
- @specification = nil
17
16
  end
18
17
 
19
18
  def full_name
@@ -76,37 +75,46 @@ module Bundler
76
75
  def materialize_for_installation
77
76
  source.local!
78
77
 
79
- candidates = if source.is_a?(Source::Path) || !ruby_platform_materializes_to_ruby_platform?
80
- target_platform = ruby_platform_materializes_to_ruby_platform? ? platform : local_platform
78
+ matching_specs = source.specs.search(use_exact_resolved_specifications? ? self : [name, version])
79
+ return self if matching_specs.empty?
81
80
 
82
- GemHelpers.select_best_platform_match(source.specs.search(Dependency.new(name, version)), target_platform)
81
+ candidates = if use_exact_resolved_specifications?
82
+ matching_specs
83
83
  else
84
- source.specs.search(self)
85
- end
84
+ target_platform = ruby_platform_materializes_to_ruby_platform? ? platform : local_platform
86
85
 
87
- return self if candidates.empty?
86
+ installable_candidates = GemHelpers.select_best_platform_match(matching_specs, target_platform)
88
87
 
89
- __materialize__(candidates)
90
- end
88
+ specification = __materialize__(installable_candidates, :fallback_to_non_installable => false)
89
+ return specification unless specification.nil?
91
90
 
92
- def __materialize__(candidates)
93
- @specification = begin
94
- search = candidates.reverse.find do |spec|
95
- spec.is_a?(StubSpecification) ||
96
- (spec.matches_current_ruby? &&
97
- spec.matches_current_rubygems?)
98
- end
99
- if search.nil? && Bundler.frozen_bundle?
100
- search = candidates.last
101
- else
102
- search.dependencies = dependencies if search && search.full_name == full_name && (search.is_a?(RemoteSpecification) || search.is_a?(EndpointSpecification))
91
+ if target_platform != platform
92
+ installable_candidates = GemHelpers.select_best_platform_match(matching_specs, platform)
103
93
  end
104
- search
94
+
95
+ installable_candidates
105
96
  end
97
+
98
+ __materialize__(candidates)
106
99
  end
107
100
 
108
- def respond_to?(*args)
109
- super || @specification ? @specification.respond_to?(*args) : nil
101
+ # If in frozen mode, we fallback to a non-installable candidate because by
102
+ # doing this we avoid re-resolving and potentially end up changing the
103
+ # lock file, which is not allowed. In that case, we will give a proper error
104
+ # about the mismatch higher up the stack, right before trying to install the
105
+ # bad gem.
106
+ def __materialize__(candidates, fallback_to_non_installable: Bundler.frozen_bundle?)
107
+ search = candidates.reverse.find do |spec|
108
+ spec.is_a?(StubSpecification) ||
109
+ (spec.matches_current_ruby? &&
110
+ spec.matches_current_rubygems?)
111
+ end
112
+ if search.nil? && fallback_to_non_installable
113
+ search = candidates.last
114
+ else
115
+ search.dependencies = dependencies if search && search.full_name == full_name && (search.is_a?(RemoteSpecification) || search.is_a?(EndpointSpecification))
116
+ end
117
+ search
110
118
  end
111
119
 
112
120
  def to_s
@@ -128,16 +136,8 @@ module Bundler
128
136
 
129
137
  private
130
138
 
131
- def to_ary
132
- nil
133
- end
134
-
135
- def method_missing(method, *args, &blk)
136
- raise "LazySpecification has not been materialized yet (calling :#{method} #{args.inspect})" unless @specification
137
-
138
- return super unless respond_to?(method)
139
-
140
- @specification.send(method, *args, &blk)
139
+ def use_exact_resolved_specifications?
140
+ @use_exact_resolved_specifications ||= !source.is_a?(Source::Path) && ruby_platform_materializes_to_ruby_platform?
141
141
  end
142
142
 
143
143
  #
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.3.26".freeze
4
+ VERSION = "2.3.27".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
data/lib/rubygems.rb CHANGED
@@ -8,7 +8,7 @@
8
8
  require "rbconfig"
9
9
 
10
10
  module Gem
11
- VERSION = "3.3.26".freeze
11
+ VERSION = "3.3.27".freeze
12
12
  end
13
13
 
14
14
  # Must be first since it unloads the prelude from 1.9.2
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "rubygems-update"
5
- s.version = "3.3.26"
5
+ s.version = "3.3.27"
6
6
  s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
7
7
  s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
8
8
 
@@ -164,6 +164,7 @@ class TestGemExtCargoBuilder < Gem::TestCase
164
164
  def skip_unsupported_platforms!
165
165
  pend "jruby not supported" if java_platform?
166
166
  pend "truffleruby not supported (yet)" if RUBY_ENGINE == "truffleruby"
167
+ pend "mingw platform failed in 2023" if /mingw/ =~ RUBY_PLATFORM && ENV.key?("GITHUB_ACTIONS")
167
168
  pend "mswin not supported (yet)" if /mswin/ =~ RUBY_PLATFORM && ENV.key?("GITHUB_ACTIONS")
168
169
  system(@rust_envs, "cargo", "-V", out: IO::NULL, err: [:child, :out])
169
170
  pend "cargo not present" unless $?.success?
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygems-update
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.26
4
+ version: 3.3.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Weirich
@@ -16,7 +16,7 @@ authors:
16
16
  autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
- date: 2022-11-17 00:00:00.000000000 Z
19
+ date: 2023-11-10 00:00:00.000000000 Z
20
20
  dependencies: []
21
21
  description: |-
22
22
  A package (also known as a library) contains a set of functionality
@@ -831,7 +831,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
831
831
  - !ruby/object:Gem::Version
832
832
  version: '0'
833
833
  requirements: []
834
- rubygems_version: 3.3.26
834
+ rubygems_version: 3.5.0.dev
835
835
  signing_key:
836
836
  specification_version: 4
837
837
  summary: RubyGems is a package management framework for Ruby.