bundler 1.17.0.pre.2 → 2.1.0.pre.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of bundler might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +769 -570
- data/LICENSE.md +18 -19
- data/README.md +9 -8
- data/bundler.gemspec +12 -23
- data/exe/bundle +19 -3
- data/lib/bundler.rb +121 -68
- data/lib/bundler/build_metadata.rb +14 -7
- data/lib/bundler/capistrano.rb +4 -4
- data/lib/bundler/cli.rb +129 -121
- data/lib/bundler/cli/add.rb +27 -16
- data/lib/bundler/cli/common.rb +11 -12
- data/lib/bundler/cli/config.rb +161 -86
- data/lib/bundler/cli/console.rb +1 -1
- data/lib/bundler/cli/doctor.rb +4 -4
- data/lib/bundler/cli/exec.rb +4 -9
- data/lib/bundler/cli/gem.rb +5 -5
- data/lib/bundler/cli/info.rb +17 -5
- data/lib/bundler/cli/init.rb +1 -1
- data/lib/bundler/cli/install.rb +11 -10
- data/lib/bundler/cli/issue.rb +3 -3
- data/lib/bundler/cli/open.rb +10 -6
- data/lib/bundler/cli/outdated.rb +85 -81
- data/lib/bundler/cli/package.rb +8 -9
- data/lib/bundler/cli/plugin.rb +9 -2
- data/lib/bundler/cli/pristine.rb +1 -1
- data/lib/bundler/cli/show.rb +1 -1
- data/lib/bundler/cli/update.rb +31 -11
- data/lib/bundler/compact_index_client.rb +25 -9
- data/lib/bundler/compact_index_client/updater.rb +2 -6
- data/lib/bundler/current_ruby.rb +9 -7
- data/lib/bundler/definition.rb +35 -26
- data/lib/bundler/dependency.rb +16 -4
- data/lib/bundler/deployment.rb +1 -1
- data/lib/bundler/dsl.rb +15 -39
- data/lib/bundler/env.rb +8 -13
- data/lib/bundler/environment_preserver.rb +0 -1
- data/lib/bundler/feature_flag.rb +23 -32
- data/lib/bundler/fetcher.rb +14 -11
- data/lib/bundler/fetcher/compact_index.rb +26 -12
- data/lib/bundler/fetcher/dependency.rb +1 -1
- data/lib/bundler/fetcher/downloader.rb +4 -1
- data/lib/bundler/fetcher/index.rb +4 -2
- data/lib/bundler/friendly_errors.rb +4 -5
- data/lib/bundler/gem_helper.rb +39 -24
- data/lib/bundler/gem_helpers.rb +2 -4
- data/lib/bundler/gem_tasks.rb +1 -1
- data/lib/bundler/gem_version_promoter.rb +3 -3
- data/lib/bundler/graph.rb +2 -2
- data/lib/bundler/injector.rb +10 -8
- data/lib/bundler/inline.rb +19 -18
- data/lib/bundler/installer.rb +7 -14
- data/lib/bundler/installer/gem_installer.rb +5 -1
- data/lib/bundler/installer/parallel_installer.rb +4 -8
- data/lib/bundler/installer/standalone.rb +1 -2
- data/lib/bundler/lazy_specification.rb +2 -2
- data/lib/bundler/lockfile_parser.rb +13 -21
- data/lib/bundler/match_platform.rb +1 -1
- data/lib/bundler/plugin.rb +42 -29
- data/lib/bundler/plugin/api.rb +1 -1
- data/lib/bundler/plugin/api/source.rb +2 -2
- data/lib/bundler/plugin/index.rb +14 -3
- data/lib/bundler/plugin/installer.rb +28 -15
- data/lib/bundler/psyched_yaml.rb +1 -1
- data/lib/bundler/resolver.rb +72 -24
- data/lib/bundler/resolver/spec_group.rb +3 -2
- data/lib/bundler/retry.rb +2 -2
- data/lib/bundler/ruby_version.rb +4 -19
- data/lib/bundler/rubygems_ext.rb +10 -66
- data/lib/bundler/rubygems_gem_installer.rb +1 -1
- data/lib/bundler/rubygems_integration.rb +144 -395
- data/lib/bundler/runtime.rb +2 -9
- data/lib/bundler/settings.rb +15 -47
- data/lib/bundler/setup.rb +6 -5
- data/lib/bundler/shared_helpers.rb +64 -67
- data/lib/bundler/similarity_detector.rb +2 -2
- data/lib/bundler/source.rb +5 -5
- data/lib/bundler/source/git.rb +19 -12
- data/lib/bundler/source/git/git_proxy.rb +35 -39
- data/lib/bundler/source/metadata.rb +9 -5
- data/lib/bundler/source/path.rb +13 -8
- data/lib/bundler/source/rubygems.rb +11 -5
- data/lib/bundler/source/rubygems/remote.rb +1 -2
- data/lib/bundler/source_list.rb +9 -12
- data/lib/bundler/spec_set.rb +23 -12
- data/lib/bundler/stub_specification.rb +18 -30
- data/lib/bundler/templates/Executable.bundler +23 -14
- data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +3 -3
- data/lib/bundler/templates/newgem/Gemfile.tt +8 -2
- data/lib/bundler/templates/newgem/README.md.tt +4 -3
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +6 -27
- data/lib/bundler/templates/newgem/test/test_helper.rb.tt +1 -1
- data/lib/bundler/templates/newgem/travis.yml.tt +0 -1
- data/lib/bundler/ui.rb +3 -3
- data/lib/bundler/ui/rg_proxy.rb +1 -1
- data/lib/bundler/ui/shell.rb +4 -8
- data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +161 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +66 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +176 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
- data/lib/bundler/vendor/fileutils/lib/fileutils.rb +151 -48
- data/lib/bundler/vendor/fileutils/lib/fileutils/version.rb +5 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo.rb +6 -6
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +2 -2
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +6 -6
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +30 -8
- data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +4 -4
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +2 -2
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +248 -279
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +40 -0
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +53 -0
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
- data/lib/bundler/vendor/thor/lib/thor.rb +7 -2
- data/lib/bundler/vendor/thor/lib/thor/actions.rb +21 -11
- data/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +11 -2
- data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/base.rb +16 -17
- data/lib/bundler/vendor/thor/lib/thor/error.rb +82 -0
- data/lib/bundler/vendor/thor/lib/thor/group.rb +3 -3
- data/lib/bundler/vendor/thor/lib/thor/line_editor.rb +2 -2
- data/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -4
- data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +7 -2
- data/lib/bundler/vendor/thor/lib/thor/runner.rb +6 -6
- data/lib/bundler/vendor/thor/lib/thor/shell.rb +4 -4
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +52 -7
- data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/lib/bundler/vendored_fileutils.rb +1 -6
- data/lib/bundler/vendored_molinillo.rb +1 -1
- data/lib/bundler/vendored_persistent.rb +7 -5
- data/lib/bundler/vendored_thor.rb +2 -2
- data/lib/bundler/version.rb +1 -20
- data/lib/bundler/version_ranges.rb +51 -5
- data/lib/bundler/vlad.rb +2 -2
- data/lib/bundler/worker.rb +1 -3
- data/lib/bundler/yaml_serializer.rb +2 -3
- data/man/bundle-add.1 +10 -2
- data/man/bundle-add.1.txt +11 -5
- data/man/bundle-add.ronn +7 -1
- data/man/bundle-binstubs.1 +2 -2
- data/man/bundle-binstubs.1.txt +2 -2
- data/man/bundle-binstubs.ronn +1 -1
- data/man/bundle-check.1 +1 -1
- data/man/bundle-check.1.txt +6 -6
- data/man/bundle-clean.1 +1 -1
- data/man/bundle-clean.1.txt +1 -1
- data/man/bundle-config.1 +52 -36
- data/man/bundle-config.1.txt +82 -67
- data/man/bundle-config.ronn +56 -40
- data/man/bundle-doctor.1 +1 -1
- data/man/bundle-doctor.1.txt +1 -1
- data/man/bundle-exec.1 +2 -2
- data/man/bundle-exec.1.txt +2 -2
- data/man/bundle-exec.ronn +1 -1
- data/man/bundle-gem.1 +1 -1
- data/man/bundle-gem.1.txt +3 -3
- data/man/bundle-info.1 +1 -1
- data/man/bundle-info.1.txt +1 -1
- data/man/bundle-init.1 +2 -2
- data/man/bundle-init.1.txt +2 -2
- data/man/bundle-init.ronn +1 -1
- data/man/bundle-inject.1 +1 -1
- data/man/bundle-inject.1.txt +1 -1
- data/man/bundle-install.1 +8 -5
- data/man/bundle-install.1.txt +56 -51
- data/man/bundle-install.ronn +9 -4
- data/man/bundle-list.1 +1 -1
- data/man/bundle-list.1.txt +1 -1
- data/man/bundle-lock.1 +1 -1
- data/man/bundle-lock.1.txt +16 -16
- data/man/bundle-open.1 +1 -1
- data/man/bundle-open.1.txt +1 -1
- data/man/bundle-outdated.1 +1 -1
- data/man/bundle-outdated.1.txt +1 -1
- data/man/bundle-package.1 +1 -1
- data/man/bundle-package.1.txt +1 -1
- data/man/bundle-platform.1 +1 -1
- data/man/bundle-platform.1.txt +1 -1
- data/man/bundle-pristine.1 +1 -1
- data/man/bundle-pristine.1.txt +1 -1
- data/man/bundle-remove.1 +1 -1
- data/man/bundle-remove.1.txt +1 -1
- data/man/bundle-show.1 +1 -1
- data/man/bundle-show.1.txt +1 -1
- data/man/bundle-update.1 +4 -4
- data/man/bundle-update.1.txt +64 -65
- data/man/bundle-update.ronn +3 -3
- data/man/bundle-viz.1 +1 -1
- data/man/bundle-viz.1.txt +1 -1
- data/man/bundle.1 +7 -3
- data/man/bundle.1.txt +11 -8
- data/man/bundle.ronn +5 -2
- data/man/gemfile.5 +17 -20
- data/man/gemfile.5.ronn +14 -18
- data/man/gemfile.5.txt +108 -112
- metadata +17 -104
- data/exe/bundle_ruby +0 -60
- data/lib/bundler/cli/cache.rb +0 -36
- data/lib/bundler/compatibility_guard.rb +0 -14
- data/lib/bundler/ssl_certs/.document +0 -1
- data/lib/bundler/ssl_certs/certificate_manager.rb +0 -66
- data/lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +0 -21
- data/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +0 -27
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +0 -129
@@ -34,10 +34,13 @@ module Bundler
|
|
34
34
|
fetch(uri, new_headers)
|
35
35
|
when Net::HTTPRequestEntityTooLarge
|
36
36
|
raise FallbackError, response.body
|
37
|
+
when Net::HTTPTooManyRequests
|
38
|
+
raise TooManyRequestsError, response.body
|
37
39
|
when Net::HTTPUnauthorized
|
40
|
+
raise BadAuthenticationError, uri.host if uri.userinfo
|
38
41
|
raise AuthenticationRequiredError, uri.host
|
39
42
|
when Net::HTTPNotFound
|
40
|
-
raise FallbackError, "Net::HTTPNotFound"
|
43
|
+
raise FallbackError, "Net::HTTPNotFound: #{URICredentialsFilter.credential_filtered_uri(uri)}"
|
41
44
|
else
|
42
45
|
raise HTTPError, "#{response.class}#{": #{response.body}" unless response.body.empty?}"
|
43
46
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
require_relative "base"
|
4
4
|
require "rubygems/remote_fetcher"
|
5
5
|
|
6
6
|
module Bundler
|
@@ -13,6 +13,7 @@ module Bundler
|
|
13
13
|
when /certificate verify failed/
|
14
14
|
raise CertificateFailureError.new(display_uri)
|
15
15
|
when /401/
|
16
|
+
raise BadAuthenticationError, remote_uri if remote_uri.userinfo
|
16
17
|
raise AuthenticationRequiredError, remote_uri
|
17
18
|
when /403/
|
18
19
|
raise BadAuthenticationError, remote_uri if remote_uri.userinfo
|
@@ -29,7 +30,8 @@ module Bundler
|
|
29
30
|
|
30
31
|
uri = URI.parse("#{remote_uri}#{Gem::MARSHAL_SPEC_DIR}#{spec_file_name}.rz")
|
31
32
|
if uri.scheme == "file"
|
32
|
-
|
33
|
+
path = Bundler.rubygems.correct_for_windows_path(uri.path)
|
34
|
+
Bundler.load_marshal Bundler.rubygems.inflate(Gem.read_binary(path))
|
33
35
|
elsif cached_spec_path = gemspec_cached_path(spec_file_name)
|
34
36
|
Bundler.load_gemspec(cached_spec_path)
|
35
37
|
else
|
@@ -1,8 +1,7 @@
|
|
1
|
-
# encoding: utf-8
|
2
1
|
# frozen_string_literal: true
|
3
2
|
|
4
3
|
require "cgi"
|
5
|
-
|
4
|
+
require_relative "vendored_thor"
|
6
5
|
|
7
6
|
module Bundler
|
8
7
|
module FriendlyErrors
|
@@ -29,7 +28,7 @@ module Bundler
|
|
29
28
|
Bundler.ui.warn <<-WARN, :wrap => true
|
30
29
|
You must recompile Ruby with OpenSSL support or change the sources in your \
|
31
30
|
Gemfile from 'https' to 'http'. Instructions for compiling with OpenSSL \
|
32
|
-
using RVM are available at
|
31
|
+
using RVM are available at https://rvm.io/packages/openssl.
|
33
32
|
WARN
|
34
33
|
Bundler.ui.trace error
|
35
34
|
when Interrupt
|
@@ -45,7 +44,7 @@ module Bundler
|
|
45
44
|
"Alternatively, you can increase the amount of memory the JVM is able to use by running Bundler with jruby -J-Xmx1024m -S bundle (JRuby defaults to 500MB)."
|
46
45
|
else request_issue_report_for(error)
|
47
46
|
end
|
48
|
-
rescue
|
47
|
+
rescue StandardError
|
49
48
|
raise error
|
50
49
|
end
|
51
50
|
|
@@ -124,7 +123,7 @@ module Bundler
|
|
124
123
|
yield
|
125
124
|
rescue SignalException
|
126
125
|
raise
|
127
|
-
rescue Exception => e
|
126
|
+
rescue Exception => e # rubocop:disable Lint/RescueException
|
128
127
|
FriendlyErrors.log_error(e)
|
129
128
|
exit FriendlyErrors.exit_status(e)
|
130
129
|
end
|
data/lib/bundler/gem_helper.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
require_relative "vendored_thor" unless defined?(Thor)
|
4
|
+
require_relative "../bundler"
|
5
|
+
require "shellwords"
|
5
6
|
|
6
7
|
module Bundler
|
7
8
|
class GemHelper
|
@@ -74,7 +75,8 @@ module Bundler
|
|
74
75
|
|
75
76
|
def build_gem
|
76
77
|
file_name = nil
|
77
|
-
|
78
|
+
gem = ENV["GEM_COMMAND"] ? ENV["GEM_COMMAND"] : "gem"
|
79
|
+
sh("#{gem} build -V #{spec_path}".shellsplit) do
|
78
80
|
file_name = File.basename(built_gem_path)
|
79
81
|
SharedHelpers.filesystem_access(File.join(base, "pkg")) {|p| FileUtils.mkdir_p(p) }
|
80
82
|
FileUtils.mv(built_gem_path, "pkg")
|
@@ -85,21 +87,26 @@ module Bundler
|
|
85
87
|
|
86
88
|
def install_gem(built_gem_path = nil, local = false)
|
87
89
|
built_gem_path ||= build_gem
|
88
|
-
|
89
|
-
|
90
|
+
gem = ENV["GEM_COMMAND"] ? ENV["GEM_COMMAND"] : "gem"
|
91
|
+
cmd = "#{gem} install #{built_gem_path}"
|
92
|
+
cmd += " --local" if local
|
93
|
+
out, status = sh_with_status(cmd.shellsplit)
|
94
|
+
unless status.success? && out[/Successfully installed/]
|
95
|
+
raise "Couldn't install gem, run `gem install #{built_gem_path}' for more detailed output"
|
96
|
+
end
|
90
97
|
Bundler.ui.confirm "#{name} (#{version}) installed."
|
91
98
|
end
|
92
99
|
|
93
100
|
protected
|
94
101
|
|
95
102
|
def rubygem_push(path)
|
96
|
-
gem_command =
|
97
|
-
gem_command
|
98
|
-
gem_command
|
103
|
+
gem_command = %W[gem push #{path}]
|
104
|
+
gem_command << "--key" << gem_key if gem_key
|
105
|
+
gem_command << "--host" << allowed_push_host if allowed_push_host
|
99
106
|
unless allowed_push_host || Bundler.user_home.join(".gem/credentials").file?
|
100
107
|
raise "Your rubygems.org credentials aren't set. Run `gem push` to set them."
|
101
108
|
end
|
102
|
-
|
109
|
+
sh_with_input(gem_command)
|
103
110
|
Bundler.ui.confirm "Pushed #{name} #{version} to #{gem_push_host}"
|
104
111
|
end
|
105
112
|
|
@@ -127,12 +134,14 @@ module Bundler
|
|
127
134
|
|
128
135
|
def perform_git_push(options = "")
|
129
136
|
cmd = "git push #{options}"
|
130
|
-
out,
|
131
|
-
|
137
|
+
out, status = sh_with_status(cmd)
|
138
|
+
return if status.success?
|
139
|
+
cmd = cmd.shelljoin if cmd.respond_to?(:shelljoin)
|
140
|
+
raise "Couldn't git push. `#{cmd}' failed with the following output:\n\n#{out}\n"
|
132
141
|
end
|
133
142
|
|
134
143
|
def already_tagged?
|
135
|
-
return false unless sh(
|
144
|
+
return false unless sh(%w[git tag]).split(/\n/).include?(version_tag)
|
136
145
|
Bundler.ui.confirm "Tag #{version_tag} has already been created."
|
137
146
|
true
|
138
147
|
end
|
@@ -142,20 +151,20 @@ module Bundler
|
|
142
151
|
end
|
143
152
|
|
144
153
|
def clean?
|
145
|
-
|
154
|
+
sh_with_status(%w[git diff --exit-code])[1].success?
|
146
155
|
end
|
147
156
|
|
148
157
|
def committed?
|
149
|
-
|
158
|
+
sh_with_status(%w[git diff-index --quiet --cached HEAD])[1].success?
|
150
159
|
end
|
151
160
|
|
152
161
|
def tag_version
|
153
|
-
sh
|
162
|
+
sh %W[git tag -m Version\ #{version} #{version_tag}]
|
154
163
|
Bundler.ui.confirm "Tagged #{version_tag}."
|
155
164
|
yield if block_given?
|
156
165
|
rescue RuntimeError
|
157
166
|
Bundler.ui.error "Untagging #{version_tag} due to error."
|
158
|
-
|
167
|
+
sh_with_status %W[git tag -d #{version_tag}]
|
159
168
|
raise
|
160
169
|
end
|
161
170
|
|
@@ -171,22 +180,28 @@ module Bundler
|
|
171
180
|
gemspec.name
|
172
181
|
end
|
173
182
|
|
183
|
+
def sh_with_input(cmd)
|
184
|
+
Bundler.ui.debug(cmd)
|
185
|
+
SharedHelpers.chdir(base) do
|
186
|
+
abort unless Kernel.system(*cmd)
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
174
190
|
def sh(cmd, &block)
|
175
|
-
out,
|
176
|
-
unless
|
191
|
+
out, status = sh_with_status(cmd, &block)
|
192
|
+
unless status.success?
|
193
|
+
cmd = cmd.shelljoin if cmd.respond_to?(:shelljoin)
|
177
194
|
raise(out.empty? ? "Running `#{cmd}` failed. Run this command directly for more detailed output." : out)
|
178
195
|
end
|
179
196
|
out
|
180
197
|
end
|
181
198
|
|
182
|
-
def
|
183
|
-
cmd += " 2>&1"
|
184
|
-
outbuf = String.new
|
199
|
+
def sh_with_status(cmd, &block)
|
185
200
|
Bundler.ui.debug(cmd)
|
186
201
|
SharedHelpers.chdir(base) do
|
187
|
-
outbuf =
|
188
|
-
status =
|
189
|
-
block.call(outbuf) if status.
|
202
|
+
outbuf = IO.popen(cmd, :err => [:child, :out], &:read)
|
203
|
+
status = $?
|
204
|
+
block.call(outbuf) if status.success? && block
|
190
205
|
[outbuf, status]
|
191
206
|
end
|
192
207
|
end
|
data/lib/bundler/gem_helpers.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Bundler
|
4
4
|
module GemHelpers
|
5
|
-
GENERIC_CACHE = {} # rubocop:disable MutableConstant
|
5
|
+
GENERIC_CACHE = { Gem::Platform::RUBY => Gem::Platform::RUBY } # rubocop:disable MutableConstant
|
6
6
|
GENERICS = [
|
7
7
|
[Gem::Platform.new("java"), Gem::Platform.new("java")],
|
8
8
|
[Gem::Platform.new("mswin32"), Gem::Platform.new("mswin32")],
|
@@ -10,12 +10,10 @@ module Bundler
|
|
10
10
|
[Gem::Platform.new("universal-mingw32"), Gem::Platform.new("universal-mingw32")],
|
11
11
|
[Gem::Platform.new("x64-mingw32"), Gem::Platform.new("x64-mingw32")],
|
12
12
|
[Gem::Platform.new("x86_64-mingw32"), Gem::Platform.new("x64-mingw32")],
|
13
|
-
[Gem::Platform.new("mingw32"), Gem::Platform.new("x86-mingw32")]
|
13
|
+
[Gem::Platform.new("mingw32"), Gem::Platform.new("x86-mingw32")],
|
14
14
|
].freeze
|
15
15
|
|
16
16
|
def generic(p)
|
17
|
-
return p if p == Gem::Platform::RUBY
|
18
|
-
|
19
17
|
GENERIC_CACHE[p] ||= begin
|
20
18
|
_, found = GENERICS.find do |match, _generic|
|
21
19
|
p.os == match.os && (!match.cpu || p.cpu == match.cpu)
|
data/lib/bundler/gem_tasks.rb
CHANGED
@@ -81,8 +81,8 @@ module Bundler
|
|
81
81
|
sort_dep_specs(spec_groups, locked_spec)
|
82
82
|
end.tap do |specs|
|
83
83
|
if DEBUG
|
84
|
-
|
85
|
-
|
84
|
+
warn before_result
|
85
|
+
warn " after sort_versions: #{debug_format_result(dep, specs).inspect}"
|
86
86
|
end
|
87
87
|
end
|
88
88
|
end
|
@@ -109,7 +109,7 @@ module Bundler
|
|
109
109
|
must_match = minor? ? [0] : [0, 1]
|
110
110
|
|
111
111
|
matches = must_match.map {|idx| gsv.segments[idx] == lsv.segments[idx] }
|
112
|
-
|
112
|
+
matches.uniq == [true] ? (gsv >= lsv) : false
|
113
113
|
else
|
114
114
|
true
|
115
115
|
end
|
data/lib/bundler/graph.rb
CHANGED
@@ -117,7 +117,7 @@ module Bundler
|
|
117
117
|
:style => "filled",
|
118
118
|
:fillcolor => "#B9B9D5",
|
119
119
|
:shape => "box3d",
|
120
|
-
:fontsize => 16
|
120
|
+
:fontsize => 16,
|
121
121
|
}.merge(@node_options[group])
|
122
122
|
)
|
123
123
|
end
|
@@ -142,7 +142,7 @@ module Bundler
|
|
142
142
|
g.output @output_format.to_sym => "#{@output_file}.#{@output_format}"
|
143
143
|
Bundler.ui.info "#{@output_file}.#{@output_format}"
|
144
144
|
rescue ArgumentError => e
|
145
|
-
|
145
|
+
warn "Unsupported output format. See Ruby-Graphviz/lib/graphviz/constants.rb"
|
146
146
|
raise e
|
147
147
|
end
|
148
148
|
end
|
data/lib/bundler/injector.rb
CHANGED
@@ -111,8 +111,10 @@ module Bundler
|
|
111
111
|
end
|
112
112
|
|
113
113
|
source = ", :source => \"#{d.source}\"" unless d.source.nil?
|
114
|
+
git = ", :git => \"#{d.git}\"" unless d.git.nil?
|
115
|
+
branch = ", :branch => \"#{d.branch}\"" unless d.branch.nil?
|
114
116
|
|
115
|
-
%(gem #{name}#{requirement}#{group}#{source})
|
117
|
+
%(gem #{name}#{requirement}#{group}#{source}#{git}#{branch})
|
116
118
|
end.join("\n")
|
117
119
|
end
|
118
120
|
|
@@ -123,7 +125,7 @@ module Bundler
|
|
123
125
|
end
|
124
126
|
end
|
125
127
|
|
126
|
-
#
|
128
|
+
# evaluates a gemfile to remove the specified gem
|
127
129
|
# from it.
|
128
130
|
def remove_deps(gemfile_path)
|
129
131
|
initial_gemfile = IO.readlines(gemfile_path)
|
@@ -136,8 +138,8 @@ module Bundler
|
|
136
138
|
|
137
139
|
removed_deps = remove_gems_from_dependencies(builder, @deps, gemfile_path)
|
138
140
|
|
139
|
-
# abort the
|
140
|
-
# no need to operate on gemfile
|
141
|
+
# abort the operation if no gems were removed
|
142
|
+
# no need to operate on gemfile further
|
141
143
|
return [] if removed_deps.empty?
|
142
144
|
|
143
145
|
cleaned_gemfile = remove_gems_from_gemfile(@deps, gemfile_path)
|
@@ -153,8 +155,8 @@ module Bundler
|
|
153
155
|
|
154
156
|
# @param [Dsl] builder Dsl object of current Gemfile.
|
155
157
|
# @param [Array] gems Array of names of gems to be removed.
|
156
|
-
# @param [Pathname]
|
157
|
-
# @return [Array]
|
158
|
+
# @param [Pathname] gemfile_path Path of the Gemfile.
|
159
|
+
# @return [Array] Array of removed dependencies.
|
158
160
|
def remove_gems_from_dependencies(builder, gems, gemfile_path)
|
159
161
|
removed_deps = []
|
160
162
|
|
@@ -206,7 +208,7 @@ module Bundler
|
|
206
208
|
nested_blocks -= 1
|
207
209
|
|
208
210
|
gemfile.each_with_index do |line, index|
|
209
|
-
next unless !line.nil? && line.
|
211
|
+
next unless !line.nil? && line.strip.start_with?(block_name)
|
210
212
|
if gemfile[index + 1] =~ /^\s*end\s*$/
|
211
213
|
gemfile[index] = nil
|
212
214
|
gemfile[index + 1] = nil
|
@@ -222,7 +224,7 @@ module Bundler
|
|
222
224
|
# @param [Array] removed_deps Array of removed dependencies.
|
223
225
|
# @param [Array] initial_gemfile Contents of original Gemfile before any operation.
|
224
226
|
def cross_check_for_errors(gemfile_path, original_deps, removed_deps, initial_gemfile)
|
225
|
-
#
|
227
|
+
# evaluate the new gemfile to look for any failure cases
|
226
228
|
builder = Dsl.new
|
227
229
|
builder.eval_gemfile(gemfile_path)
|
228
230
|
|
data/lib/bundler/inline.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "bundler/compatibility_guard"
|
4
|
-
|
5
3
|
# Allows for declaring a Gemfile inline in a ruby script, optionally installing
|
6
4
|
# any gems that aren't already installed on the user's system.
|
7
5
|
#
|
@@ -32,10 +30,11 @@ require "bundler/compatibility_guard"
|
|
32
30
|
# puts Pod::VERSION # => "0.34.4"
|
33
31
|
#
|
34
32
|
def gemfile(install = false, options = {}, &gemfile)
|
35
|
-
|
33
|
+
require_relative "../bundler"
|
36
34
|
|
37
35
|
opts = options.dup
|
38
36
|
ui = opts.delete(:ui) { Bundler::UI::Shell.new }
|
37
|
+
ui.level = "silent" if opts.delete(:quiet)
|
39
38
|
raise ArgumentError, "Unknown options: #{opts.keys.join(", ")}" unless opts.empty?
|
40
39
|
|
41
40
|
old_root = Bundler.method(:root)
|
@@ -48,26 +47,28 @@ def gemfile(install = false, options = {}, &gemfile)
|
|
48
47
|
builder = Bundler::Dsl.new
|
49
48
|
builder.instance_eval(&gemfile)
|
50
49
|
|
51
|
-
|
52
|
-
|
53
|
-
|
50
|
+
Bundler.settings.temporary(:frozen => false) do
|
51
|
+
definition = builder.to_definition(nil, true)
|
52
|
+
def definition.lock(*); end
|
53
|
+
definition.validate_runtime!
|
54
54
|
|
55
|
-
|
56
|
-
|
57
|
-
|
55
|
+
missing_specs = proc do
|
56
|
+
definition.missing_specs?
|
57
|
+
end
|
58
58
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
59
|
+
Bundler.ui = ui if install
|
60
|
+
if install || missing_specs.call
|
61
|
+
Bundler.settings.temporary(:inline => true, :disable_platform_warnings => true) do
|
62
|
+
installer = Bundler::Installer.install(Bundler.root, definition, :system => true)
|
63
|
+
installer.post_install_messages.each do |name, message|
|
64
|
+
Bundler.ui.info "Post-install message from #{name}:\n#{message}"
|
65
|
+
end
|
65
66
|
end
|
66
67
|
end
|
67
|
-
end
|
68
68
|
|
69
|
-
|
70
|
-
|
69
|
+
runtime = Bundler::Runtime.new(nil, definition)
|
70
|
+
runtime.setup.require
|
71
|
+
end
|
71
72
|
ensure
|
72
73
|
bundler_module = class << Bundler; self; end
|
73
74
|
bundler_module.send(:define_method, :root, old_root) if old_root
|
data/lib/bundler/installer.rb
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
require "erb"
|
4
4
|
require "rubygems/dependency_installer"
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
require_relative "worker"
|
6
|
+
require_relative "installer/parallel_installer"
|
7
|
+
require_relative "installer/standalone"
|
8
|
+
require_relative "installer/gem_installer"
|
9
9
|
|
10
10
|
module Bundler
|
11
11
|
class Installer
|
@@ -221,7 +221,7 @@ module Bundler
|
|
221
221
|
def processor_count
|
222
222
|
require "etc"
|
223
223
|
Etc.nprocessors
|
224
|
-
rescue
|
224
|
+
rescue StandardError
|
225
225
|
1
|
226
226
|
end
|
227
227
|
|
@@ -275,14 +275,7 @@ module Bundler
|
|
275
275
|
end
|
276
276
|
|
277
277
|
def can_install_in_parallel?
|
278
|
-
|
279
|
-
true
|
280
|
-
else
|
281
|
-
Bundler.ui.warn "RubyGems #{Gem::VERSION} is not threadsafe, so your "\
|
282
|
-
"gems will be installed one at a time. Upgrade to RubyGems 2.1.0 " \
|
283
|
-
"or higher to enable parallel gem installation."
|
284
|
-
false
|
285
|
-
end
|
278
|
+
true
|
286
279
|
end
|
287
280
|
|
288
281
|
def install_in_parallel(size, standalone, force = false)
|
@@ -303,7 +296,7 @@ module Bundler
|
|
303
296
|
|
304
297
|
# returns whether or not a re-resolve was needed
|
305
298
|
def resolve_if_needed(options)
|
306
|
-
if !@definition.unlocking? && !options["force"] && !Bundler.settings[:inline] && Bundler.default_lockfile.file?
|
299
|
+
if !@definition.unlocking? && !options["force"] && !options["all-platforms"] && !Bundler.settings[:inline] && Bundler.default_lockfile.file?
|
307
300
|
return false if @definition.nothing_changed? && !@definition.missing_specs?
|
308
301
|
end
|
309
302
|
|