bundler 2.4.9 → 2.4.11

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: bea219e989f6693457e01025c959a3ece35ee46c5c07df07cd06e56f475c06dd
4
- data.tar.gz: 389b2a53b46bb41a4c95d1ed70e6d4cc3f422de3e8f73ef70067c1e6477da277
3
+ metadata.gz: 515cedfe5a5b3b03d5c9e210e795b60d37ff328a58be6661fd99b3c207e15bf3
4
+ data.tar.gz: 4859a64e350d1be498927007c2f966f14995a5b026f73e2ea3880379392b7475
5
5
  SHA512:
6
- metadata.gz: 7f9d947e46ea956603b8893d024e6833da24b8684416b9d25376cac3279a641d6bf18bf156b67af1fa2c490020064e09eac1ae04ff759bf0945bc189298a24cb
7
- data.tar.gz: f78b90fb696e544268cb590af87b7e6ab4d22c9918222d7d494dde6bc28c91b555af93afa0b61f8ae863a1c48f5151e0370d3443285ae45c7418745e8225f592
6
+ metadata.gz: 9e887c08464beeb5f2e17bbe65a3211af0c3e2a97bfe7aeb81472a5d273e66214476332fda3b69b17769c95edce12070d477f83c5e413568dcf573b5e8f4d4f2
7
+ data.tar.gz: e34e83216ebfcc6b614cb9972ea06a215bdf5bff296fa595e0530197597ff608e658f4d44df125672ab207827ccd6c352358e0ffb68d4269f52311e493099705
data/CHANGELOG.md CHANGED
@@ -1,3 +1,28 @@
1
+ # 2.4.11 (April 10, 2023)
2
+
3
+ ## Security:
4
+
5
+ - Use URI-0.12.1 (safe against CVE-2023-28755 ReDoS vulnerability) [#6558](https://github.com/rubygems/rubygems/pull/6558)
6
+
7
+ ## Enhancements:
8
+
9
+ - Remove one fallback to full indexes on big gemfiles [#6578](https://github.com/rubygems/rubygems/pull/6578)
10
+ - Generate native gems with `-fvisibility=hidden` [#6541](https://github.com/rubygems/rubygems/pull/6541)
11
+
12
+ ## Bug fixes:
13
+
14
+ - Fix resolver hangs when dealing with an incomplete lockfile [#6552](https://github.com/rubygems/rubygems/pull/6552)
15
+ - Fix prereleases not being considered by gem version promoter when there's no lockfile [#6537](https://github.com/rubygems/rubygems/pull/6537)
16
+
17
+ # 2.4.10 (March 27, 2023)
18
+
19
+ ## Bug fixes:
20
+
21
+ - Fix some unnecessary top level dependency downgrades [#6535](https://github.com/rubygems/rubygems/pull/6535)
22
+ - Fix incorrect ruby platform removal from lockfile when adding Gemfile dependencies [#6540](https://github.com/rubygems/rubygems/pull/6540)
23
+ - Fix installing plugins in frozen mode [#6543](https://github.com/rubygems/rubygems/pull/6543)
24
+ - Restore "enumerability" of `SpecSet` [#6532](https://github.com/rubygems/rubygems/pull/6532)
25
+
1
26
  # 2.4.9 (March 20, 2023)
2
27
 
3
28
  ## Security:
@@ -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 = "2023-03-20".freeze
8
- @git_commit_sha = "6f8e92bcc6".freeze
7
+ @built_at = "2023-04-10".freeze
8
+ @git_commit_sha = "be1d1b4623".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -668,9 +668,17 @@ module Bundler
668
668
  def check_missing_lockfile_specs
669
669
  all_locked_specs = @locked_specs.map(&:name) << "bundler"
670
670
 
671
- @locked_specs.any? do |s|
671
+ missing = @locked_specs.select do |s|
672
672
  s.dependencies.any? {|dep| !all_locked_specs.include?(dep.name) }
673
673
  end
674
+
675
+ if missing.any?
676
+ @locked_specs.delete(missing)
677
+
678
+ true
679
+ else
680
+ false
681
+ end
674
682
  end
675
683
 
676
684
  def converge_paths
@@ -726,6 +734,8 @@ module Bundler
726
734
  dep.source = sources.get(dep.source)
727
735
  end
728
736
 
737
+ next if unlocking?
738
+
729
739
  unless locked_dep = @locked_deps[dep.name]
730
740
  changes = true
731
741
  next
@@ -886,8 +896,9 @@ module Bundler
886
896
  end
887
897
 
888
898
  def additional_base_requirements_for_resolve(resolution_packages, last_resolve)
889
- return resolution_packages unless @locked_gems && unlocking? && !sources.expired_sources?(@locked_gems.sources)
899
+ return resolution_packages unless @locked_gems && !sources.expired_sources?(@locked_gems.sources)
890
900
  converge_specs(@originally_locked_specs - last_resolve).each do |locked_spec|
901
+ next if locked_spec.source.is_a?(Source::Path)
891
902
  resolution_packages.base_requirements[locked_spec.name] = Gem::Requirement.new(">= #{locked_spec.version}")
892
903
  end
893
904
  resolution_packages
@@ -898,6 +909,7 @@ module Bundler
898
909
  Bundler.local_platform == Gem::Platform::RUBY ||
899
910
  !platforms.include?(Gem::Platform::RUBY) ||
900
911
  (@new_platform && platforms.last == Gem::Platform::RUBY) ||
912
+ @dependency_changes ||
901
913
  !@originally_locked_specs.incomplete_ruby_specs?(dependencies)
902
914
 
903
915
  remove_platform(Gem::Platform::RUBY)
@@ -93,7 +93,7 @@ module Bundler
93
93
  locked_version = package.locked_version
94
94
 
95
95
  result = specs.sort do |a, b|
96
- unless locked_version && (package.prerelease_specified? || pre?)
96
+ unless package.prerelease_specified? || pre?
97
97
  a_pre = a.prerelease?
98
98
  b_pre = b.prerelease?
99
99
 
@@ -122,7 +122,7 @@ module Bundler
122
122
  end
123
123
 
124
124
  def to_s
125
- @__to_s ||= if platform == Gem::Platform::RUBY
125
+ @to_s ||= if platform == Gem::Platform::RUBY
126
126
  "#{name} (#{version})"
127
127
  else
128
128
  "#{name} (#{version}-#{platform})"
@@ -83,8 +83,11 @@ module Bundler
83
83
 
84
84
  Bundler.configure_gem_home_and_path(Plugin.root)
85
85
 
86
- definition = Definition.new(nil, deps, source_list, true)
87
- install_definition(definition)
86
+ Bundler.settings.temporary(:deployment => false, :frozen => false) do
87
+ definition = Definition.new(nil, deps, source_list, true)
88
+
89
+ install_definition(definition)
90
+ end
88
91
  end
89
92
 
90
93
  # Installs the plugins and deps from the provided specs and returns map of
@@ -34,12 +34,8 @@ module Bundler
34
34
  @base[name]
35
35
  end
36
36
 
37
- def delete(incomplete_specs)
38
- incomplete_specs.each do |incomplete_spec|
39
- incomplete_spec.partially_complete_specs.each do |spec|
40
- @base.delete(spec)
41
- end
42
- end
37
+ def delete(specs)
38
+ @base.delete(specs)
43
39
  end
44
40
 
45
41
  def get_package(name)
@@ -51,10 +47,18 @@ module Bundler
51
47
  end
52
48
 
53
49
  def unlock_names(names)
54
- names.each do |name|
55
- @base.delete_by_name(name)
50
+ indirect_pins = indirect_pins(names)
56
51
 
57
- @base_requirements.delete(name)
52
+ if indirect_pins.any?
53
+ loosen_names(indirect_pins)
54
+ else
55
+ pins = pins(names)
56
+
57
+ if pins.any?
58
+ loosen_names(pins)
59
+ else
60
+ unrestrict_names(names)
61
+ end
58
62
  end
59
63
  end
60
64
 
@@ -66,6 +70,30 @@ module Bundler
66
70
 
67
71
  private
68
72
 
73
+ def indirect_pins(names)
74
+ names.select {|name| @base_requirements[name].exact? && @requirements.none? {|dep| dep.name == name } }
75
+ end
76
+
77
+ def pins(names)
78
+ names.select {|name| @base_requirements[name].exact? }
79
+ end
80
+
81
+ def loosen_names(names)
82
+ names.each do |name|
83
+ version = @base_requirements[name].requirements.first[1]
84
+
85
+ @base_requirements[name] = Gem::Requirement.new(">= #{version}")
86
+
87
+ @base.delete_by_name(name)
88
+ end
89
+ end
90
+
91
+ def unrestrict_names(names)
92
+ names.each do |name|
93
+ @base_requirements.delete(name)
94
+ end
95
+ end
96
+
69
97
  def build_base_requirements
70
98
  base_requirements = {}
71
99
  @base.each do |ls|
@@ -107,7 +107,7 @@ module Bundler
107
107
  ruby_engine_version = RUBY_ENGINE == "ruby" ? ruby_version : RUBY_ENGINE_VERSION.dup
108
108
  patchlevel = RUBY_PATCHLEVEL.to_s
109
109
 
110
- @ruby_version ||= RubyVersion.new(ruby_version, patchlevel, ruby_engine, ruby_engine_version)
110
+ @system ||= RubyVersion.new(ruby_version, patchlevel, ruby_engine, ruby_engine_version)
111
111
  end
112
112
 
113
113
  private
@@ -66,7 +66,9 @@ module Gem
66
66
 
67
67
  alias_method :rg_extension_dir, :extension_dir
68
68
  def extension_dir
69
- @bundler_extension_dir ||= if source.respond_to?(:extension_dir_name)
69
+ # following instance variable is already used in original method
70
+ # and that is the reason to prefix it with bundler_ and add rubocop exception
71
+ @bundler_extension_dir ||= if source.respond_to?(:extension_dir_name) # rubocop:disable Naming/MemoizedInstanceVariableName
70
72
  unique_extension_dir = [source.extension_dir_name, File.basename(full_gem_path)].uniq.join("-")
71
73
  File.expand_path(File.join(extensions_dir, unique_extension_dir))
72
74
  else
@@ -203,9 +205,9 @@ module Gem
203
205
  protected
204
206
 
205
207
  def _requirements_sorted?
206
- return @_are_requirements_sorted if defined?(@_are_requirements_sorted)
208
+ return @_requirements_sorted if defined?(@_requirements_sorted)
207
209
  strings = as_list
208
- @_are_requirements_sorted = strings == strings.sort
210
+ @_requirements_sorted = strings == strings.sort
209
211
  end
210
212
 
211
213
  def _with_sorted_requirements
@@ -7,8 +7,6 @@ module Bundler
7
7
  class Rubygems < Source
8
8
  autoload :Remote, File.expand_path("rubygems/remote", __dir__)
9
9
 
10
- # Use the API when installing less than X gems
11
- API_REQUEST_LIMIT = 500
12
10
  # Ask for X gems per API request
13
11
  API_REQUEST_SIZE = 50
14
12
 
@@ -401,12 +399,11 @@ module Bundler
401
399
  # gather lists from non-api sites
402
400
  fetch_names(index_fetchers, nil, idx, false)
403
401
 
404
- # because ensuring we have all the gems we need involves downloading
405
- # the gemspecs of those gems, if the non-api sites contain more than
406
- # about 500 gems, we treat all sites as non-api for speed.
407
- allow_api = idx.size < API_REQUEST_LIMIT && dependency_names.size < API_REQUEST_LIMIT
408
- Bundler.ui.debug "Need to query more than #{API_REQUEST_LIMIT} gems." \
409
- " Downloading full index instead..." unless allow_api
402
+ # legacy multi-remote sources need special logic to figure out
403
+ # dependency names and that logic can be very costly if one remote
404
+ # uses the dependency API but others don't. So use full indexes
405
+ # consistently in that particular case.
406
+ allow_api = !multiple_remotes?
410
407
 
411
408
  fetch_names(api_fetchers, allow_api && dependency_names, idx, false)
412
409
  end
@@ -7,8 +7,11 @@ module Bundler
7
7
  include Enumerable
8
8
  include TSort
9
9
 
10
- def initialize(specs)
10
+ attr_reader :incomplete_specs
11
+
12
+ def initialize(specs, incomplete_specs = [])
11
13
  @specs = specs
14
+ @incomplete_specs = incomplete_specs
12
15
  end
13
16
 
14
17
  def for(dependencies, check = false, platforms = [nil])
@@ -42,7 +45,7 @@ module Bundler
42
45
  end
43
46
 
44
47
  if incomplete && check
45
- specs << IncompleteSpecification.new(name, lookup[name])
48
+ @incomplete_specs += lookup[name].any? ? lookup[name] : [LazySpecification.new(name, nil, nil)]
46
49
  end
47
50
  end
48
51
 
@@ -60,8 +63,8 @@ module Bundler
60
63
  @sorted = nil
61
64
  end
62
65
 
63
- def delete(spec)
64
- @specs.delete(spec)
66
+ def delete(specs)
67
+ specs.each {|spec| @specs.delete(spec) }
65
68
  @lookup = nil
66
69
  @sorted = nil
67
70
  end
@@ -78,10 +81,10 @@ module Bundler
78
81
  lookup.dup
79
82
  end
80
83
 
81
- def materialize(deps, platforms = [nil])
82
- materialized = self.for(deps, true, platforms)
84
+ def materialize(deps)
85
+ materialized = self.for(deps, true)
83
86
 
84
- SpecSet.new(materialized)
87
+ SpecSet.new(materialized, incomplete_specs)
85
88
  end
86
89
 
87
90
  # Materialize for all the specs in the spec set, regardless of what platform they're for
@@ -100,17 +103,17 @@ module Bundler
100
103
  def incomplete_ruby_specs?(deps)
101
104
  return false if @specs.empty?
102
105
 
103
- materialize(deps, [Gem::Platform::RUBY]).incomplete_specs.any?
106
+ @incomplete_specs = []
107
+
108
+ self.for(deps, true, [Gem::Platform::RUBY])
109
+
110
+ @incomplete_specs.any?
104
111
  end
105
112
 
106
113
  def missing_specs
107
114
  @specs.select {|s| s.is_a?(LazySpecification) }
108
115
  end
109
116
 
110
- def incomplete_specs
111
- @specs.select {|s| s.is_a?(IncompleteSpecification) }
112
- end
113
-
114
117
  def merge(set)
115
118
  arr = sorted.dup
116
119
  set.each do |set_spec|
@@ -2,4 +2,9 @@
2
2
 
3
3
  require "mkmf"
4
4
 
5
+ # Makes all symbols private by default to avoid unintended conflict
6
+ # with other gems. To explicitly export symbols you can use RUBY_FUNC_EXPORTED
7
+ # selectively, or entirely remove this flag.
8
+ append_cflags("-fvisibility=hidden")
9
+
5
10
  create_makefile(<%= config[:makefile_path].inspect %>)
@@ -2,7 +2,7 @@
2
2
 
3
3
  VALUE rb_m<%= config[:constant_array].join %>;
4
4
 
5
- void
5
+ RUBY_FUNC_EXPORTED void
6
6
  Init_<%= config[:underscored_name] %>(void)
7
7
  {
8
8
  rb_m<%= config[:constant_array].join %> = rb_define_module(<%= config[:constant_name].inspect %>);
@@ -2,8 +2,8 @@
2
2
  module Bundler::URI
3
3
  class RFC3986_Parser # :nodoc:
4
4
  # Bundler::URI defined in RFC3986
5
- RFC3986_URI = /\A(?<Bundler::URI>(?<scheme>[A-Za-z][+\-.0-9A-Za-z]*):(?<hier-part>\/\/(?<authority>(?:(?<userinfo>(?:%\h\h|[!$&-.0-;=A-Z_a-z~])*)@)?(?<host>(?<IP-literal>\[(?:(?<IPv6address>(?:\h{1,4}:){6}(?<ls32>\h{1,4}:\h{1,4}|(?<IPv4address>(?<dec-octet>[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]|\d)\.\g<dec-octet>\.\g<dec-octet>\.\g<dec-octet>))|::(?:\h{1,4}:){5}\g<ls32>|\h{1,4}?::(?:\h{1,4}:){4}\g<ls32>|(?:(?:\h{1,4}:)?\h{1,4})?::(?:\h{1,4}:){3}\g<ls32>|(?:(?:\h{1,4}:){,2}\h{1,4})?::(?:\h{1,4}:){2}\g<ls32>|(?:(?:\h{1,4}:){,3}\h{1,4})?::\h{1,4}:\g<ls32>|(?:(?:\h{1,4}:){,4}\h{1,4})?::\g<ls32>|(?:(?:\h{1,4}:){,5}\h{1,4})?::\h{1,4}|(?:(?:\h{1,4}:){,6}\h{1,4})?::)|(?<IPvFuture>v\h+\.[!$&-.0-;=A-Z_a-z~]+))\])|\g<IPv4address>|(?<reg-name>(?:%\h\h|[!$&-.0-9;=A-Z_a-z~])*))(?::(?<port>\d*))?)(?<path-abempty>(?:\/(?<segment>(?:%\h\h|[!$&-.0-;=@-Z_a-z~])*))*)|(?<path-absolute>\/(?:(?<segment-nz>(?:%\h\h|[!$&-.0-;=@-Z_a-z~])+)(?:\/\g<segment>)*)?)|(?<path-rootless>\g<segment-nz>(?:\/\g<segment>)*)|(?<path-empty>))(?:\?(?<query>[^#]*))?(?:\#(?<fragment>(?:%\h\h|[!$&-.0-;=@-Z_a-z~\/?])*))?)\z/
6
- RFC3986_relative_ref = /\A(?<relative-ref>(?<relative-part>\/\/(?<authority>(?:(?<userinfo>(?:%\h\h|[!$&-.0-;=A-Z_a-z~])*)@)?(?<host>(?<IP-literal>\[(?:(?<IPv6address>(?:\h{1,4}:){6}(?<ls32>\h{1,4}:\h{1,4}|(?<IPv4address>(?<dec-octet>[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]|\d)\.\g<dec-octet>\.\g<dec-octet>\.\g<dec-octet>))|::(?:\h{1,4}:){5}\g<ls32>|\h{1,4}?::(?:\h{1,4}:){4}\g<ls32>|(?:(?:\h{1,4}:){,1}\h{1,4})?::(?:\h{1,4}:){3}\g<ls32>|(?:(?:\h{1,4}:){,2}\h{1,4})?::(?:\h{1,4}:){2}\g<ls32>|(?:(?:\h{1,4}:){,3}\h{1,4})?::\h{1,4}:\g<ls32>|(?:(?:\h{1,4}:){,4}\h{1,4})?::\g<ls32>|(?:(?:\h{1,4}:){,5}\h{1,4})?::\h{1,4}|(?:(?:\h{1,4}:){,6}\h{1,4})?::)|(?<IPvFuture>v\h+\.[!$&-.0-;=A-Z_a-z~]+))\])|\g<IPv4address>|(?<reg-name>(?:%\h\h|[!$&-.0-9;=A-Z_a-z~])+))?(?::(?<port>\d*))?)(?<path-abempty>(?:\/(?<segment>(?:%\h\h|[!$&-.0-;=@-Z_a-z~])*))*)|(?<path-absolute>\/(?:(?<segment-nz>(?:%\h\h|[!$&-.0-;=@-Z_a-z~])+)(?:\/\g<segment>)*)?)|(?<path-noscheme>(?<segment-nz-nc>(?:%\h\h|[!$&-.0-9;=@-Z_a-z~])+)(?:\/\g<segment>)*)|(?<path-empty>))(?:\?(?<query>[^#]*))?(?:\#(?<fragment>(?:%\h\h|[!$&-.0-;=@-Z_a-z~\/?])*))?)\z/
5
+ RFC3986_URI = /\A(?<Bundler::URI>(?<scheme>[A-Za-z][+\-.0-9A-Za-z]*+):(?<hier-part>\/\/(?<authority>(?:(?<userinfo>(?:%\h\h|[!$&-.0-;=A-Z_a-z~])*+)@)?(?<host>(?<IP-literal>\[(?:(?<IPv6address>(?:\h{1,4}:){6}(?<ls32>\h{1,4}:\h{1,4}|(?<IPv4address>(?<dec-octet>[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]|\d)\.\g<dec-octet>\.\g<dec-octet>\.\g<dec-octet>))|::(?:\h{1,4}:){5}\g<ls32>|\h{1,4}?::(?:\h{1,4}:){4}\g<ls32>|(?:(?:\h{1,4}:)?\h{1,4})?::(?:\h{1,4}:){3}\g<ls32>|(?:(?:\h{1,4}:){,2}\h{1,4})?::(?:\h{1,4}:){2}\g<ls32>|(?:(?:\h{1,4}:){,3}\h{1,4})?::\h{1,4}:\g<ls32>|(?:(?:\h{1,4}:){,4}\h{1,4})?::\g<ls32>|(?:(?:\h{1,4}:){,5}\h{1,4})?::\h{1,4}|(?:(?:\h{1,4}:){,6}\h{1,4})?::)|(?<IPvFuture>v\h++\.[!$&-.0-;=A-Z_a-z~]++))\])|\g<IPv4address>|(?<reg-name>(?:%\h\h|[!$&-.0-9;=A-Z_a-z~])*+))(?::(?<port>\d*+))?)(?<path-abempty>(?:\/(?<segment>(?:%\h\h|[!$&-.0-;=@-Z_a-z~])*+))*+)|(?<path-absolute>\/(?:(?<segment-nz>(?:%\h\h|[!$&-.0-;=@-Z_a-z~])++)(?:\/\g<segment>)*+)?)|(?<path-rootless>\g<segment-nz>(?:\/\g<segment>)*+)|(?<path-empty>))(?:\?(?<query>[^#]*+))?(?:\#(?<fragment>(?:%\h\h|[!$&-.0-;=@-Z_a-z~\/?])*+))?)\z/
6
+ RFC3986_relative_ref = /\A(?<relative-ref>(?<relative-part>\/\/(?<authority>(?:(?<userinfo>(?:%\h\h|[!$&-.0-;=A-Z_a-z~])*+)@)?(?<host>(?<IP-literal>\[(?:(?<IPv6address>(?:\h{1,4}:){6}(?<ls32>\h{1,4}:\h{1,4}|(?<IPv4address>(?<dec-octet>[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]|\d)\.\g<dec-octet>\.\g<dec-octet>\.\g<dec-octet>))|::(?:\h{1,4}:){5}\g<ls32>|\h{1,4}?::(?:\h{1,4}:){4}\g<ls32>|(?:(?:\h{1,4}:){,1}\h{1,4})?::(?:\h{1,4}:){3}\g<ls32>|(?:(?:\h{1,4}:){,2}\h{1,4})?::(?:\h{1,4}:){2}\g<ls32>|(?:(?:\h{1,4}:){,3}\h{1,4})?::\h{1,4}:\g<ls32>|(?:(?:\h{1,4}:){,4}\h{1,4})?::\g<ls32>|(?:(?:\h{1,4}:){,5}\h{1,4})?::\h{1,4}|(?:(?:\h{1,4}:){,6}\h{1,4})?::)|(?<IPvFuture>v\h++\.[!$&-.0-;=A-Z_a-z~]++))\])|\g<IPv4address>|(?<reg-name>(?:%\h\h|[!$&-.0-9;=A-Z_a-z~])++))?(?::(?<port>\d*+))?)(?<path-abempty>(?:\/(?<segment>(?:%\h\h|[!$&-.0-;=@-Z_a-z~])*+))*+)|(?<path-absolute>\/(?:(?<segment-nz>(?:%\h\h|[!$&-.0-;=@-Z_a-z~])++)(?:\/\g<segment>)*+)?)|(?<path-noscheme>(?<segment-nz-nc>(?:%\h\h|[!$&-.0-9;=@-Z_a-z~])++)(?:\/\g<segment>)*+)|(?<path-empty>))(?:\?(?<query>[^#]*+))?(?:\#(?<fragment>(?:%\h\h|[!$&-.0-;=@-Z_a-z~\/?])*+))?)\z/
7
7
  attr_reader :regexp
8
8
 
9
9
  def initialize
@@ -1,6 +1,6 @@
1
1
  module Bundler::URI
2
2
  # :stopdoc:
3
- VERSION_CODE = '001200'.freeze
3
+ VERSION_CODE = '001201'.freeze
4
4
  VERSION = VERSION_CODE.scan(/../).collect{|n| n.to_i}.join('.').freeze
5
5
  # :startdoc:
6
6
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.4.9".freeze
4
+ VERSION = "2.4.11".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
data/lib/bundler.rb CHANGED
@@ -62,7 +62,6 @@ module Bundler
62
62
  autoload :GemHelpers, File.expand_path("bundler/gem_helpers", __dir__)
63
63
  autoload :GemVersionPromoter, File.expand_path("bundler/gem_version_promoter", __dir__)
64
64
  autoload :Graph, File.expand_path("bundler/graph", __dir__)
65
- autoload :IncompleteSpecification, File.expand_path("bundler/incomplete_specification", __dir__)
66
65
  autoload :Index, File.expand_path("bundler/index", __dir__)
67
66
  autoload :Injector, File.expand_path("bundler/injector", __dir__)
68
67
  autoload :Installer, File.expand_path("bundler/installer", __dir__)
@@ -90,7 +89,7 @@ module Bundler
90
89
 
91
90
  class << self
92
91
  def configure
93
- @configured ||= configure_gem_home_and_path
92
+ @configure ||= configure_gem_home_and_path
94
93
  end
95
94
 
96
95
  def ui
@@ -582,7 +581,7 @@ EOF
582
581
  @bin_path = nil
583
582
  @bundler_major_version = nil
584
583
  @bundle_path = nil
585
- @configured = nil
584
+ @configure = nil
586
585
  @configured_bundle_path = nil
587
586
  @definition = nil
588
587
  @load = nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bundler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.9
4
+ version: 2.4.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - André Arko
@@ -22,7 +22,7 @@ authors:
22
22
  autorequire:
23
23
  bindir: exe
24
24
  cert_chain: []
25
- date: 2023-03-20 00:00:00.000000000 Z
25
+ date: 2023-04-10 00:00:00.000000000 Z
26
26
  dependencies: []
27
27
  description: Bundler manages an application's dependencies through its entire life,
28
28
  across many machines, systematically and repeatably
@@ -103,7 +103,6 @@ files:
103
103
  - lib/bundler/gem_tasks.rb
104
104
  - lib/bundler/gem_version_promoter.rb
105
105
  - lib/bundler/graph.rb
106
- - lib/bundler/incomplete_specification.rb
107
106
  - lib/bundler/index.rb
108
107
  - lib/bundler/injector.rb
109
108
  - lib/bundler/inline.rb
@@ -381,7 +380,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
381
380
  - !ruby/object:Gem::Version
382
381
  version: 3.0.1
383
382
  requirements: []
384
- rubygems_version: 3.4.9
383
+ rubygems_version: 3.4.11
385
384
  signing_key:
386
385
  specification_version: 4
387
386
  summary: The best way to manage your application's dependencies
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bundler
4
- #
5
- # Represents a package name that was found to be incomplete when trying to
6
- # materialize a fresh resolution or the lockfile.
7
- #
8
- # Holds the actual partially complete set of specifications for the name.
9
- # These are used so that they can be unlocked in a future resolution, and fix
10
- # the situation.
11
- #
12
- class IncompleteSpecification
13
- attr_reader :name, :partially_complete_specs
14
-
15
- def initialize(name, partially_complete_specs = [])
16
- @name = name
17
- @partially_complete_specs = partially_complete_specs
18
- end
19
-
20
- def ==(other)
21
- partially_complete_specs == other.partially_complete_specs
22
- end
23
- end
24
- end