bundler 2.2.34 → 2.3.0
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 +27 -0
- data/exe/bundle +7 -8
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/cli/gem.rb +1 -1
- data/lib/bundler/cli/install.rb +2 -0
- data/lib/bundler/cli.rb +5 -0
- data/lib/bundler/definition.rb +14 -2
- data/lib/bundler/dependency.rb +5 -7
- data/lib/bundler/dsl.rb +0 -27
- data/lib/bundler/endpoint_specification.rb +0 -8
- data/lib/bundler/fetcher/compact_index.rb +9 -4
- data/lib/bundler/fetcher.rb +2 -5
- data/lib/bundler/injector.rb +10 -1
- data/lib/bundler/installer/gem_installer.rb +1 -6
- data/lib/bundler/installer.rb +1 -4
- data/lib/bundler/lockfile_parser.rb +10 -13
- data/lib/bundler/man/bundle-add.1 +9 -1
- data/lib/bundler/man/bundle-add.1.ronn +7 -1
- data/lib/bundler/man/bundle-config.1 +2 -2
- data/lib/bundler/man/bundle-config.1.ronn +3 -3
- data/lib/bundler/man/bundle-install.1 +1 -1
- data/lib/bundler/man/bundle-install.1.ronn +2 -2
- data/lib/bundler/man/bundle-update.1 +1 -1
- data/lib/bundler/man/bundle-update.1.ronn +2 -1
- data/lib/bundler/man/gemfile.5 +1 -1
- data/lib/bundler/man/gemfile.5.ronn +1 -1
- data/lib/bundler/plugin/installer.rb +1 -1
- data/lib/bundler/process_lock.rb +1 -1
- data/lib/bundler/psyched_yaml.rb +1 -13
- data/lib/bundler/resolver.rb +34 -29
- data/lib/bundler/rubygems_ext.rb +2 -0
- data/lib/bundler/rubygems_integration.rb +11 -48
- data/lib/bundler/self_manager.rb +73 -0
- data/lib/bundler/shared_helpers.rb +2 -9
- data/lib/bundler/source/metadata.rb +1 -1
- data/lib/bundler/templates/Executable.bundler +1 -1
- data/lib/bundler/templates/Gemfile +0 -2
- data/lib/bundler/templates/gems.rb +0 -3
- data/lib/bundler/templates/newgem/Rakefile.tt +10 -1
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
- data/lib/bundler/templates/newgem/test/minitest/{newgem_test.rb.tt → test_newgem.rb.tt} +1 -1
- data/lib/bundler/ui/shell.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +6 -6
- data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +2 -1
- data/lib/bundler/vendor/thor/lib/thor/actions.rb +2 -6
- data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +0 -6
- data/lib/bundler/vendor/thor/lib/thor/error.rb +4 -9
- data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +1 -19
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +4 -22
- data/lib/bundler/vendor/thor/lib/thor/shell.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/vendor/uri/lib/uri/common.rb +17 -80
- data/lib/bundler/vendor/uri/lib/uri/ftp.rb +0 -1
- data/lib/bundler/vendor/uri/lib/uri/generic.rb +5 -6
- data/lib/bundler/vendor/uri/lib/uri/http.rb +0 -1
- data/lib/bundler/vendor/uri/lib/uri/https.rb +0 -1
- data/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
- data/lib/bundler/vendor/uri/lib/uri/mailto.rb +0 -1
- data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +1 -14
- data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +1 -12
- data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/lib/bundler/vendor/uri/lib/uri/ws.rb +84 -0
- data/lib/bundler/vendor/uri/lib/uri/wss.rb +22 -0
- data/lib/bundler/vendor/uri/lib/uri.rb +0 -1
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler.rb +9 -3
- metadata +7 -5
- data/lib/bundler/gemdeps.rb +0 -29
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: da1ab3c83c3a4866cc0407d08af4381e5cecfc146e1ca50fa00d078601ef7f64
|
|
4
|
+
data.tar.gz: db6130a6580eec314b8b8c33e3b648ac2022293734dc7513c3de8ab0b508cf2c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7ba12ac5e1afd3073be1a7bc8e5d95e369b465c4025a69db0d05ab87bc673ccb70d4f031bc17b1390b0dbbb3833fdebca0691bce3f8b3c8730ec83b9df407d88
|
|
7
|
+
data.tar.gz: 91dc119191fdbe40b5211e02a75349246e9f952d520cd58f3997b0e710a2caae0f17c96aaedf9ad25526ce44d38c9d67df9a6e5f7cc0e186b971033b412ad316
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
# 2.3.0 (December 21, 2021)
|
|
2
|
+
|
|
3
|
+
## Features:
|
|
4
|
+
|
|
5
|
+
- Change `bundle install` with a lockfile to respect the `BUNDLED WITH` bundler version [#4076](https://github.com/rubygems/rubygems/pull/4076)
|
|
6
|
+
|
|
7
|
+
## Enhancements:
|
|
8
|
+
|
|
9
|
+
- Print warning when running Bundler on potentially problematic RubyGems & Ruby combinations [#5177](https://github.com/rubygems/rubygems/pull/5177)
|
|
10
|
+
- Error tracing should be printed to stderr [#5179](https://github.com/rubygems/rubygems/pull/5179)
|
|
11
|
+
- Add `github` and `ref` options to `bundle add` [#5159](https://github.com/rubygems/rubygems/pull/5159)
|
|
12
|
+
- Add require parameter to `bundle add` [#5021](https://github.com/rubygems/rubygems/pull/5021)
|
|
13
|
+
- Enable parallel installation on Windows by default [#4822](https://github.com/rubygems/rubygems/pull/4822)
|
|
14
|
+
- More logging when compact index is not used and we fallback to other APIs [#4546](https://github.com/rubygems/rubygems/pull/4546)
|
|
15
|
+
- `bundle gem` generated MiniTest file and class now start with 'test' [#3893](https://github.com/rubygems/rubygems/pull/3893)
|
|
16
|
+
- Add `Bundler::Definition.no_lock` accessor for skipping lock file creation/update [#3401](https://github.com/rubygems/rubygems/pull/3401)
|
|
17
|
+
|
|
18
|
+
## Bug fixes:
|
|
19
|
+
|
|
20
|
+
- Fix crash when when no platform specific matches exist and show a proper error [#5168](https://github.com/rubygems/rubygems/pull/5168)
|
|
21
|
+
- Ignore dependencies not actually locked from frozen check [#5152](https://github.com/rubygems/rubygems/pull/5152)
|
|
22
|
+
- Fix `bundle cache --all-platforms` on Windows [#4552](https://github.com/rubygems/rubygems/pull/4552)
|
|
23
|
+
|
|
24
|
+
## Documentation:
|
|
25
|
+
|
|
26
|
+
- Fix gemspec template typo [#4545](https://github.com/rubygems/rubygems/pull/4545)
|
|
27
|
+
|
|
1
28
|
# 2.2.33 (December 7, 2021)
|
|
2
29
|
|
|
3
30
|
## Security fixes:
|
data/exe/bundle
CHANGED
|
@@ -18,14 +18,13 @@ end
|
|
|
18
18
|
# Workaround for non-activated bundler spec due to missing https://github.com/rubygems/rubygems/commit/4e306d7bcdee924b8d80ca9db6125aa59ee4e5a3
|
|
19
19
|
gem "bundler", Bundler::VERSION if Gem.rubygems_version < Gem::Version.new("2.6.2")
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
abort(err)
|
|
21
|
+
if Gem.rubygems_version < Gem::Version.new("3.2.3") && Gem.ruby_version < Gem::Version.new("2.6.a") && !ENV["BUNDLER_NO_OLD_RUBYGEMS_WARNING"]
|
|
22
|
+
Bundler.ui.warn \
|
|
23
|
+
"Your RubyGems version (#{Gem::VERSION})) has a bug that prevents " \
|
|
24
|
+
"`required_ruby_version` from working for Bundler. Any scripts that use " \
|
|
25
|
+
"`gem install bundler` will break as soon as Bundler drops support for " \
|
|
26
|
+
"your Ruby version. Please upgrade RubyGems to avoid future breakage " \
|
|
27
|
+
"and silence this warning by running `gem update --system 3.2.3`"
|
|
29
28
|
end
|
|
30
29
|
|
|
31
30
|
if File.exist?(base_path)
|
|
@@ -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 = "
|
|
8
|
-
@git_commit_sha = "
|
|
7
|
+
@built_at = "2021-12-21".freeze
|
|
8
|
+
@git_commit_sha = "e7167b9a42".freeze
|
|
9
9
|
@release = true
|
|
10
10
|
# end ivars
|
|
11
11
|
|
data/lib/bundler/cli/gem.rb
CHANGED
|
@@ -106,7 +106,7 @@ module Bundler
|
|
|
106
106
|
when "minitest"
|
|
107
107
|
templates.merge!(
|
|
108
108
|
"test/minitest/test_helper.rb.tt" => "test/test_helper.rb",
|
|
109
|
-
"test/minitest/
|
|
109
|
+
"test/minitest/test_newgem.rb.tt" => "test/test_#{namespaced_path}.rb"
|
|
110
110
|
)
|
|
111
111
|
config[:test_task] = :test
|
|
112
112
|
when "test-unit"
|
data/lib/bundler/cli/install.rb
CHANGED
data/lib/bundler/cli.rb
CHANGED
|
@@ -61,6 +61,8 @@ module Bundler
|
|
|
61
61
|
Bundler.reset_settings_and_root!
|
|
62
62
|
end
|
|
63
63
|
|
|
64
|
+
Bundler.self_manager.restart_with_locked_bundler_if_needed
|
|
65
|
+
|
|
64
66
|
Bundler.settings.set_command_option_if_given :retry, options[:retry]
|
|
65
67
|
|
|
66
68
|
current_cmd = args.last[:current_command].name
|
|
@@ -367,8 +369,11 @@ module Bundler
|
|
|
367
369
|
method_option "version", :aliases => "-v", :type => :string
|
|
368
370
|
method_option "group", :aliases => "-g", :type => :string
|
|
369
371
|
method_option "source", :aliases => "-s", :type => :string
|
|
372
|
+
method_option "require", :aliases => "-r", :type => :string, :banner => "Adds require path to gem. Provide false, or a path as a string."
|
|
370
373
|
method_option "git", :type => :string
|
|
374
|
+
method_option "github", :type => :string
|
|
371
375
|
method_option "branch", :type => :string
|
|
376
|
+
method_option "ref", :type => :string
|
|
372
377
|
method_option "skip-install", :type => :boolean, :banner =>
|
|
373
378
|
"Adds gem to the Gemfile but does not install it"
|
|
374
379
|
method_option "optimistic", :type => :boolean, :banner => "Adds optimistic declaration of version to gem"
|
data/lib/bundler/definition.rb
CHANGED
|
@@ -6,6 +6,11 @@ module Bundler
|
|
|
6
6
|
class Definition
|
|
7
7
|
include GemHelpers
|
|
8
8
|
|
|
9
|
+
class << self
|
|
10
|
+
# Do not create or modify a lockfile (Makes #lock a noop)
|
|
11
|
+
attr_accessor :no_lock
|
|
12
|
+
end
|
|
13
|
+
|
|
9
14
|
attr_reader(
|
|
10
15
|
:dependencies,
|
|
11
16
|
:locked_deps,
|
|
@@ -275,6 +280,8 @@ module Bundler
|
|
|
275
280
|
end
|
|
276
281
|
|
|
277
282
|
def lock(file, preserve_unknown_sections = false)
|
|
283
|
+
return if Definition.no_lock
|
|
284
|
+
|
|
278
285
|
contents = to_lock
|
|
279
286
|
|
|
280
287
|
# Convert to \r\n if the existing lock has them
|
|
@@ -287,7 +294,7 @@ module Bundler
|
|
|
287
294
|
|
|
288
295
|
if updating_major = locked_major < current_major
|
|
289
296
|
Bundler.ui.warn "Warning: the lockfile is being updated to Bundler #{current_major}, " \
|
|
290
|
-
"after which you will be unable to return to Bundler #{
|
|
297
|
+
"after which you will be unable to return to Bundler #{locked_major}."
|
|
291
298
|
end
|
|
292
299
|
end
|
|
293
300
|
|
|
@@ -372,7 +379,12 @@ module Bundler
|
|
|
372
379
|
|
|
373
380
|
both_sources = Hash.new {|h, k| h[k] = [] }
|
|
374
381
|
@dependencies.each {|d| both_sources[d.name][0] = d }
|
|
375
|
-
|
|
382
|
+
|
|
383
|
+
locked_dependencies.each do |d|
|
|
384
|
+
next if !Bundler.feature_flag.bundler_3_mode? && @locked_specs[d.name].empty?
|
|
385
|
+
|
|
386
|
+
both_sources[d.name][1] = d
|
|
387
|
+
end
|
|
376
388
|
|
|
377
389
|
both_sources.each do |name, (dep, lock_dep)|
|
|
378
390
|
next if dep.nil? || lock_dep.nil?
|
data/lib/bundler/dependency.rb
CHANGED
|
@@ -7,7 +7,7 @@ require_relative "rubygems_ext"
|
|
|
7
7
|
module Bundler
|
|
8
8
|
class Dependency < Gem::Dependency
|
|
9
9
|
attr_reader :autorequire
|
|
10
|
-
attr_reader :groups, :platforms, :gemfile, :git, :branch
|
|
10
|
+
attr_reader :groups, :platforms, :gemfile, :git, :github, :branch, :ref
|
|
11
11
|
|
|
12
12
|
PLATFORM_MAP = {
|
|
13
13
|
:ruby => Gem::Platform::RUBY,
|
|
@@ -82,7 +82,9 @@ module Bundler
|
|
|
82
82
|
@groups = Array(options["group"] || :default).map(&:to_sym)
|
|
83
83
|
@source = options["source"]
|
|
84
84
|
@git = options["git"]
|
|
85
|
+
@github = options["github"]
|
|
85
86
|
@branch = options["branch"]
|
|
87
|
+
@ref = options["ref"]
|
|
86
88
|
@platforms = Array(options["platforms"])
|
|
87
89
|
@env = options["env"]
|
|
88
90
|
@should_include = options.fetch("should_include", true)
|
|
@@ -96,15 +98,11 @@ module Bundler
|
|
|
96
98
|
def gem_platforms(valid_platforms)
|
|
97
99
|
return valid_platforms if @platforms.empty?
|
|
98
100
|
|
|
99
|
-
|
|
100
|
-
@gem_platforms ||= expanded_platforms.compact.uniq
|
|
101
|
-
|
|
102
|
-
filtered_generic_platforms = valid_generic_platforms.values & @gem_platforms
|
|
103
|
-
valid_generic_platforms.select {|_, v| filtered_generic_platforms.include?(v) }.keys
|
|
101
|
+
valid_platforms.select {|p| expanded_platforms.include?(GemHelpers.generic(p)) }
|
|
104
102
|
end
|
|
105
103
|
|
|
106
104
|
def expanded_platforms
|
|
107
|
-
@platforms.map {|pl| PLATFORM_MAP[pl] }
|
|
105
|
+
@expanded_platforms ||= @platforms.map {|pl| PLATFORM_MAP[pl] }.compact.uniq
|
|
108
106
|
end
|
|
109
107
|
|
|
110
108
|
def should_include?
|
data/lib/bundler/dsl.rb
CHANGED
|
@@ -277,9 +277,6 @@ module Bundler
|
|
|
277
277
|
|
|
278
278
|
def add_git_sources
|
|
279
279
|
git_source(:github) do |repo_name|
|
|
280
|
-
warn_deprecated_git_source(:github, <<-'RUBY'.strip, 'Change any "reponame" :github sources to "username/reponame".')
|
|
281
|
-
"https://github.com/#{repo_name}.git"
|
|
282
|
-
RUBY
|
|
283
280
|
if repo_name =~ GITHUB_PULL_REQUEST_URL
|
|
284
281
|
{
|
|
285
282
|
"git" => "https://github.com/#{$1}.git",
|
|
@@ -294,18 +291,10 @@ module Bundler
|
|
|
294
291
|
end
|
|
295
292
|
|
|
296
293
|
git_source(:gist) do |repo_name|
|
|
297
|
-
warn_deprecated_git_source(:gist, '"https://gist.github.com/#{repo_name}.git"')
|
|
298
|
-
|
|
299
294
|
"https://gist.github.com/#{repo_name}.git"
|
|
300
295
|
end
|
|
301
296
|
|
|
302
297
|
git_source(:bitbucket) do |repo_name|
|
|
303
|
-
warn_deprecated_git_source(:bitbucket, <<-'RUBY'.strip)
|
|
304
|
-
user_name, repo_name = repo_name.split("/")
|
|
305
|
-
repo_name ||= user_name
|
|
306
|
-
"https://#{user_name}@bitbucket.org/#{user_name}/#{repo_name}.git"
|
|
307
|
-
RUBY
|
|
308
|
-
|
|
309
298
|
user_name, repo_name = repo_name.split("/")
|
|
310
299
|
repo_name ||= user_name
|
|
311
300
|
"https://#{user_name}@bitbucket.org/#{user_name}/#{repo_name}.git"
|
|
@@ -490,22 +479,6 @@ repo_name ||= user_name
|
|
|
490
479
|
end
|
|
491
480
|
end
|
|
492
481
|
|
|
493
|
-
def warn_deprecated_git_source(name, replacement, additional_message = nil)
|
|
494
|
-
additional_message &&= " #{additional_message}"
|
|
495
|
-
replacement = if replacement.count("\n").zero?
|
|
496
|
-
"{|repo_name| #{replacement} }"
|
|
497
|
-
else
|
|
498
|
-
"do |repo_name|\n#{replacement.to_s.gsub(/^/, " ")}\n end"
|
|
499
|
-
end
|
|
500
|
-
|
|
501
|
-
Bundler::SharedHelpers.major_deprecation 3, <<-EOS
|
|
502
|
-
The :#{name} git source is deprecated, and will be removed in the future.#{additional_message} Add this code to the top of your Gemfile to ensure it continues to work:
|
|
503
|
-
|
|
504
|
-
git_source(:#{name}) #{replacement}
|
|
505
|
-
|
|
506
|
-
EOS
|
|
507
|
-
end
|
|
508
|
-
|
|
509
482
|
class DSLError < GemfileError
|
|
510
483
|
# @return [String] the description that should be presented to the user.
|
|
511
484
|
#
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
module Bundler
|
|
4
4
|
# used for Creating Specifications from the Gemcutter Endpoint
|
|
5
5
|
class EndpointSpecification < Gem::Specification
|
|
6
|
-
ILLFORMED_MESSAGE = 'Ill-formed requirement ["#<YAML::Syck::DefaultKey'.freeze
|
|
7
6
|
include MatchPlatform
|
|
8
7
|
|
|
9
8
|
attr_reader :name, :version, :platform, :required_rubygems_version, :required_ruby_version, :checksum
|
|
@@ -129,13 +128,6 @@ module Bundler
|
|
|
129
128
|
|
|
130
129
|
def build_dependency(name, requirements)
|
|
131
130
|
Gem::Dependency.new(name, requirements)
|
|
132
|
-
rescue ArgumentError => e
|
|
133
|
-
raise unless e.message.include?(ILLFORMED_MESSAGE)
|
|
134
|
-
puts # we shouldn't print the error message on the "fetching info" status line
|
|
135
|
-
raise GemspecError,
|
|
136
|
-
"Unfortunately, the gem #{name} (#{version}) has an invalid " \
|
|
137
|
-
"gemspec.\nPlease ask the gem author to yank the bad version to fix " \
|
|
138
|
-
"this issue. For more information, see http://bit.ly/syck-defaultkey."
|
|
139
131
|
end
|
|
140
132
|
end
|
|
141
133
|
end
|
|
@@ -68,11 +68,16 @@ module Bundler
|
|
|
68
68
|
compact_index_request :fetch_spec
|
|
69
69
|
|
|
70
70
|
def available?
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
unless SharedHelpers.md5_available?
|
|
72
|
+
Bundler.ui.debug("FIPS mode is enabled, bundler can't use the CompactIndex API")
|
|
73
|
+
return nil
|
|
74
|
+
end
|
|
75
|
+
if fetch_uri.scheme == "file"
|
|
76
|
+
Bundler.ui.debug("Using a local server, bundler won't use the CompactIndex API")
|
|
77
|
+
return false
|
|
78
|
+
end
|
|
74
79
|
# Read info file checksums out of /versions, so we can know if gems are up to date
|
|
75
|
-
|
|
80
|
+
compact_index_client.update_and_parse_checksums!
|
|
76
81
|
rescue CompactIndexClient::Updater::MisMatchedChecksumError => e
|
|
77
82
|
Bundler.ui.debug(e.message)
|
|
78
83
|
nil
|
data/lib/bundler/fetcher.rb
CHANGED
|
@@ -71,8 +71,8 @@ module Bundler
|
|
|
71
71
|
:HTTPUnsupportedMediaType, :HTTPVersionNotSupported].freeze
|
|
72
72
|
FAIL_ERRORS = begin
|
|
73
73
|
fail_errors = [AuthenticationRequiredError, BadAuthenticationError, FallbackError]
|
|
74
|
-
fail_errors << Gem::Requirement::BadRequirementError
|
|
75
|
-
fail_errors.concat(NET_ERRORS.map {|e|
|
|
74
|
+
fail_errors << Gem::Requirement::BadRequirementError
|
|
75
|
+
fail_errors.concat(NET_ERRORS.map {|e| Net.const_get(e) })
|
|
76
76
|
end.freeze
|
|
77
77
|
|
|
78
78
|
class << self
|
|
@@ -122,7 +122,6 @@ module Bundler
|
|
|
122
122
|
|
|
123
123
|
# return the specs in the bundler format as an index
|
|
124
124
|
def specs(gem_names, source)
|
|
125
|
-
old = Bundler.rubygems.sources
|
|
126
125
|
index = Bundler::Index.new
|
|
127
126
|
|
|
128
127
|
if Bundler::Fetcher.disable_endpoint
|
|
@@ -153,8 +152,6 @@ module Bundler
|
|
|
153
152
|
rescue CertificateFailureError
|
|
154
153
|
Bundler.ui.info "" if gem_names && use_api # newline after dots
|
|
155
154
|
raise
|
|
156
|
-
ensure
|
|
157
|
-
Bundler.rubygems.sources = old
|
|
158
155
|
end
|
|
159
156
|
|
|
160
157
|
def use_api
|
data/lib/bundler/injector.rb
CHANGED
|
@@ -112,9 +112,12 @@ module Bundler
|
|
|
112
112
|
|
|
113
113
|
source = ", :source => \"#{d.source}\"" unless d.source.nil?
|
|
114
114
|
git = ", :git => \"#{d.git}\"" unless d.git.nil?
|
|
115
|
+
github = ", :github => \"#{d.github}\"" unless d.github.nil?
|
|
115
116
|
branch = ", :branch => \"#{d.branch}\"" unless d.branch.nil?
|
|
117
|
+
ref = ", :ref => \"#{d.ref}\"" unless d.ref.nil?
|
|
118
|
+
require_path = ", :require => #{convert_autorequire(d.autorequire)}" unless d.autorequire.nil?
|
|
116
119
|
|
|
117
|
-
%(gem #{name}#{requirement}#{group}#{source}#{git}#{branch})
|
|
120
|
+
%(gem #{name}#{requirement}#{group}#{source}#{git}#{github}#{branch}#{ref}#{require_path})
|
|
118
121
|
end.join("\n")
|
|
119
122
|
end
|
|
120
123
|
|
|
@@ -269,5 +272,11 @@ module Bundler
|
|
|
269
272
|
def show_warning(message)
|
|
270
273
|
Bundler.ui.info Bundler.ui.add_color(message, :yellow)
|
|
271
274
|
end
|
|
275
|
+
|
|
276
|
+
def convert_autorequire(autorequire)
|
|
277
|
+
autorequire = autorequire.first
|
|
278
|
+
return autorequire if autorequire == "false"
|
|
279
|
+
autorequire.inspect
|
|
280
|
+
end
|
|
272
281
|
end
|
|
273
282
|
end
|
|
@@ -13,7 +13,7 @@ module Bundler
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def install_from_spec
|
|
16
|
-
post_install_message =
|
|
16
|
+
post_install_message = install
|
|
17
17
|
Bundler.ui.debug "#{worker}: #{spec.name} (#{spec.version}) from #{spec.loaded_from}"
|
|
18
18
|
generate_executable_stubs
|
|
19
19
|
return true, post_install_message
|
|
@@ -54,11 +54,6 @@ module Bundler
|
|
|
54
54
|
spec.source.install(spec, :force => force, :ensure_builtin_gems_cached => standalone, :build_args => Array(spec_settings))
|
|
55
55
|
end
|
|
56
56
|
|
|
57
|
-
def install_with_settings
|
|
58
|
-
# Build arguments are global, so this is mutexed
|
|
59
|
-
Bundler.rubygems.install_with_build_args([spec_settings]) { install }
|
|
60
|
-
end
|
|
61
|
-
|
|
62
57
|
def out_of_space_message
|
|
63
58
|
"#{install_error_message}\nYour disk is out of space. Free some space to be able to install your bundle."
|
|
64
59
|
end
|
data/lib/bundler/installer.rb
CHANGED
|
@@ -218,9 +218,6 @@ module Bundler
|
|
|
218
218
|
return jobs
|
|
219
219
|
end
|
|
220
220
|
|
|
221
|
-
# Parallelization has some issues on Windows, so it's not yet the default
|
|
222
|
-
return 1 if Gem.win_platform?
|
|
223
|
-
|
|
224
221
|
Bundler.settings.processor_count
|
|
225
222
|
end
|
|
226
223
|
|
|
@@ -242,7 +239,7 @@ module Bundler
|
|
|
242
239
|
|
|
243
240
|
def ensure_specs_are_compatible!
|
|
244
241
|
system_ruby = Bundler::RubyVersion.system
|
|
245
|
-
rubygems_version =
|
|
242
|
+
rubygems_version = Bundler.rubygems.version
|
|
246
243
|
@definition.specs.each do |spec|
|
|
247
244
|
if required_ruby_version = spec.required_ruby_version
|
|
248
245
|
unless required_ruby_version.satisfied_by?(system_ruby.gem_version)
|
|
@@ -46,6 +46,16 @@ module Bundler
|
|
|
46
46
|
attributes
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
+
def self.bundled_with
|
|
50
|
+
lockfile = Bundler.default_lockfile
|
|
51
|
+
return unless lockfile.file?
|
|
52
|
+
|
|
53
|
+
lockfile_contents = Bundler.read_file(lockfile)
|
|
54
|
+
return unless lockfile_contents.include?(BUNDLED)
|
|
55
|
+
|
|
56
|
+
lockfile_contents.split(BUNDLED).last.strip
|
|
57
|
+
end
|
|
58
|
+
|
|
49
59
|
def initialize(lockfile)
|
|
50
60
|
@platforms = []
|
|
51
61
|
@sources = []
|
|
@@ -77,25 +87,12 @@ module Bundler
|
|
|
77
87
|
end
|
|
78
88
|
end
|
|
79
89
|
@specs = @specs.values.sort_by(&:identifier)
|
|
80
|
-
warn_for_outdated_bundler_version
|
|
81
90
|
rescue ArgumentError => e
|
|
82
91
|
Bundler.ui.debug(e)
|
|
83
92
|
raise LockfileError, "Your lockfile is unreadable. Run `rm #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)}` " \
|
|
84
93
|
"and then `bundle install` to generate a new lockfile."
|
|
85
94
|
end
|
|
86
95
|
|
|
87
|
-
def warn_for_outdated_bundler_version
|
|
88
|
-
return unless bundler_version
|
|
89
|
-
return if bundler_version.segments.last == "dev"
|
|
90
|
-
prerelease_text = bundler_version.prerelease? ? " --pre" : ""
|
|
91
|
-
current_version = Gem::Version.create(Bundler::VERSION)
|
|
92
|
-
return unless current_version < bundler_version
|
|
93
|
-
Bundler.ui.warn "Warning: the running version of Bundler (#{current_version}) is older " \
|
|
94
|
-
"than the version that created the lockfile (#{bundler_version}). We suggest you to " \
|
|
95
|
-
"upgrade to the version that created the lockfile by running `gem install " \
|
|
96
|
-
"bundler:#{bundler_version}#{prerelease_text}`.\n"
|
|
97
|
-
end
|
|
98
|
-
|
|
99
96
|
private
|
|
100
97
|
|
|
101
98
|
TYPES = {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
\fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install
|
|
8
8
|
.
|
|
9
9
|
.SH "SYNOPSIS"
|
|
10
|
-
\fBbundle add\fR \fIGEM_NAME\fR [\-\-group=GROUP] [\-\-version=VERSION] [\-\-source=SOURCE] [\-\-git=GIT] [\-\-branch=BRANCH] [\-\-skip\-install] [\-\-strict] [\-\-optimistic]
|
|
10
|
+
\fBbundle add\fR \fIGEM_NAME\fR [\-\-group=GROUP] [\-\-version=VERSION] [\-\-source=SOURCE] [\-\-git=GIT] [\-\-github=GITHUB] [\-\-branch=BRANCH] [\-\-ref=REF] [\-\-skip\-install] [\-\-strict] [\-\-optimistic]
|
|
11
11
|
.
|
|
12
12
|
.SH "DESCRIPTION"
|
|
13
13
|
Adds the named gem to the Gemfile and run \fBbundle install\fR\. \fBbundle install\fR can be avoided by using the flag \fB\-\-skip\-install\fR\.
|
|
@@ -49,10 +49,18 @@ Specify the source for the added gem\.
|
|
|
49
49
|
Specify the git source for the added gem\.
|
|
50
50
|
.
|
|
51
51
|
.TP
|
|
52
|
+
\fB\-\-github\fR
|
|
53
|
+
Specify the github source for the added gem\.
|
|
54
|
+
.
|
|
55
|
+
.TP
|
|
52
56
|
\fB\-\-branch\fR
|
|
53
57
|
Specify the git branch for the added gem\.
|
|
54
58
|
.
|
|
55
59
|
.TP
|
|
60
|
+
\fB\-\-ref\fR
|
|
61
|
+
Specify the git ref for the added gem\.
|
|
62
|
+
.
|
|
63
|
+
.TP
|
|
56
64
|
\fB\-\-skip\-install\fR
|
|
57
65
|
Adds the gem to the Gemfile but does not install it\.
|
|
58
66
|
.
|
|
@@ -3,7 +3,7 @@ bundle-add(1) -- Add gem to the Gemfile and run bundle install
|
|
|
3
3
|
|
|
4
4
|
## SYNOPSIS
|
|
5
5
|
|
|
6
|
-
`bundle add` <GEM_NAME> [--group=GROUP] [--version=VERSION] [--source=SOURCE] [--git=GIT] [--branch=BRANCH] [--skip-install] [--strict] [--optimistic]
|
|
6
|
+
`bundle add` <GEM_NAME> [--group=GROUP] [--version=VERSION] [--source=SOURCE] [--git=GIT] [--github=GITHUB] [--branch=BRANCH] [--ref=REF] [--skip-install] [--strict] [--optimistic]
|
|
7
7
|
|
|
8
8
|
## DESCRIPTION
|
|
9
9
|
Adds the named gem to the Gemfile and run `bundle install`. `bundle install` can be avoided by using the flag `--skip-install`.
|
|
@@ -33,9 +33,15 @@ bundle add rails --group "development, test"
|
|
|
33
33
|
* `--git`:
|
|
34
34
|
Specify the git source for the added gem.
|
|
35
35
|
|
|
36
|
+
* `--github`:
|
|
37
|
+
Specify the github source for the added gem.
|
|
38
|
+
|
|
36
39
|
* `--branch`:
|
|
37
40
|
Specify the git branch for the added gem.
|
|
38
41
|
|
|
42
|
+
* `--ref`:
|
|
43
|
+
Specify the git ref for the added gem.
|
|
44
|
+
|
|
39
45
|
* `--skip-install`:
|
|
40
46
|
Adds the gem to the Gemfile but does not install it.
|
|
41
47
|
|
|
@@ -211,7 +211,7 @@ The following is a list of all configuration keys and their purpose\. You can le
|
|
|
211
211
|
\fBinit_gems_rb\fR (\fBBUNDLE_INIT_GEMS_RB\fR): Generate a \fBgems\.rb\fR instead of a \fBGemfile\fR when running \fBbundle init\fR\.
|
|
212
212
|
.
|
|
213
213
|
.IP "\(bu" 4
|
|
214
|
-
\fBjobs\fR (\fBBUNDLE_JOBS\fR): The number of gems Bundler can install in parallel\. Defaults to
|
|
214
|
+
\fBjobs\fR (\fBBUNDLE_JOBS\fR): The number of gems Bundler can install in parallel\. Defaults to the number of available processors\.
|
|
215
215
|
.
|
|
216
216
|
.IP "\(bu" 4
|
|
217
217
|
\fBno_install\fR (\fBBUNDLE_NO_INSTALL\fR): Whether \fBbundle package\fR should skip installing gems\.
|
|
@@ -449,7 +449,7 @@ export BUNDLE_GITHUB__COM=username:password
|
|
|
449
449
|
.IP "" 0
|
|
450
450
|
.
|
|
451
451
|
.P
|
|
452
|
-
This is especially useful for private repositories on hosts such as
|
|
452
|
+
This is especially useful for private repositories on hosts such as GitHub, where you can use personal OAuth tokens:
|
|
453
453
|
.
|
|
454
454
|
.IP "" 4
|
|
455
455
|
.
|
|
@@ -208,8 +208,8 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
|
|
|
208
208
|
* `init_gems_rb` (`BUNDLE_INIT_GEMS_RB`):
|
|
209
209
|
Generate a `gems.rb` instead of a `Gemfile` when running `bundle init`.
|
|
210
210
|
* `jobs` (`BUNDLE_JOBS`):
|
|
211
|
-
The number of gems Bundler can install in parallel. Defaults to
|
|
212
|
-
|
|
211
|
+
The number of gems Bundler can install in parallel. Defaults to the number of
|
|
212
|
+
available processors.
|
|
213
213
|
* `no_install` (`BUNDLE_NO_INSTALL`):
|
|
214
214
|
Whether `bundle package` should skip installing gems.
|
|
215
215
|
* `no_prune` (`BUNDLE_NO_PRUNE`):
|
|
@@ -360,7 +360,7 @@ Or you can set the credentials as an environment variable like so:
|
|
|
360
360
|
|
|
361
361
|
export BUNDLE_GITHUB__COM=username:password
|
|
362
362
|
|
|
363
|
-
This is especially useful for private repositories on hosts such as
|
|
363
|
+
This is especially useful for private repositories on hosts such as GitHub,
|
|
364
364
|
where you can use personal OAuth tokens:
|
|
365
365
|
|
|
366
366
|
export BUNDLE_GITHUB__COM=abcd0123generatedtoken:x-oauth-basic
|
|
@@ -63,7 +63,7 @@ The location of the Gemfile(5) which Bundler should use\. This defaults to a Gem
|
|
|
63
63
|
.
|
|
64
64
|
.TP
|
|
65
65
|
\fB\-\-jobs=[<number>]\fR, \fB\-j[<number>]\fR
|
|
66
|
-
The maximum number of parallel download and install jobs\. The default is
|
|
66
|
+
The maximum number of parallel download and install jobs\. The default is the number of available processors\.
|
|
67
67
|
.
|
|
68
68
|
.TP
|
|
69
69
|
\fB\-\-local\fR
|
|
@@ -100,8 +100,8 @@ automatically and that requires `bundler` to silently remember them. Since
|
|
|
100
100
|
to this location.
|
|
101
101
|
|
|
102
102
|
* `--jobs=[<number>]`, `-j[<number>]`:
|
|
103
|
-
The maximum number of parallel download and install jobs. The default
|
|
104
|
-
|
|
103
|
+
The maximum number of parallel download and install jobs. The default is the
|
|
104
|
+
number of available processors.
|
|
105
105
|
|
|
106
106
|
* `--local`:
|
|
107
107
|
Do not attempt to connect to `rubygems.org`. Instead, Bundler will use the
|
|
@@ -47,7 +47,7 @@ Fall back to using the single\-file index of all gems\.
|
|
|
47
47
|
.
|
|
48
48
|
.TP
|
|
49
49
|
\fB\-\-jobs=[<number>]\fR, \fB\-j[<number>]\fR
|
|
50
|
-
Specify the number of jobs to run in parallel\. The default is
|
|
50
|
+
Specify the number of jobs to run in parallel\. The default is the number of available processors\.
|
|
51
51
|
.
|
|
52
52
|
.TP
|
|
53
53
|
\fB\-\-retry=[<number>]\fR
|
|
@@ -56,7 +56,8 @@ gem.
|
|
|
56
56
|
Fall back to using the single-file index of all gems.
|
|
57
57
|
|
|
58
58
|
* `--jobs=[<number>]`, `-j[<number>]`:
|
|
59
|
-
Specify the number of jobs to run in parallel. The default is
|
|
59
|
+
Specify the number of jobs to run in parallel. The default is the number of
|
|
60
|
+
available processors.
|
|
60
61
|
|
|
61
62
|
* `--retry=[<number>]`:
|
|
62
63
|
Retry failed network or git requests for <number> times.
|
data/lib/bundler/man/gemfile.5
CHANGED
|
@@ -533,7 +533,7 @@ gem "rails", :github => "rails/rails", branch: "refs/pull/43753/head"
|
|
|
533
533
|
.IP "" 0
|
|
534
534
|
.
|
|
535
535
|
.SS "GIST"
|
|
536
|
-
If the git repository you want to use is hosted as a
|
|
536
|
+
If the git repository you want to use is hosted as a GitHub Gist and is public, you can use the :gist shorthand to specify the gist identifier (without the trailing "\.git")\.
|
|
537
537
|
.
|
|
538
538
|
.IP "" 4
|
|
539
539
|
.
|
|
@@ -382,7 +382,7 @@ Which is equivalent to:
|
|
|
382
382
|
|
|
383
383
|
### GIST
|
|
384
384
|
|
|
385
|
-
If the git repository you want to use is hosted as a
|
|
385
|
+
If the git repository you want to use is hosted as a GitHub Gist and is public, you can use
|
|
386
386
|
the :gist shorthand to specify the gist identifier (without the trailing ".git").
|
|
387
387
|
|
|
388
388
|
gem "the_hatch", :gist => "4815162342"
|
data/lib/bundler/process_lock.rb
CHANGED
|
@@ -12,7 +12,7 @@ module Bundler
|
|
|
12
12
|
yield
|
|
13
13
|
f.flock(File::LOCK_UN)
|
|
14
14
|
end
|
|
15
|
-
rescue Errno::EACCES, Errno::ENOLCK,
|
|
15
|
+
rescue Errno::EACCES, Errno::ENOLCK, Errno::ENOTSUP
|
|
16
16
|
# In the case the user does not have access to
|
|
17
17
|
# create the lock file or is using NFS where
|
|
18
18
|
# locks are not available we skip locking.
|
data/lib/bundler/psyched_yaml.rb
CHANGED
|
@@ -1,22 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Psych could be in the stdlib
|
|
4
|
-
# but it's too late if Syck is already loaded
|
|
5
3
|
begin
|
|
6
|
-
require "psych"
|
|
4
|
+
require "psych"
|
|
7
5
|
rescue LoadError
|
|
8
6
|
# Apparently Psych wasn't available. Oh well.
|
|
9
7
|
end
|
|
10
8
|
|
|
11
9
|
# At least load the YAML stdlib, whatever that may be
|
|
12
10
|
require "yaml" unless defined?(YAML.dump)
|
|
13
|
-
|
|
14
|
-
module Bundler
|
|
15
|
-
# On encountering invalid YAML,
|
|
16
|
-
# Psych raises Psych::SyntaxError
|
|
17
|
-
if defined?(::Psych::SyntaxError)
|
|
18
|
-
YamlLibrarySyntaxError = ::Psych::SyntaxError
|
|
19
|
-
else # Syck raises ArgumentError
|
|
20
|
-
YamlLibrarySyntaxError = ::ArgumentError
|
|
21
|
-
end
|
|
22
|
-
end
|