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 +4 -4
- data/CHANGELOG.md +25 -0
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/definition.rb +14 -2
- data/lib/bundler/gem_version_promoter.rb +1 -1
- data/lib/bundler/lazy_specification.rb +1 -1
- data/lib/bundler/plugin/installer.rb +5 -2
- data/lib/bundler/resolver/base.rb +37 -9
- data/lib/bundler/ruby_version.rb +1 -1
- data/lib/bundler/rubygems_ext.rb +5 -3
- data/lib/bundler/source/rubygems.rb +5 -8
- data/lib/bundler/spec_set.rb +15 -12
- data/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +5 -0
- data/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
- data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +2 -2
- data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler.rb +2 -3
- metadata +3 -4
- data/lib/bundler/incomplete_specification.rb +0 -24
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 515cedfe5a5b3b03d5c9e210e795b60d37ff328a58be6661fd99b3c207e15bf3
|
|
4
|
+
data.tar.gz: 4859a64e350d1be498927007c2f966f14995a5b026f73e2ea3880379392b7475
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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-
|
|
8
|
-
@git_commit_sha = "
|
|
7
|
+
@built_at = "2023-04-10".freeze
|
|
8
|
+
@git_commit_sha = "be1d1b4623".freeze
|
|
9
9
|
@release = true
|
|
10
10
|
# end ivars
|
|
11
11
|
|
data/lib/bundler/definition.rb
CHANGED
|
@@ -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.
|
|
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 &&
|
|
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
|
|
96
|
+
unless package.prerelease_specified? || pre?
|
|
97
97
|
a_pre = a.prerelease?
|
|
98
98
|
b_pre = b.prerelease?
|
|
99
99
|
|
|
@@ -83,8 +83,11 @@ module Bundler
|
|
|
83
83
|
|
|
84
84
|
Bundler.configure_gem_home_and_path(Plugin.root)
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
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(
|
|
38
|
-
|
|
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
|
-
|
|
55
|
-
@base.delete_by_name(name)
|
|
50
|
+
indirect_pins = indirect_pins(names)
|
|
56
51
|
|
|
57
|
-
|
|
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|
|
data/lib/bundler/ruby_version.rb
CHANGED
|
@@ -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
|
-
@
|
|
110
|
+
@system ||= RubyVersion.new(ruby_version, patchlevel, ruby_engine, ruby_engine_version)
|
|
111
111
|
end
|
|
112
112
|
|
|
113
113
|
private
|
data/lib/bundler/rubygems_ext.rb
CHANGED
|
@@ -66,7 +66,9 @@ module Gem
|
|
|
66
66
|
|
|
67
67
|
alias_method :rg_extension_dir, :extension_dir
|
|
68
68
|
def extension_dir
|
|
69
|
-
|
|
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 @
|
|
208
|
+
return @_requirements_sorted if defined?(@_requirements_sorted)
|
|
207
209
|
strings = as_list
|
|
208
|
-
@
|
|
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
|
-
#
|
|
405
|
-
#
|
|
406
|
-
#
|
|
407
|
-
|
|
408
|
-
|
|
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
|
data/lib/bundler/spec_set.rb
CHANGED
|
@@ -7,8 +7,11 @@ module Bundler
|
|
|
7
7
|
include Enumerable
|
|
8
8
|
include TSort
|
|
9
9
|
|
|
10
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
|
82
|
-
materialized = self.for(deps, true
|
|
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
|
-
|
|
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,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]
|
|
6
|
-
RFC3986_relative_ref = /\A(?<relative-ref>(?<relative-part>\/\/(?<authority>(?:(?<userinfo>(?:%\h\h|[!$&-.0-;=A-Z_a-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
|
data/lib/bundler/version.rb
CHANGED
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
|
-
@
|
|
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
|
-
@
|
|
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.
|
|
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-
|
|
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.
|
|
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
|