bundler 2.4.18 → 2.4.19
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 +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
|