bundler 2.3.23 → 2.3.25
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +23 -0
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/definition.rb +11 -29
- data/lib/bundler/endpoint_specification.rb +4 -0
- data/lib/bundler/gem_helpers.rb +0 -1
- data/lib/bundler/index.rb +0 -1
- data/lib/bundler/injector.rb +1 -1
- data/lib/bundler/lazy_specification.rb +8 -14
- data/lib/bundler/man/bundle-add.1 +1 -1
- data/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/lib/bundler/man/bundle-cache.1 +1 -1
- data/lib/bundler/man/bundle-check.1 +1 -1
- data/lib/bundler/man/bundle-clean.1 +1 -1
- data/lib/bundler/man/bundle-config.1 +1 -1
- data/lib/bundler/man/bundle-console.1 +1 -1
- data/lib/bundler/man/bundle-doctor.1 +1 -1
- data/lib/bundler/man/bundle-exec.1 +1 -1
- data/lib/bundler/man/bundle-gem.1 +1 -1
- data/lib/bundler/man/bundle-help.1 +1 -1
- data/lib/bundler/man/bundle-info.1 +1 -1
- data/lib/bundler/man/bundle-init.1 +1 -1
- data/lib/bundler/man/bundle-inject.1 +1 -1
- data/lib/bundler/man/bundle-install.1 +1 -1
- data/lib/bundler/man/bundle-list.1 +1 -1
- data/lib/bundler/man/bundle-lock.1 +1 -1
- data/lib/bundler/man/bundle-open.1 +1 -1
- data/lib/bundler/man/bundle-outdated.1 +1 -1
- data/lib/bundler/man/bundle-platform.1 +1 -1
- data/lib/bundler/man/bundle-plugin.1 +1 -1
- data/lib/bundler/man/bundle-pristine.1 +1 -1
- data/lib/bundler/man/bundle-remove.1 +1 -1
- data/lib/bundler/man/bundle-show.1 +1 -1
- data/lib/bundler/man/bundle-update.1 +1 -1
- data/lib/bundler/man/bundle-version.1 +1 -1
- data/lib/bundler/man/bundle-viz.1 +1 -1
- data/lib/bundler/man/bundle.1 +1 -1
- data/lib/bundler/man/gemfile.5 +23 -12
- data/lib/bundler/man/gemfile.5.ronn +23 -13
- data/lib/bundler/remote_specification.rb +6 -2
- data/lib/bundler/resolver/base.rb +1 -1
- data/lib/bundler/resolver/spec_group.rb +22 -44
- data/lib/bundler/resolver.rb +24 -65
- data/lib/bundler/shared_helpers.rb +1 -2
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler.rb +0 -1
- metadata +3 -4
- data/lib/bundler/dep_proxy.rb +0 -55
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 508e348983627527bf00fb429d395c7fc71bd41692b03f55901b3999a77cd5d6
|
4
|
+
data.tar.gz: 9ad200e02400a40f90d17ddabc20673366b9b16f8c8e451eafb41d9f2ecd6e8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6750ee21d6226fbde651fb33831c07aa7b16901a40ec7c960d7ac8bda21f22fbacf78041c5a8dff14739bd25df45dc78c6605e2ff650fe65d14202df3fc18d87
|
7
|
+
data.tar.gz: 5581c3544c07ba90854e1534793ca9457ca7212ca5453ab38d6f7567efe4e8570d0f67ff83be826ebd7ed3eb9ad1548a07a878cac73faca27fe6b8b66dcbd68e
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,26 @@
|
|
1
|
+
# 2.3.25 (November 2, 2022)
|
2
|
+
|
3
|
+
## Bug fixes:
|
4
|
+
|
5
|
+
- Properly sort specs when materializing [#6015](https://github.com/rubygems/rubygems/pull/6015)
|
6
|
+
- Fix bad unfreeze recommendation [#6013](https://github.com/rubygems/rubygems/pull/6013)
|
7
|
+
|
8
|
+
## Documentation:
|
9
|
+
|
10
|
+
- Bring docs for gemfile(5) manpage up to date [#6007](https://github.com/rubygems/rubygems/pull/6007)
|
11
|
+
- Fix `github` DSL docs to mention they use https protocol over git under the hood [#5993](https://github.com/rubygems/rubygems/pull/5993)
|
12
|
+
|
13
|
+
# 2.3.24 (October 17, 2022)
|
14
|
+
|
15
|
+
## Enhancements:
|
16
|
+
|
17
|
+
- Only add extra resolver spec group for Ruby platform when needed [#5698](https://github.com/rubygems/rubygems/pull/5698)
|
18
|
+
- Fix little UI issue when bundler shows duplicated gems in a list [#5965](https://github.com/rubygems/rubygems/pull/5965)
|
19
|
+
|
20
|
+
## Bug fixes:
|
21
|
+
|
22
|
+
- Fix incorrect materialization on Windows [#5975](https://github.com/rubygems/rubygems/pull/5975)
|
23
|
+
|
1
24
|
# 2.3.23 (October 5, 2022)
|
2
25
|
|
3
26
|
## Enhancements:
|
@@ -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-
|
8
|
-
@git_commit_sha = "
|
7
|
+
@built_at = "2022-11-02".freeze
|
8
|
+
@git_commit_sha = "6b0b87b1ed".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
data/lib/bundler/definition.rb
CHANGED
@@ -139,8 +139,8 @@ module Bundler
|
|
139
139
|
if @unlock[:conservative]
|
140
140
|
@unlock[:gems] ||= @dependencies.map(&:name)
|
141
141
|
else
|
142
|
-
eager_unlock =
|
143
|
-
@unlock[:gems] = @locked_specs.for(eager_unlock, false, platforms).map(&:name)
|
142
|
+
eager_unlock = (@unlock[:gems] || []).map {|name| Dependency.new(name, ">= 0") }
|
143
|
+
@unlock[:gems] = @locked_specs.for(eager_unlock, false, platforms).map(&:name).uniq
|
144
144
|
end
|
145
145
|
|
146
146
|
@dependency_changes = converge_dependencies
|
@@ -224,7 +224,7 @@ module Bundler
|
|
224
224
|
|
225
225
|
def current_dependencies
|
226
226
|
dependencies.select do |d|
|
227
|
-
d.should_include? && !d.gem_platforms(
|
227
|
+
d.should_include? && !d.gem_platforms([generic_local_platform]).empty?
|
228
228
|
end
|
229
229
|
end
|
230
230
|
|
@@ -248,10 +248,9 @@ module Bundler
|
|
248
248
|
|
249
249
|
def dependencies_for(groups)
|
250
250
|
groups.map!(&:to_sym)
|
251
|
-
|
251
|
+
current_dependencies.reject do |d|
|
252
252
|
(d.groups & groups).empty?
|
253
253
|
end
|
254
|
-
expand_dependencies(deps)
|
255
254
|
end
|
256
255
|
|
257
256
|
# Resolve all the dependencies specified in Gemfile. It ensures that
|
@@ -358,7 +357,7 @@ module Bundler
|
|
358
357
|
"bundle config unset deployment"
|
359
358
|
end
|
360
359
|
msg << "\n\nIf this is a development machine, remove the #{Bundler.default_gemfile} " \
|
361
|
-
"freeze \nby running `#{suggested_command}`."
|
360
|
+
"freeze \nby running `#{suggested_command}`." if suggested_command
|
362
361
|
end
|
363
362
|
|
364
363
|
added = []
|
@@ -474,17 +473,17 @@ module Bundler
|
|
474
473
|
def resolver
|
475
474
|
@resolver ||= begin
|
476
475
|
last_resolve = converge_locked_specs
|
477
|
-
remove_ruby_from_platforms_if_necessary!(
|
476
|
+
remove_ruby_from_platforms_if_necessary!(current_dependencies)
|
478
477
|
Resolver.new(source_requirements, last_resolve, gem_version_promoter, additional_base_requirements_for_resolve(last_resolve), platforms)
|
479
478
|
end
|
480
479
|
end
|
481
480
|
|
482
481
|
def expanded_dependencies
|
483
|
-
@expanded_dependencies ||=
|
482
|
+
@expanded_dependencies ||= dependencies + metadata_dependencies
|
484
483
|
end
|
485
484
|
|
486
485
|
def filter_specs(specs, deps)
|
487
|
-
SpecSet.new(specs).for(
|
486
|
+
SpecSet.new(specs).for(deps, false, platforms)
|
488
487
|
end
|
489
488
|
|
490
489
|
def materialize(dependencies)
|
@@ -578,8 +577,8 @@ module Bundler
|
|
578
577
|
].select(&:first).map(&:last).join(", ")
|
579
578
|
end
|
580
579
|
|
581
|
-
def pretty_dep(dep
|
582
|
-
SharedHelpers.pretty_dependency(dep
|
580
|
+
def pretty_dep(dep)
|
581
|
+
SharedHelpers.pretty_dependency(dep)
|
583
582
|
end
|
584
583
|
|
585
584
|
# Check if the specs of the given source changed
|
@@ -792,23 +791,6 @@ module Bundler
|
|
792
791
|
]
|
793
792
|
end
|
794
793
|
|
795
|
-
def expand_dependencies(dependencies, remote = false)
|
796
|
-
deps = []
|
797
|
-
dependencies.each do |dep|
|
798
|
-
dep = Dependency.new(dep, ">= 0") unless dep.respond_to?(:name)
|
799
|
-
next unless remote || dep.current_platform?
|
800
|
-
target_platforms = dep.gem_platforms(remote ? @platforms : [generic_local_platform])
|
801
|
-
deps += expand_dependency_with_platforms(dep, target_platforms)
|
802
|
-
end
|
803
|
-
deps
|
804
|
-
end
|
805
|
-
|
806
|
-
def expand_dependency_with_platforms(dep, platforms)
|
807
|
-
platforms.map do |p|
|
808
|
-
DepProxy.get_proxy(dep, p)
|
809
|
-
end
|
810
|
-
end
|
811
|
-
|
812
794
|
def source_requirements
|
813
795
|
# Record the specs available in each gem's source, so that those
|
814
796
|
# specs will be available later when the resolver knows where to
|
@@ -880,7 +862,7 @@ module Bundler
|
|
880
862
|
Bundler.local_platform == Gem::Platform::RUBY ||
|
881
863
|
!platforms.include?(Gem::Platform::RUBY) ||
|
882
864
|
(@new_platform && platforms.last == Gem::Platform::RUBY) ||
|
883
|
-
!@originally_locked_specs.incomplete_ruby_specs?(
|
865
|
+
!@originally_locked_specs.incomplete_ruby_specs?(dependencies)
|
884
866
|
|
885
867
|
remove_platform(Gem::Platform::RUBY)
|
886
868
|
add_current_platform
|
data/lib/bundler/gem_helpers.rb
CHANGED
@@ -5,7 +5,6 @@ module Bundler
|
|
5
5
|
GENERIC_CACHE = { Gem::Platform::RUBY => Gem::Platform::RUBY } # rubocop:disable Style/MutableConstant
|
6
6
|
GENERICS = [
|
7
7
|
[Gem::Platform.new("java"), Gem::Platform.new("java")],
|
8
|
-
[Gem::Platform.new("universal-java"), Gem::Platform.new("java")],
|
9
8
|
[Gem::Platform.new("mswin32"), Gem::Platform.new("mswin32")],
|
10
9
|
[Gem::Platform.new("mswin64"), Gem::Platform.new("mswin64")],
|
11
10
|
[Gem::Platform.new("universal-mingw32"), Gem::Platform.new("universal-mingw32")],
|
data/lib/bundler/index.rb
CHANGED
@@ -71,7 +71,6 @@ 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 DepProxy then search_by_dependency(query.dep)
|
75
74
|
else
|
76
75
|
raise "You can't search for a #{query.inspect}."
|
77
76
|
end
|
data/lib/bundler/injector.rb
CHANGED
@@ -70,7 +70,7 @@ module Bundler
|
|
70
70
|
|
71
71
|
show_warning("No gems were removed from the gemfile.") if deps.empty?
|
72
72
|
|
73
|
-
deps.each {|dep| Bundler.ui.confirm "#{SharedHelpers.pretty_dependency(dep
|
73
|
+
deps.each {|dep| Bundler.ui.confirm "#{SharedHelpers.pretty_dependency(dep)} was removed." }
|
74
74
|
end
|
75
75
|
|
76
76
|
# Invalidate the cached Bundler.definition.
|
@@ -77,11 +77,9 @@ module Bundler
|
|
77
77
|
source.local!
|
78
78
|
|
79
79
|
candidates = if source.is_a?(Source::Path) || !ruby_platform_materializes_to_ruby_platform?
|
80
|
-
target_platform = ruby_platform_materializes_to_ruby_platform? ? platform :
|
80
|
+
target_platform = ruby_platform_materializes_to_ruby_platform? ? platform : local_platform
|
81
81
|
|
82
|
-
source.specs.search(Dependency.new(name, version))
|
83
|
-
MatchPlatform.platforms_match?(spec.platform, target_platform)
|
84
|
-
end
|
82
|
+
GemHelpers.select_best_platform_match(source.specs.search(Dependency.new(name, version)), target_platform)
|
85
83
|
else
|
86
84
|
source.specs.search(self)
|
87
85
|
end
|
@@ -120,7 +118,7 @@ module Bundler
|
|
120
118
|
end
|
121
119
|
|
122
120
|
def identifier
|
123
|
-
@__identifier ||= [name, version,
|
121
|
+
@__identifier ||= [name, version, platform.to_s]
|
124
122
|
end
|
125
123
|
|
126
124
|
def git_version
|
@@ -128,13 +126,6 @@ module Bundler
|
|
128
126
|
" #{source.revision[0..6]}"
|
129
127
|
end
|
130
128
|
|
131
|
-
protected
|
132
|
-
|
133
|
-
def platform_string
|
134
|
-
platform_string = platform.to_s
|
135
|
-
platform_string == Index::RUBY ? Index::NULL : platform_string
|
136
|
-
end
|
137
|
-
|
138
129
|
private
|
139
130
|
|
140
131
|
def to_ary
|
@@ -151,7 +142,8 @@ module Bundler
|
|
151
142
|
|
152
143
|
#
|
153
144
|
# For backwards compatibility with existing lockfiles, if the most specific
|
154
|
-
# locked platform is
|
145
|
+
# locked platform is not a specific platform like x86_64-linux or
|
146
|
+
# universal-java-11, then we keep the previous behaviour of resolving the
|
155
147
|
# best platform variant at materiliazation time. For previous bundler
|
156
148
|
# versions (before 2.2.0) this was always the case (except when the lockfile
|
157
149
|
# only included non-ruby platforms), but we're also keeping this behaviour
|
@@ -159,7 +151,9 @@ module Bundler
|
|
159
151
|
# explicitly add a more specific platform.
|
160
152
|
#
|
161
153
|
def ruby_platform_materializes_to_ruby_platform?
|
162
|
-
|
154
|
+
generic_platform = generic_local_platform == Gem::Platform::JAVA ? Gem::Platform::JAVA : Gem::Platform::RUBY
|
155
|
+
|
156
|
+
!Bundler.most_specific_locked_platform?(generic_platform) || force_ruby_platform || Bundler.settings[:force_ruby_platform]
|
163
157
|
end
|
164
158
|
end
|
165
159
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-BINSTUBS" "1" "
|
4
|
+
.TH "BUNDLE\-BINSTUBS" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-binstubs\fR \- Install the binstubs of the listed gems
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-CACHE" "1" "
|
4
|
+
.TH "BUNDLE\-CACHE" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-cache\fR \- Package your needed \fB\.gem\fR files into your application
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-CHECK" "1" "
|
4
|
+
.TH "BUNDLE\-CHECK" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-CLEAN" "1" "
|
4
|
+
.TH "BUNDLE\-CLEAN" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-CONSOLE" "1" "
|
4
|
+
.TH "BUNDLE\-CONSOLE" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-console\fR \- Deprecated way to open an IRB session with the bundle pre\-loaded
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-GEM" "1" "
|
4
|
+
.TH "BUNDLE\-GEM" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-INFO" "1" "
|
4
|
+
.TH "BUNDLE\-INFO" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-info\fR \- Show information for the given gem in your bundle
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-INIT" "1" "
|
4
|
+
.TH "BUNDLE\-INIT" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-init\fR \- Generates a Gemfile into the current working directory
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-INJECT" "1" "
|
4
|
+
.TH "BUNDLE\-INJECT" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-inject\fR \- Add named gem(s) with version requirements to Gemfile
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-INSTALL" "1" "
|
4
|
+
.TH "BUNDLE\-INSTALL" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-install\fR \- Install the dependencies specified in your Gemfile
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-LOCK" "1" "
|
4
|
+
.TH "BUNDLE\-LOCK" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-lock\fR \- Creates / Updates a lockfile without installing
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-OPEN" "1" "
|
4
|
+
.TH "BUNDLE\-OPEN" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-open\fR \- Opens the source directory for a gem in your bundle
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-OUTDATED" "1" "
|
4
|
+
.TH "BUNDLE\-OUTDATED" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-outdated\fR \- List installed gems with newer versions available
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-PLATFORM" "1" "
|
4
|
+
.TH "BUNDLE\-PLATFORM" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-platform\fR \- Displays platform compatibility information
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-PRISTINE" "1" "
|
4
|
+
.TH "BUNDLE\-PRISTINE" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-pristine\fR \- Restores installed gems to their pristine condition
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-SHOW" "1" "
|
4
|
+
.TH "BUNDLE\-SHOW" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-show\fR \- Shows all the gems in your bundle, or the path to a gem
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-UPDATE" "1" "
|
4
|
+
.TH "BUNDLE\-UPDATE" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-update\fR \- Update your gems to the latest available versions
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-VIZ" "1" "
|
4
|
+
.TH "BUNDLE\-VIZ" "1" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-viz\fR \- Generates a visual dependency graph for your Gemfile
|
data/lib/bundler/man/bundle.1
CHANGED
data/lib/bundler/man/gemfile.5
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "GEMFILE" "5" "
|
4
|
+
.TH "GEMFILE" "5" "October 2022" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
|
@@ -73,13 +73,13 @@ Credentials in the source URL will take precedence over credentials set using \f
|
|
73
73
|
If your application requires a specific Ruby version or engine, specify your requirements using the \fBruby\fR method, with the following arguments\. All parameters are \fBOPTIONAL\fR unless otherwise specified\.
|
74
74
|
.
|
75
75
|
.SS "VERSION (required)"
|
76
|
-
The version of Ruby that your application requires\. If your application requires an alternate Ruby engine, such as JRuby,
|
76
|
+
The version of Ruby that your application requires\. If your application requires an alternate Ruby engine, such as JRuby, TruffleRuby, etc\., this should be the Ruby version that the engine is compatible with\.
|
77
77
|
.
|
78
78
|
.IP "" 4
|
79
79
|
.
|
80
80
|
.nf
|
81
81
|
|
82
|
-
ruby "1\.
|
82
|
+
ruby "3\.1\.2"
|
83
83
|
.
|
84
84
|
.fi
|
85
85
|
.
|
@@ -95,7 +95,7 @@ What exactly is an Engine? \- A Ruby engine is an implementation of the Ruby lan
|
|
95
95
|
For background: the reference or original implementation of the Ruby programming language is called Matz\'s Ruby Interpreter \fIhttps://en\.wikipedia\.org/wiki/Ruby_MRI\fR, or MRI for short\. This is named after Ruby creator Yukihiro Matsumoto, also known as Matz\. MRI is also known as CRuby, because it is written in C\. MRI is the most widely used Ruby engine\.
|
96
96
|
.
|
97
97
|
.IP "\(bu" 4
|
98
|
-
Other implementations \fIhttps://www\.ruby\-lang\.org/en/about/\fR of Ruby exist\. Some of the more well\-known implementations include
|
98
|
+
Other implementations \fIhttps://www\.ruby\-lang\.org/en/about/\fR of Ruby exist\. Some of the more well\-known implementations include JRuby \fIhttp://jruby\.org/\fR and TruffleRuby \fIhttps://www\.graalvm\.org/ruby/\fR\. Rubinius is an alternative implementation of Ruby written in Ruby\. JRuby is an implementation of Ruby on the JVM, short for Java Virtual Machine\. TruffleRuby is a Ruby implementation on the GraalVM, a language toolkit built on the JVM\.
|
99
99
|
.
|
100
100
|
.IP "" 0
|
101
101
|
.
|
@@ -106,20 +106,23 @@ Each application \fImay\fR specify a Ruby engine version\. If an engine version
|
|
106
106
|
.
|
107
107
|
.nf
|
108
108
|
|
109
|
-
ruby "
|
109
|
+
ruby "2\.6\.8", engine: "jruby", engine_version: "9\.3\.8\.0"
|
110
110
|
.
|
111
111
|
.fi
|
112
112
|
.
|
113
113
|
.IP "" 0
|
114
114
|
.
|
115
115
|
.SS "PATCHLEVEL"
|
116
|
-
Each application \fImay\fR specify a Ruby patchlevel\.
|
116
|
+
Each application \fImay\fR specify a Ruby patchlevel\. Specifying the patchlevel has been meaningless since Ruby 2\.1\.0 was released as the patchlevel is now uniquely determined by a combination of major, minor, and teeny version numbers\.
|
117
|
+
.
|
118
|
+
.P
|
119
|
+
This option was implemented in Bundler 1\.4\.0 for Ruby 2\.0 or earlier\.
|
117
120
|
.
|
118
121
|
.IP "" 4
|
119
122
|
.
|
120
123
|
.nf
|
121
124
|
|
122
|
-
ruby "
|
125
|
+
ruby "3\.1\.2", patchlevel: "20"
|
123
126
|
.
|
124
127
|
.fi
|
125
128
|
.
|
@@ -265,6 +268,14 @@ C Ruby (MRI) only, but not Windows
|
|
265
268
|
Windows C Ruby (MRI), including RubyInstaller 32\-bit and 64\-bit versions
|
266
269
|
.
|
267
270
|
.TP
|
271
|
+
\fBmswin\fR
|
272
|
+
Windows C Ruby (MRI), including RubyInstaller 32\-bit versions
|
273
|
+
.
|
274
|
+
.TP
|
275
|
+
\fBmswin64\fR
|
276
|
+
Windows C Ruby (MRI), including RubyInstaller 64\-bit versions
|
277
|
+
.
|
278
|
+
.TP
|
268
279
|
\fBrbx\fR
|
269
280
|
Rubinius
|
270
281
|
.
|
@@ -277,13 +288,13 @@ JRuby
|
|
277
288
|
TruffleRuby
|
278
289
|
.
|
279
290
|
.P
|
280
|
-
On platforms \fBruby\fR, \fBmri\fR, and \fBwindows\fR, you may additionally specify a version by appending the major and minor version numbers without a delimiter\. For example, to specify that a gem should only be used on platform \fBruby\fR version
|
291
|
+
On platforms \fBruby\fR, \fBmri\fR, \fBmswin\fR, \fBmswin64\fR, and \fBwindows\fR, you may additionally specify a version by appending the major and minor version numbers without a delimiter\. For example, to specify that a gem should only be used on platform \fBruby\fR version 3\.1, use:
|
281
292
|
.
|
282
293
|
.IP "" 4
|
283
294
|
.
|
284
295
|
.nf
|
285
296
|
|
286
|
-
|
297
|
+
ruby_31
|
287
298
|
.
|
288
299
|
.fi
|
289
300
|
.
|
@@ -297,8 +308,8 @@ As with groups (above), you may specify one or more platforms:
|
|
297
308
|
.nf
|
298
309
|
|
299
310
|
gem "weakling", platforms: :jruby
|
300
|
-
gem "ruby\-debug", platforms: :
|
301
|
-
gem "nokogiri", platforms: [:
|
311
|
+
gem "ruby\-debug", platforms: :mri_31
|
312
|
+
gem "nokogiri", platforms: [:windows_31, :jruby]
|
302
313
|
.
|
303
314
|
.fi
|
304
315
|
.
|
@@ -497,7 +508,7 @@ Are both equivalent to
|
|
497
508
|
.
|
498
509
|
.nf
|
499
510
|
|
500
|
-
gem "rails", git: "
|
511
|
+
gem "rails", git: "https://github\.com/rails/rails\.git"
|
501
512
|
.
|
502
513
|
.fi
|
503
514
|
.
|
@@ -64,10 +64,10 @@ All parameters are `OPTIONAL` unless otherwise specified.
|
|
64
64
|
### VERSION (required)
|
65
65
|
|
66
66
|
The version of Ruby that your application requires. If your application
|
67
|
-
requires an alternate Ruby engine, such as JRuby,
|
67
|
+
requires an alternate Ruby engine, such as JRuby, TruffleRuby, etc., this
|
68
68
|
should be the Ruby version that the engine is compatible with.
|
69
69
|
|
70
|
-
ruby "1.
|
70
|
+
ruby "3.1.2"
|
71
71
|
|
72
72
|
### ENGINE
|
73
73
|
|
@@ -86,9 +86,10 @@ What exactly is an Engine?
|
|
86
86
|
|
87
87
|
- [Other implementations](https://www.ruby-lang.org/en/about/) of Ruby exist.
|
88
88
|
Some of the more well-known implementations include
|
89
|
-
[
|
89
|
+
[JRuby](http://jruby.org/) and [TruffleRuby](https://www.graalvm.org/ruby/).
|
90
90
|
Rubinius is an alternative implementation of Ruby written in Ruby.
|
91
91
|
JRuby is an implementation of Ruby on the JVM, short for Java Virtual Machine.
|
92
|
+
TruffleRuby is a Ruby implementation on the GraalVM, a language toolkit built on the JVM.
|
92
93
|
|
93
94
|
### ENGINE VERSION
|
94
95
|
|
@@ -96,13 +97,17 @@ Each application _may_ specify a Ruby engine version. If an engine version is
|
|
96
97
|
specified, an engine _must_ also be specified. If the engine is "ruby" the
|
97
98
|
engine version specified _must_ match the Ruby version.
|
98
99
|
|
99
|
-
ruby "
|
100
|
+
ruby "2.6.8", engine: "jruby", engine_version: "9.3.8.0"
|
100
101
|
|
101
102
|
### PATCHLEVEL
|
102
103
|
|
103
|
-
Each application _may_ specify a Ruby patchlevel.
|
104
|
+
Each application _may_ specify a Ruby patchlevel. Specifying the patchlevel has
|
105
|
+
been meaningless since Ruby 2.1.0 was released as the patchlevel is now
|
106
|
+
uniquely determined by a combination of major, minor, and teeny version numbers.
|
104
107
|
|
105
|
-
|
108
|
+
This option was implemented in Bundler 1.4.0 for Ruby 2.0 or earlier.
|
109
|
+
|
110
|
+
ruby "3.1.2", patchlevel: "20"
|
106
111
|
|
107
112
|
## GEMS
|
108
113
|
|
@@ -195,6 +200,10 @@ There are a number of `Gemfile` platforms:
|
|
195
200
|
C Ruby (MRI) only, but not Windows
|
196
201
|
* `windows`:
|
197
202
|
Windows C Ruby (MRI), including RubyInstaller 32-bit and 64-bit versions
|
203
|
+
* `mswin`:
|
204
|
+
Windows C Ruby (MRI), including RubyInstaller 32-bit versions
|
205
|
+
* `mswin64`:
|
206
|
+
Windows C Ruby (MRI), including RubyInstaller 64-bit versions
|
198
207
|
* `rbx`:
|
199
208
|
Rubinius
|
200
209
|
* `jruby`:
|
@@ -202,17 +211,18 @@ There are a number of `Gemfile` platforms:
|
|
202
211
|
* `truffleruby`:
|
203
212
|
TruffleRuby
|
204
213
|
|
205
|
-
On platforms `ruby`, `mri`, and `windows`, you may
|
206
|
-
by appending the major and minor version numbers
|
207
|
-
to specify that a gem should only be used on
|
214
|
+
On platforms `ruby`, `mri`, `mswin`, `mswin64`, and `windows`, you may
|
215
|
+
additionally specify a version by appending the major and minor version numbers
|
216
|
+
without a delimiter. For example, to specify that a gem should only be used on
|
217
|
+
platform `ruby` version 3.1, use:
|
208
218
|
|
209
|
-
|
219
|
+
ruby_31
|
210
220
|
|
211
221
|
As with groups (above), you may specify one or more platforms:
|
212
222
|
|
213
223
|
gem "weakling", platforms: :jruby
|
214
|
-
gem "ruby-debug", platforms: :
|
215
|
-
gem "nokogiri", platforms: [:
|
224
|
+
gem "ruby-debug", platforms: :mri_31
|
225
|
+
gem "nokogiri", platforms: [:windows_31, :jruby]
|
216
226
|
|
217
227
|
All operations involving groups ([`bundle install`](bundle-install.1.html), `Bundler.setup`,
|
218
228
|
`Bundler.require`) behave exactly the same as if any groups not
|
@@ -369,7 +379,7 @@ same, you can omit one.
|
|
369
379
|
|
370
380
|
Are both equivalent to
|
371
381
|
|
372
|
-
gem "rails", git: "
|
382
|
+
gem "rails", git: "https://github.com/rails/rails.git"
|
373
383
|
|
374
384
|
Since the `github` method is a specialization of `git_source`, it accepts a `:branch` named argument.
|
375
385
|
|
@@ -29,11 +29,15 @@ module Bundler
|
|
29
29
|
@platform = _remote_specification.platform
|
30
30
|
end
|
31
31
|
|
32
|
+
def identifier
|
33
|
+
@__identifier ||= [name, version, @platform.to_s]
|
34
|
+
end
|
35
|
+
|
32
36
|
def full_name
|
33
|
-
if @
|
37
|
+
if @platform == Gem::Platform::RUBY
|
34
38
|
"#{@name}-#{@version}"
|
35
39
|
else
|
36
|
-
"#{@name}-#{@version}-#{@
|
40
|
+
"#{@name}-#{@version}-#{@platform}"
|
37
41
|
end
|
38
42
|
end
|
39
43
|
|
@@ -40,7 +40,7 @@ module Bundler
|
|
40
40
|
base_requirements = {}
|
41
41
|
@base.each do |ls|
|
42
42
|
dep = Dependency.new(ls.name, ls.version)
|
43
|
-
base_requirements[ls.name] =
|
43
|
+
base_requirements[ls.name] = dep
|
44
44
|
end
|
45
45
|
@additional_base_requirements.each {|d| base_requirements[d.name] = d }
|
46
46
|
base_requirements
|
@@ -6,40 +6,23 @@ module Bundler
|
|
6
6
|
attr_accessor :name, :version, :source
|
7
7
|
attr_accessor :activated_platforms, :force_ruby_platform
|
8
8
|
|
9
|
-
def
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
new(specific_platform_specs.first, specs, platforms)
|
16
|
-
end
|
17
|
-
|
18
|
-
def initialize(exemplary_spec, specs, relevant_platforms)
|
19
|
-
@exemplary_spec = exemplary_spec
|
20
|
-
@name = exemplary_spec.name
|
21
|
-
@version = exemplary_spec.version
|
22
|
-
@source = exemplary_spec.source
|
9
|
+
def initialize(specs, relevant_platforms)
|
10
|
+
@exemplary_spec = specs.first
|
11
|
+
@name = @exemplary_spec.name
|
12
|
+
@version = @exemplary_spec.version
|
13
|
+
@source = @exemplary_spec.source
|
23
14
|
|
24
15
|
@activated_platforms = relevant_platforms
|
25
|
-
@dependencies = Hash.new do |dependencies, platforms|
|
26
|
-
dependencies[platforms] = dependencies_for(platforms)
|
27
|
-
end
|
28
16
|
@specs = specs
|
29
17
|
end
|
30
18
|
|
31
19
|
def to_specs
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
lazy_spec.force_ruby_platform = force_ruby_platform
|
39
|
-
lazy_spec.dependencies.replace s.dependencies
|
40
|
-
lazy_spec
|
41
|
-
end
|
42
|
-
end.flatten.compact.uniq
|
20
|
+
@specs.map do |s|
|
21
|
+
lazy_spec = LazySpecification.new(name, version, s.platform, source)
|
22
|
+
lazy_spec.force_ruby_platform = force_ruby_platform
|
23
|
+
lazy_spec.dependencies.replace s.dependencies
|
24
|
+
lazy_spec
|
25
|
+
end
|
43
26
|
end
|
44
27
|
|
45
28
|
def to_s
|
@@ -48,7 +31,9 @@ module Bundler
|
|
48
31
|
end
|
49
32
|
|
50
33
|
def dependencies_for_activated_platforms
|
51
|
-
@
|
34
|
+
@dependencies_for_activated_platforms ||= @specs.map do |spec|
|
35
|
+
__dependencies(spec) + metadata_dependencies(spec)
|
36
|
+
end.flatten.uniq
|
52
37
|
end
|
53
38
|
|
54
39
|
def ==(other)
|
@@ -79,35 +64,28 @@ module Bundler
|
|
79
64
|
|
80
65
|
private
|
81
66
|
|
82
|
-
def
|
83
|
-
platforms.map do |platform|
|
84
|
-
__dependencies(platform) + metadata_dependencies(platform)
|
85
|
-
end.flatten
|
86
|
-
end
|
87
|
-
|
88
|
-
def __dependencies(platform)
|
67
|
+
def __dependencies(spec)
|
89
68
|
dependencies = []
|
90
|
-
|
69
|
+
spec.dependencies.each do |dep|
|
91
70
|
next if dep.type == :development
|
92
|
-
dependencies <<
|
71
|
+
dependencies << Dependency.new(dep.name, dep.requirement)
|
93
72
|
end
|
94
73
|
dependencies
|
95
74
|
end
|
96
75
|
|
97
|
-
def metadata_dependencies(
|
98
|
-
spec = @specs[platform].first
|
76
|
+
def metadata_dependencies(spec)
|
99
77
|
return [] if spec.is_a?(LazySpecification)
|
100
78
|
|
101
79
|
[
|
102
|
-
metadata_dependency("Ruby", spec.required_ruby_version
|
103
|
-
metadata_dependency("RubyGems", spec.required_rubygems_version
|
80
|
+
metadata_dependency("Ruby", spec.required_ruby_version),
|
81
|
+
metadata_dependency("RubyGems", spec.required_rubygems_version),
|
104
82
|
].compact
|
105
83
|
end
|
106
84
|
|
107
|
-
def metadata_dependency(name, requirement
|
85
|
+
def metadata_dependency(name, requirement)
|
108
86
|
return if requirement.nil? || requirement.none?
|
109
87
|
|
110
|
-
|
88
|
+
Dependency.new("#{name}\0", requirement)
|
111
89
|
end
|
112
90
|
end
|
113
91
|
end
|
data/lib/bundler/resolver.rb
CHANGED
@@ -8,22 +8,6 @@ module Bundler
|
|
8
8
|
|
9
9
|
include GemHelpers
|
10
10
|
|
11
|
-
# Figures out the best possible configuration of gems that satisfies
|
12
|
-
# the list of passed dependencies and any child dependencies without
|
13
|
-
# causing any gem activation errors.
|
14
|
-
#
|
15
|
-
# ==== Parameters
|
16
|
-
# *dependencies<Gem::Dependency>:: The list of dependencies to resolve
|
17
|
-
#
|
18
|
-
# ==== Returns
|
19
|
-
# <GemBundle>,nil:: If the list of dependencies can be resolved, a
|
20
|
-
# collection of gemspecs is returned. Otherwise, nil is returned.
|
21
|
-
def self.resolve(requirements, source_requirements = {}, base = [], gem_version_promoter = GemVersionPromoter.new, additional_base_requirements = [], platforms = nil)
|
22
|
-
base = SpecSet.new(base) unless base.is_a?(SpecSet)
|
23
|
-
resolver = new(source_requirements, base, gem_version_promoter, additional_base_requirements, platforms)
|
24
|
-
resolver.start(requirements)
|
25
|
-
end
|
26
|
-
|
27
11
|
def initialize(source_requirements, base, gem_version_promoter, additional_base_requirements, platforms)
|
28
12
|
@source_requirements = source_requirements
|
29
13
|
@base = Resolver::Base.new(base, additional_base_requirements)
|
@@ -116,41 +100,35 @@ module Bundler
|
|
116
100
|
specification.dependencies_for_activated_platforms
|
117
101
|
end
|
118
102
|
|
119
|
-
def search_for(
|
120
|
-
|
121
|
-
|
122
|
-
name = dependency.name
|
123
|
-
@search_for[dependency_proxy] ||= begin
|
103
|
+
def search_for(dependency)
|
104
|
+
@search_for[dependency] ||= begin
|
105
|
+
name = dependency.name
|
124
106
|
locked_results = @base[name].select {|spec| requirement_satisfied_by?(dependency, nil, spec) }
|
125
107
|
locked_requirement = base_requirements[name]
|
126
108
|
results = results_for(dependency) + locked_results
|
127
109
|
results = results.select {|spec| requirement_satisfied_by?(locked_requirement, nil, spec) } if locked_requirement
|
110
|
+
dep_platforms = dependency.gem_platforms(@platforms)
|
128
111
|
|
129
|
-
|
130
|
-
|
112
|
+
@gem_version_promoter.sort_versions(dependency, results).group_by(&:version).reduce([]) do |groups, (_, specs)|
|
113
|
+
relevant_platforms = dep_platforms.select {|platform| specs.any? {|spec| spec.match_platform(platform) } }
|
114
|
+
next groups unless relevant_platforms.any?
|
131
115
|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
116
|
+
ruby_specs = select_best_platform_match(specs, Gem::Platform::RUBY)
|
117
|
+
if ruby_specs.any?
|
118
|
+
spec_group_ruby = SpecGroup.new(ruby_specs, [Gem::Platform::RUBY])
|
119
|
+
spec_group_ruby.force_ruby_platform = dependency.force_ruby_platform
|
120
|
+
groups << spec_group_ruby
|
121
|
+
end
|
138
122
|
|
139
|
-
|
140
|
-
if spec_group_ruby
|
141
|
-
spec_group_ruby.force_ruby_platform = dependency.force_ruby_platform
|
142
|
-
groups << spec_group_ruby
|
143
|
-
end
|
123
|
+
next groups if @resolving_only_for_ruby || dependency.force_ruby_platform
|
144
124
|
|
145
|
-
|
125
|
+
platform_specs = relevant_platforms.flat_map {|platform| select_best_platform_match(specs, platform) }
|
126
|
+
next groups if platform_specs == ruby_specs
|
146
127
|
|
147
|
-
|
148
|
-
|
128
|
+
spec_group = SpecGroup.new(platform_specs, relevant_platforms)
|
129
|
+
groups << spec_group
|
149
130
|
|
150
|
-
|
151
|
-
end
|
152
|
-
else
|
153
|
-
[]
|
131
|
+
groups
|
154
132
|
end
|
155
133
|
end
|
156
134
|
end
|
@@ -181,10 +159,6 @@ module Bundler
|
|
181
159
|
requirement.matches_spec?(spec) || spec.source.is_a?(Source::Gemspec)
|
182
160
|
end
|
183
161
|
|
184
|
-
def dependencies_equal?(dependencies, other_dependencies)
|
185
|
-
dependencies.map(&:dep) == other_dependencies.map(&:dep)
|
186
|
-
end
|
187
|
-
|
188
162
|
def sort_dependencies(dependencies, activated, conflicts)
|
189
163
|
dependencies.sort_by do |dependency|
|
190
164
|
name = name_for(dependency)
|
@@ -196,17 +170,10 @@ module Bundler
|
|
196
170
|
amount_constrained(dependency),
|
197
171
|
conflicts[name] ? 0 : 1,
|
198
172
|
vertex.payload ? 0 : search_for(dependency).count,
|
199
|
-
self.class.platform_sort_key(dependency.__platform),
|
200
173
|
]
|
201
174
|
end
|
202
175
|
end
|
203
176
|
|
204
|
-
def self.platform_sort_key(platform)
|
205
|
-
# Prefer specific platform to not specific platform
|
206
|
-
return ["99-LAST", "", "", ""] if Gem::Platform::RUBY == platform
|
207
|
-
["00", *platform.to_a.map {|part| part || "" }]
|
208
|
-
end
|
209
|
-
|
210
177
|
private
|
211
178
|
|
212
179
|
def base_requirements
|
@@ -261,21 +228,11 @@ module Bundler
|
|
261
228
|
requirements.map! do |requirement|
|
262
229
|
name = requirement.name
|
263
230
|
next requirement if name == "bundler"
|
231
|
+
next if requirement.gem_platforms(@platforms).empty?
|
264
232
|
next requirement unless search_for(requirement).empty?
|
265
233
|
next unless requirement.current_platform?
|
266
234
|
|
267
|
-
|
268
|
-
version = base.first.version
|
269
|
-
message = "You have requested:\n" \
|
270
|
-
" #{name} #{requirement.requirement}\n\n" \
|
271
|
-
"The bundle currently has #{name} locked at #{version}.\n" \
|
272
|
-
"Try running `bundle update #{name}`\n\n" \
|
273
|
-
"If you are updating multiple gems in your Gemfile at once,\n" \
|
274
|
-
"try passing them all to `bundle update`"
|
275
|
-
else
|
276
|
-
message = gem_not_found_message(name, requirement, source_for(name))
|
277
|
-
end
|
278
|
-
raise GemNotFound, message
|
235
|
+
raise GemNotFound, gem_not_found_message(name, requirement, source_for(name))
|
279
236
|
end.compact!
|
280
237
|
end
|
281
238
|
|
@@ -293,7 +250,9 @@ module Bundler
|
|
293
250
|
if specs_matching_requirement.any?
|
294
251
|
specs = specs_matching_requirement
|
295
252
|
matching_part = requirement_label
|
296
|
-
|
253
|
+
platforms = requirement.gem_platforms(@platforms)
|
254
|
+
platform_label = platforms.size == 1 ? "platform '#{platforms.first}" : "platforms '#{platforms.join("', '")}"
|
255
|
+
requirement_label = "#{requirement_label}' with #{platform_label}"
|
297
256
|
end
|
298
257
|
|
299
258
|
message = String.new("Could not find gem '#{requirement_label}'#{extra_message} in #{source}#{cache_message}.\n")
|
@@ -163,7 +163,7 @@ module Bundler
|
|
163
163
|
"\nEither installing with `--full-index` or running `bundle update #{spec.name}` should fix the problem."
|
164
164
|
end
|
165
165
|
|
166
|
-
def pretty_dependency(dep
|
166
|
+
def pretty_dependency(dep)
|
167
167
|
msg = String.new(dep.name)
|
168
168
|
msg << " (#{dep.requirement})" unless dep.requirement == Gem::Requirement.default
|
169
169
|
|
@@ -172,7 +172,6 @@ module Bundler
|
|
172
172
|
msg << " " << platform_string if !platform_string.empty? && platform_string != Gem::Platform::RUBY
|
173
173
|
end
|
174
174
|
|
175
|
-
msg << " from the `#{dep.source}` source" if print_source && dep.source
|
176
175
|
msg
|
177
176
|
end
|
178
177
|
|
data/lib/bundler/version.rb
CHANGED
data/lib/bundler.rb
CHANGED
@@ -41,7 +41,6 @@ module Bundler
|
|
41
41
|
|
42
42
|
autoload :Definition, File.expand_path("bundler/definition", __dir__)
|
43
43
|
autoload :Dependency, File.expand_path("bundler/dependency", __dir__)
|
44
|
-
autoload :DepProxy, File.expand_path("bundler/dep_proxy", __dir__)
|
45
44
|
autoload :Deprecate, File.expand_path("bundler/deprecate", __dir__)
|
46
45
|
autoload :Digest, File.expand_path("bundler/digest", __dir__)
|
47
46
|
autoload :Dsl, File.expand_path("bundler/dsl", __dir__)
|
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.3.
|
4
|
+
version: 2.3.25
|
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: 2022-
|
25
|
+
date: 2022-11-02 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
|
@@ -80,7 +80,6 @@ files:
|
|
80
80
|
- lib/bundler/constants.rb
|
81
81
|
- lib/bundler/current_ruby.rb
|
82
82
|
- lib/bundler/definition.rb
|
83
|
-
- lib/bundler/dep_proxy.rb
|
84
83
|
- lib/bundler/dependency.rb
|
85
84
|
- lib/bundler/deployment.rb
|
86
85
|
- lib/bundler/deprecate.rb
|
@@ -380,7 +379,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
380
379
|
- !ruby/object:Gem::Version
|
381
380
|
version: 2.5.2
|
382
381
|
requirements: []
|
383
|
-
rubygems_version: 3.3.
|
382
|
+
rubygems_version: 3.3.25
|
384
383
|
signing_key:
|
385
384
|
specification_version: 4
|
386
385
|
summary: The best way to manage your application's dependencies
|
data/lib/bundler/dep_proxy.rb
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Bundler
|
4
|
-
class DepProxy
|
5
|
-
attr_reader :__platform, :dep
|
6
|
-
|
7
|
-
@proxies = {}
|
8
|
-
|
9
|
-
def self.get_proxy(dep, platform)
|
10
|
-
@proxies[[dep, platform]] ||= new(dep, platform).freeze
|
11
|
-
end
|
12
|
-
|
13
|
-
def initialize(dep, platform)
|
14
|
-
@dep = dep
|
15
|
-
@__platform = platform
|
16
|
-
end
|
17
|
-
|
18
|
-
private_class_method :new
|
19
|
-
|
20
|
-
alias_method :eql?, :==
|
21
|
-
|
22
|
-
def type
|
23
|
-
@dep.type
|
24
|
-
end
|
25
|
-
|
26
|
-
def name
|
27
|
-
@dep.name
|
28
|
-
end
|
29
|
-
|
30
|
-
def requirement
|
31
|
-
@dep.requirement
|
32
|
-
end
|
33
|
-
|
34
|
-
def to_s
|
35
|
-
s = name.dup
|
36
|
-
s << " (#{requirement})" unless requirement == Gem::Requirement.default
|
37
|
-
s << " #{__platform}" unless __platform == Gem::Platform::RUBY
|
38
|
-
s
|
39
|
-
end
|
40
|
-
|
41
|
-
def dup
|
42
|
-
raise NoMethodError.new("DepProxy cannot be duplicated")
|
43
|
-
end
|
44
|
-
|
45
|
-
def clone
|
46
|
-
raise NoMethodError.new("DepProxy cannot be cloned")
|
47
|
-
end
|
48
|
-
|
49
|
-
private
|
50
|
-
|
51
|
-
def method_missing(*args, &blk)
|
52
|
-
@dep.send(*args, &blk)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|