bundler 2.4.18 → 2.4.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/cli/binstubs.rb +1 -1
- data/lib/bundler/cli/info.rb +1 -1
- data/lib/bundler/cli/install.rb +1 -1
- data/lib/bundler/cli/outdated.rb +1 -1
- data/lib/bundler/cli/platform.rb +7 -5
- data/lib/bundler/definition.rb +25 -20
- data/lib/bundler/dsl.rb +1 -1
- data/lib/bundler/env.rb +1 -1
- data/lib/bundler/fetcher/compact_index.rb +3 -3
- data/lib/bundler/fetcher/downloader.rb +2 -0
- data/lib/bundler/fetcher/index.rb +1 -2
- data/lib/bundler/fetcher.rb +11 -1
- data/lib/bundler/friendly_errors.rb +1 -1
- data/lib/bundler/gem_helper.rb +3 -4
- data/lib/bundler/installer/parallel_installer.rb +1 -1
- 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 +3 -3
- data/lib/bundler/man/bundle-info.1.ronn +3 -3
- 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 +14 -1
- data/lib/bundler/man/gemfile.5.ronn +5 -0
- data/lib/bundler/plugin/index.rb +1 -1
- data/lib/bundler/ruby_dsl.rb +6 -0
- data/lib/bundler/ruby_version.rb +2 -2
- data/lib/bundler/rubygems_integration.rb +1 -1
- data/lib/bundler/source/git.rb +7 -0
- data/lib/bundler/source_list.rb +0 -4
- data/lib/bundler/ui/rg_proxy.rb +1 -1
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9e1ac32a1ea746c717048bdfc433edc9d61cd2184f6d07b24e6addb565c1693
|
4
|
+
data.tar.gz: 95ab89a536022f9c642dd02683640819134441441dd0c4ae7b1cb0e9dd561a68
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1cda1a2dfbdf88aaf7627304dc8fc740d3e4343b6d4f0e97a6473dc168b3b78c1128973251625beeee479a0418c25972f7dedb0cbcc9e107666fcdad32c991c8
|
7
|
+
data.tar.gz: e4589afe5650d8a937a2c56196221db8ce72d8cb91539ca0fceb9ad742d542ab4415b5253e6ffa3c8b03ccaac3dc6e8fe3b25d61cb17cd9155cc50d16dc44d4c
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
# 2.4.19 (August 17, 2023)
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
- Add `file` option to `ruby` method in Gemfile [#6876](https://github.com/rubygems/rubygems/pull/6876)
|
6
|
+
- Show better error when PAT can't authenticate to a private server [#6871](https://github.com/rubygems/rubygems/pull/6871)
|
7
|
+
- Don't fallback to old dependency API when bad credentials are configured [#6869](https://github.com/rubygems/rubygems/pull/6869)
|
8
|
+
|
9
|
+
## Bug fixes:
|
10
|
+
|
11
|
+
- Fix git source conservativeness [#6850](https://github.com/rubygems/rubygems/pull/6850)
|
12
|
+
|
13
|
+
## Documentation:
|
14
|
+
|
15
|
+
- Clarify that `bundle info` takes a gem name [#6875](https://github.com/rubygems/rubygems/pull/6875)
|
16
|
+
|
1
17
|
# 2.4.18 (August 2, 2023)
|
2
18
|
|
3
19
|
## 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-08-
|
8
|
-
@git_commit_sha = "
|
7
|
+
@built_at = "2023-08-17".freeze
|
8
|
+
@git_commit_sha = "86f98098e3".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
data/lib/bundler/cli/binstubs.rb
CHANGED
@@ -11,7 +11,7 @@ module Bundler
|
|
11
11
|
def run
|
12
12
|
Bundler.definition.validate_runtime!
|
13
13
|
path_option = options["path"]
|
14
|
-
path_option = nil if path_option
|
14
|
+
path_option = nil if path_option&.empty?
|
15
15
|
Bundler.settings.set_command_option :bin, path_option if options["path"]
|
16
16
|
Bundler.settings.set_command_option_if_given :shebang, options["shebang"]
|
17
17
|
installer = Installer.new(Bundler.root, Bundler.definition)
|
data/lib/bundler/cli/info.rb
CHANGED
@@ -33,7 +33,7 @@ module Bundler
|
|
33
33
|
def default_gem_spec(gem_name)
|
34
34
|
return unless Gem::Specification.respond_to?(:find_all_by_name)
|
35
35
|
gem_spec = Gem::Specification.find_all_by_name(gem_name).last
|
36
|
-
return gem_spec if gem_spec
|
36
|
+
return gem_spec if gem_spec&.default_gem?
|
37
37
|
end
|
38
38
|
|
39
39
|
def spec_not_found(gem_name)
|
data/lib/bundler/cli/install.rb
CHANGED
@@ -154,7 +154,7 @@ module Bundler
|
|
154
154
|
end
|
155
155
|
|
156
156
|
bin_option = options["binstubs"]
|
157
|
-
bin_option = nil if bin_option
|
157
|
+
bin_option = nil if bin_option&.empty?
|
158
158
|
Bundler.settings.set_command_option :bin, bin_option if options["binstubs"]
|
159
159
|
|
160
160
|
Bundler.settings.set_command_option_if_given :shebang, options["shebang"]
|
data/lib/bundler/cli/outdated.rb
CHANGED
data/lib/bundler/cli/platform.rb
CHANGED
@@ -8,12 +8,12 @@ module Bundler
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def run
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
locked_ruby_version || gemfile_ruby_version]
|
11
|
+
ruby_version = if Bundler.locked_gems
|
12
|
+
Bundler.locked_gems.ruby_version&.gsub(/p\d+\Z/, "")
|
13
|
+
else
|
14
|
+
Bundler.definition.ruby_version&.single_version_string
|
16
15
|
end
|
16
|
+
|
17
17
|
output = []
|
18
18
|
|
19
19
|
if options[:ruby]
|
@@ -23,6 +23,8 @@ module Bundler
|
|
23
23
|
output << "No ruby version specified"
|
24
24
|
end
|
25
25
|
else
|
26
|
+
platforms = Bundler.definition.platforms.map {|p| "* #{p}" }
|
27
|
+
|
26
28
|
output << "Your platform is: #{Gem::Platform.local}"
|
27
29
|
output << "Your app has gems that work on these platforms:\n#{platforms.join("\n")}"
|
28
30
|
|
data/lib/bundler/definition.rb
CHANGED
@@ -390,8 +390,8 @@ module Bundler
|
|
390
390
|
both_sources.each do |name, (dep, lock_dep)|
|
391
391
|
next if dep.nil? || lock_dep.nil?
|
392
392
|
|
393
|
-
gemfile_source = dep.source ||
|
394
|
-
lock_source = lock_dep.source ||
|
393
|
+
gemfile_source = dep.source || default_source
|
394
|
+
lock_source = lock_dep.source || default_source
|
395
395
|
next if lock_source.include?(gemfile_source)
|
396
396
|
|
397
397
|
gemfile_source_name = dep.source ? gemfile_source.to_gemfile : "no specified source"
|
@@ -671,8 +671,8 @@ module Bundler
|
|
671
671
|
|
672
672
|
Bundler.settings.local_overrides.map do |k, v|
|
673
673
|
spec = @dependencies.find {|s| s.name == k }
|
674
|
-
source = spec
|
675
|
-
if source
|
674
|
+
source = spec&.source
|
675
|
+
if source&.respond_to?(:local_override!)
|
676
676
|
source.unlock! if @unlock[:gems].include?(spec.name)
|
677
677
|
locals << [source, source.local_override!(v)]
|
678
678
|
end
|
@@ -805,26 +805,27 @@ module Bundler
|
|
805
805
|
|
806
806
|
def converge_specs(specs)
|
807
807
|
converged = []
|
808
|
-
|
809
|
-
deps = @dependencies.select do |dep|
|
810
|
-
specs[dep].any? {|s| s.satisfies?(dep) && (!dep.source || s.source.include?(dep.source)) }
|
811
|
-
end
|
808
|
+
deps = []
|
812
809
|
|
813
810
|
@specs_that_changed_sources = []
|
814
811
|
|
815
812
|
specs.each do |s|
|
813
|
+
name = s.name
|
816
814
|
dep = @dependencies.find {|d| s.satisfies?(d) }
|
815
|
+
lockfile_source = s.source
|
817
816
|
|
818
|
-
|
819
|
-
|
820
|
-
gemfile_source = dep.source
|
821
|
-
lockfile_source = s.source
|
817
|
+
if dep
|
818
|
+
gemfile_source = dep.source || default_source
|
822
819
|
|
823
820
|
@specs_that_changed_sources << s if gemfile_source != lockfile_source
|
821
|
+
deps << dep if !dep.source || lockfile_source.include?(dep.source)
|
822
|
+
@unlock[:gems] << name if lockfile_source.include?(dep.source) && lockfile_source != gemfile_source
|
824
823
|
|
825
|
-
|
824
|
+
# Replace the locked dependency's source with the equivalent source from the Gemfile
|
825
|
+
s.source = gemfile_source
|
826
826
|
else
|
827
|
-
|
827
|
+
# Replace the locked dependency's source with the default source, if the locked source is no longer in the Gemfile
|
828
|
+
s.source = default_source unless sources.get(lockfile_source)
|
828
829
|
end
|
829
830
|
|
830
831
|
next if @unlock[:sources].include?(s.source.name)
|
@@ -833,9 +834,9 @@ module Bundler
|
|
833
834
|
if s.source.instance_of?(Source::Path) || s.source.instance_of?(Source::Gemspec)
|
834
835
|
new_specs = begin
|
835
836
|
s.source.specs
|
836
|
-
rescue PathError
|
837
|
+
rescue PathError
|
837
838
|
# if we won't need the source (according to the lockfile),
|
838
|
-
# don't error if the path
|
839
|
+
# don't error if the path source isn't available
|
839
840
|
next if specs.
|
840
841
|
for(requested_dependencies, false).
|
841
842
|
none? {|locked_spec| locked_spec.source == s.source }
|
@@ -849,11 +850,11 @@ module Bundler
|
|
849
850
|
else
|
850
851
|
# If the spec is no longer in the path source, unlock it. This
|
851
852
|
# commonly happens if the version changed in the gemspec
|
852
|
-
@unlock[:gems] <<
|
853
|
+
@unlock[:gems] << name
|
853
854
|
end
|
854
855
|
end
|
855
856
|
|
856
|
-
if dep.nil? && requested_dependencies.find {|d|
|
857
|
+
if dep.nil? && requested_dependencies.find {|d| name == d.name }
|
857
858
|
@unlock[:gems] << s.name
|
858
859
|
else
|
859
860
|
converged << s
|
@@ -877,7 +878,7 @@ module Bundler
|
|
877
878
|
source_requirements = if precompute_source_requirements_for_indirect_dependencies?
|
878
879
|
all_requirements = source_map.all_requirements
|
879
880
|
all_requirements = pin_locally_available_names(all_requirements) if @prefer_local
|
880
|
-
{ :default =>
|
881
|
+
{ :default => default_source }.merge(all_requirements)
|
881
882
|
else
|
882
883
|
{ :default => Source::RubygemsAggregate.new(sources, source_map) }.merge(source_map.direct_requirements)
|
883
884
|
end
|
@@ -886,7 +887,7 @@ module Bundler
|
|
886
887
|
source_requirements[dep.name] = sources.metadata_source
|
887
888
|
end
|
888
889
|
|
889
|
-
default_bundler_source = source_requirements["bundler"] ||
|
890
|
+
default_bundler_source = source_requirements["bundler"] || default_source
|
890
891
|
|
891
892
|
if @unlocking_bundler
|
892
893
|
default_bundler_source.add_dependency_names("bundler")
|
@@ -899,6 +900,10 @@ module Bundler
|
|
899
900
|
source_requirements
|
900
901
|
end
|
901
902
|
|
903
|
+
def default_source
|
904
|
+
sources.default_source
|
905
|
+
end
|
906
|
+
|
902
907
|
def verify_changed_sources!
|
903
908
|
@specs_that_changed_sources.each do |s|
|
904
909
|
if s.source.specs.search(s.name).empty?
|
data/lib/bundler/dsl.rb
CHANGED
@@ -41,7 +41,7 @@ module Bundler
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def eval_gemfile(gemfile, contents = nil)
|
44
|
-
expanded_gemfile_path = Pathname.new(gemfile).expand_path(@gemfile
|
44
|
+
expanded_gemfile_path = Pathname.new(gemfile).expand_path(@gemfile&.parent)
|
45
45
|
original_gemfile = @gemfile
|
46
46
|
@gemfile = expanded_gemfile_path
|
47
47
|
@gemfiles << expanded_gemfile_path
|
data/lib/bundler/env.rb
CHANGED
@@ -122,7 +122,7 @@ module Bundler
|
|
122
122
|
specs = Bundler.rubygems.find_name(name)
|
123
123
|
out << [" #{name}", "(#{specs.map(&:version).join(",")})"] unless specs.empty?
|
124
124
|
end
|
125
|
-
if (exe = caller.last.split(":").first)
|
125
|
+
if (exe = caller.last.split(":").first)&.match? %r{(exe|bin)/bundler?\z}
|
126
126
|
shebang = File.read(exe).lines.first
|
127
127
|
shebang.sub!(/^#!\s*/, "")
|
128
128
|
unless shebang.start_with?(Gem.ruby, "/usr/bin/env ruby")
|
@@ -15,7 +15,7 @@ module Bundler
|
|
15
15
|
method.bind(self).call(*args, &blk)
|
16
16
|
rescue NetworkDownError, CompactIndexClient::Updater::MisMatchedChecksumError => e
|
17
17
|
raise HTTPError, e.message
|
18
|
-
rescue AuthenticationRequiredError
|
18
|
+
rescue AuthenticationRequiredError, BadAuthenticationError
|
19
19
|
# Fail since we got a 401 from the server.
|
20
20
|
raise
|
21
21
|
rescue HTTPError => e
|
@@ -40,7 +40,7 @@ module Bundler
|
|
40
40
|
deps = begin
|
41
41
|
parallel_compact_index_client.dependencies(remaining_gems)
|
42
42
|
rescue TooManyRequestsError
|
43
|
-
@bundle_worker
|
43
|
+
@bundle_worker&.stop
|
44
44
|
@bundle_worker = nil # reset it. Not sure if necessary
|
45
45
|
serial_compact_index_client.dependencies(remaining_gems)
|
46
46
|
end
|
@@ -49,7 +49,7 @@ module Bundler
|
|
49
49
|
complete_gems.concat(deps.map(&:first)).uniq!
|
50
50
|
remaining_gems = next_gems - complete_gems
|
51
51
|
end
|
52
|
-
@bundle_worker
|
52
|
+
@bundle_worker&.stop
|
53
53
|
@bundle_worker = nil # reset it. Not sure if necessary
|
54
54
|
|
55
55
|
gem_info
|
@@ -41,6 +41,8 @@ module Bundler
|
|
41
41
|
when Net::HTTPUnauthorized
|
42
42
|
raise BadAuthenticationError, uri.host if uri.userinfo
|
43
43
|
raise AuthenticationRequiredError, uri.host
|
44
|
+
when Net::HTTPForbidden
|
45
|
+
raise AuthenticationForbiddenError, uri.host
|
44
46
|
when Net::HTTPNotFound
|
45
47
|
raise FallbackError, "Net::HTTPNotFound: #{filtered_uri}"
|
46
48
|
else
|
@@ -15,8 +15,7 @@ module Bundler
|
|
15
15
|
raise BadAuthenticationError, remote_uri if remote_uri.userinfo
|
16
16
|
raise AuthenticationRequiredError, remote_uri
|
17
17
|
when /403/
|
18
|
-
raise
|
19
|
-
raise AuthenticationRequiredError, remote_uri
|
18
|
+
raise AuthenticationForbiddenError, remote_uri
|
20
19
|
else
|
21
20
|
raise HTTPError, "Could not fetch specs from #{display_uri} due to underlying error <#{e.message}>"
|
22
21
|
end
|
data/lib/bundler/fetcher.rb
CHANGED
@@ -61,6 +61,16 @@ module Bundler
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
+
# This error is raised if HTTP authentication is correct, but lacks
|
65
|
+
# necessary permissions.
|
66
|
+
class AuthenticationForbiddenError < HTTPError
|
67
|
+
def initialize(remote_uri)
|
68
|
+
remote_uri = filter_uri(remote_uri)
|
69
|
+
super "Access token could not be authenticated for #{remote_uri}.\n" \
|
70
|
+
"Make sure it's valid and has the necessary scopes configured."
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
64
74
|
# Exceptions classes that should bypass retry attempts. If your password didn't work the
|
65
75
|
# first time, it's not going to the third time.
|
66
76
|
NET_ERRORS = [:HTTPBadGateway, :HTTPBadRequest, :HTTPFailedDependency,
|
@@ -70,7 +80,7 @@ module Bundler
|
|
70
80
|
:HTTPRequestURITooLong, :HTTPUnauthorized, :HTTPUnprocessableEntity,
|
71
81
|
:HTTPUnsupportedMediaType, :HTTPVersionNotSupported].freeze
|
72
82
|
FAIL_ERRORS = begin
|
73
|
-
fail_errors = [AuthenticationRequiredError, BadAuthenticationError, FallbackError]
|
83
|
+
fail_errors = [AuthenticationRequiredError, BadAuthenticationError, AuthenticationForbiddenError, FallbackError]
|
74
84
|
fail_errors << Gem::Requirement::BadRequirementError
|
75
85
|
fail_errors.concat(NET_ERRORS.map {|e| Net.const_get(e) })
|
76
86
|
end.freeze
|
data/lib/bundler/gem_helper.rb
CHANGED
@@ -21,7 +21,7 @@ module Bundler
|
|
21
21
|
|
22
22
|
def gemspec(&block)
|
23
23
|
gemspec = instance.gemspec
|
24
|
-
block
|
24
|
+
block&.call(gemspec)
|
25
25
|
gemspec
|
26
26
|
end
|
27
27
|
end
|
@@ -152,8 +152,7 @@ module Bundler
|
|
152
152
|
|
153
153
|
def gem_push_host
|
154
154
|
env_rubygems_host = ENV["RUBYGEMS_HOST"]
|
155
|
-
env_rubygems_host = nil if
|
156
|
-
env_rubygems_host && env_rubygems_host.empty?
|
155
|
+
env_rubygems_host = nil if env_rubygems_host&.empty?
|
157
156
|
|
158
157
|
allowed_push_host || env_rubygems_host || "rubygems.org"
|
159
158
|
end
|
@@ -218,7 +217,7 @@ module Bundler
|
|
218
217
|
SharedHelpers.chdir(base) do
|
219
218
|
outbuf = IO.popen(cmd, :err => [:child, :out], &:read)
|
220
219
|
status = $?
|
221
|
-
block
|
220
|
+
block&.call(outbuf) if status.success?
|
222
221
|
[outbuf, status]
|
223
222
|
end
|
224
223
|
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\-CACHE" "1" "
|
4
|
+
.TH "BUNDLE\-CACHE" "1" "August 2023" "" ""
|
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" "August 2023" "" ""
|
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\-CONSOLE" "1" "
|
4
|
+
.TH "BUNDLE\-CONSOLE" "1" "August 2023" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-console\fR \- Deprecated way to open an IRB session with the bundle pre\-loaded
|
@@ -1,16 +1,16 @@
|
|
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" "August 2023" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-info\fR \- Show information for the given gem in your bundle
|
8
8
|
.
|
9
9
|
.SH "SYNOPSIS"
|
10
|
-
\fBbundle info\fR [
|
10
|
+
\fBbundle info\fR [GEM_NAME] [\-\-path]
|
11
11
|
.
|
12
12
|
.SH "DESCRIPTION"
|
13
|
-
|
13
|
+
Given a gem name present in your bundle, print the basic information about it such as homepage, version, path and summary\.
|
14
14
|
.
|
15
15
|
.SH "OPTIONS"
|
16
16
|
.
|
@@ -3,13 +3,13 @@ bundle-info(1) -- Show information for the given gem in your bundle
|
|
3
3
|
|
4
4
|
## SYNOPSIS
|
5
5
|
|
6
|
-
`bundle info` [
|
6
|
+
`bundle info` [GEM_NAME]
|
7
7
|
[--path]
|
8
8
|
|
9
9
|
## DESCRIPTION
|
10
10
|
|
11
|
-
|
12
|
-
path and summary.
|
11
|
+
Given a gem name present in your bundle, print the basic information about it
|
12
|
+
such as homepage, version, path and summary.
|
13
13
|
|
14
14
|
## OPTIONS
|
15
15
|
|
@@ -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" "August 2023" "" ""
|
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" "August 2023" "" ""
|
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" "August 2023" "" ""
|
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\-OUTDATED" "1" "
|
4
|
+
.TH "BUNDLE\-OUTDATED" "1" "August 2023" "" ""
|
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" "August 2023" "" ""
|
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" "August 2023" "" ""
|
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" "August 2023" "" ""
|
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" "August 2023" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-update\fR \- Update your gems to the latest available versions
|
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" "August 2023" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
|
@@ -85,6 +85,19 @@ ruby "3\.1\.2"
|
|
85
85
|
.
|
86
86
|
.IP "" 0
|
87
87
|
.
|
88
|
+
.P
|
89
|
+
If you wish to derive your Ruby version from a version file (ie \.ruby\-version), you can use the \fBfile\fR option instead\.
|
90
|
+
.
|
91
|
+
.IP "" 4
|
92
|
+
.
|
93
|
+
.nf
|
94
|
+
|
95
|
+
ruby file: "\.ruby\-version"
|
96
|
+
.
|
97
|
+
.fi
|
98
|
+
.
|
99
|
+
.IP "" 0
|
100
|
+
.
|
88
101
|
.SS "ENGINE"
|
89
102
|
Each application \fImay\fR specify a Ruby engine\. If an engine is specified, an engine version \fImust\fR also be specified\.
|
90
103
|
.
|
@@ -69,6 +69,11 @@ should be the Ruby version that the engine is compatible with.
|
|
69
69
|
|
70
70
|
ruby "3.1.2"
|
71
71
|
|
72
|
+
If you wish to derive your Ruby version from a version file (ie .ruby-version),
|
73
|
+
you can use the `file` option instead.
|
74
|
+
|
75
|
+
ruby file: ".ruby-version"
|
76
|
+
|
72
77
|
### ENGINE
|
73
78
|
|
74
79
|
Each application _may_ specify a Ruby engine. If an engine is specified, an
|
data/lib/bundler/plugin/index.rb
CHANGED
@@ -146,7 +146,7 @@ module Bundler
|
|
146
146
|
# @param [Boolean] is the index file global index
|
147
147
|
def load_index(index_file, global = false)
|
148
148
|
SharedHelpers.filesystem_access(index_file, :read) do |index_f|
|
149
|
-
valid_file = index_f
|
149
|
+
valid_file = index_f&.exist? && !index_f.size.zero?
|
150
150
|
break unless valid_file
|
151
151
|
|
152
152
|
data = index_f.read
|
data/lib/bundler/ruby_dsl.rb
CHANGED
@@ -5,9 +5,15 @@ module Bundler
|
|
5
5
|
def ruby(*ruby_version)
|
6
6
|
options = ruby_version.last.is_a?(Hash) ? ruby_version.pop : {}
|
7
7
|
ruby_version.flatten!
|
8
|
+
|
8
9
|
raise GemfileError, "Please define :engine_version" if options[:engine] && options[:engine_version].nil?
|
9
10
|
raise GemfileError, "Please define :engine" if options[:engine_version] && options[:engine].nil?
|
10
11
|
|
12
|
+
if options[:file]
|
13
|
+
raise GemfileError, "Cannot specify version when using the file option" if ruby_version.any?
|
14
|
+
ruby_version << Bundler.read_file(options[:file]).strip
|
15
|
+
end
|
16
|
+
|
11
17
|
if options[:engine] == "ruby" && options[:engine_version] &&
|
12
18
|
ruby_version != Array(options[:engine_version])
|
13
19
|
raise GemfileEvalError, "ruby_version must match the :engine_version for MRI"
|
data/lib/bundler/ruby_version.rb
CHANGED
@@ -28,8 +28,8 @@ module Bundler
|
|
28
28
|
end
|
29
29
|
|
30
30
|
@gem_version = Gem::Requirement.create(@versions.first).requirements.first.last
|
31
|
-
@input_engine = engine
|
32
|
-
@engine = engine
|
31
|
+
@input_engine = engine&.to_s
|
32
|
+
@engine = engine&.to_s || "ruby"
|
33
33
|
@engine_versions = (engine_version && Array(engine_version)) || @versions
|
34
34
|
@engine_gem_version = Gem::Requirement.create(@engine_versions.first).requirements.first.last
|
35
35
|
@patchlevel = patchlevel || (@gem_version.prerelease? ? "-1" : nil)
|
@@ -247,7 +247,7 @@ module Bundler
|
|
247
247
|
kernel = (class << ::Kernel; self; end)
|
248
248
|
[kernel, ::Kernel].each do |kernel_class|
|
249
249
|
redefine_method(kernel_class, :gem) do |dep, *reqs|
|
250
|
-
if executables
|
250
|
+
if executables&.include?(File.basename(caller.first.split(":").first))
|
251
251
|
break
|
252
252
|
end
|
253
253
|
|
data/lib/bundler/source/git.rb
CHANGED
@@ -67,6 +67,13 @@ module Bundler
|
|
67
67
|
|
68
68
|
alias_method :==, :eql?
|
69
69
|
|
70
|
+
def include?(other)
|
71
|
+
other.is_a?(Git) && uri == other.uri &&
|
72
|
+
name == other.name &&
|
73
|
+
glob == other.glob &&
|
74
|
+
submodules == other.submodules
|
75
|
+
end
|
76
|
+
|
70
77
|
def to_s
|
71
78
|
begin
|
72
79
|
at = humanized_ref || current_branch
|
data/lib/bundler/source_list.rb
CHANGED
@@ -101,10 +101,6 @@ module Bundler
|
|
101
101
|
source_list_for(source).find {|s| equivalent_source?(source, s) }
|
102
102
|
end
|
103
103
|
|
104
|
-
def get_with_fallback(source)
|
105
|
-
get(source) || default_source
|
106
|
-
end
|
107
|
-
|
108
104
|
def lock_sources
|
109
105
|
lock_other_sources + lock_rubygems_sources
|
110
106
|
end
|
data/lib/bundler/ui/rg_proxy.rb
CHANGED
data/lib/bundler/version.rb
CHANGED
data/lib/bundler.rb
CHANGED
@@ -524,7 +524,7 @@ EOF
|
|
524
524
|
@gemspec_cache[key] ||= load_gemspec_uncached(file, validate)
|
525
525
|
# Protect against caching side-effected gemspecs by returning a
|
526
526
|
# new instance each time.
|
527
|
-
@gemspec_cache[key]
|
527
|
+
@gemspec_cache[key]&.dup
|
528
528
|
end
|
529
529
|
|
530
530
|
def load_gemspec_uncached(file, validate = false)
|
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.19
|
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-08-
|
25
|
+
date: 2023-08-17 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
|
@@ -381,7 +381,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
381
381
|
- !ruby/object:Gem::Version
|
382
382
|
version: 3.0.1
|
383
383
|
requirements: []
|
384
|
-
rubygems_version: 3.4.
|
384
|
+
rubygems_version: 3.4.19
|
385
385
|
signing_key:
|
386
386
|
specification_version: 4
|
387
387
|
summary: The best way to manage your application's dependencies
|