bundler 2.5.23 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +59 -0
- data/bundler.gemspec +2 -2
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/cli/console.rb +0 -4
- data/lib/bundler/cli/doctor.rb +4 -4
- data/lib/bundler/cli/exec.rb +1 -0
- data/lib/bundler/cli/gem.rb +1 -1
- data/lib/bundler/cli/info.rb +2 -2
- data/lib/bundler/cli/inject.rb +1 -1
- data/lib/bundler/cli/install.rb +4 -0
- data/lib/bundler/cli/lock.rb +20 -1
- data/lib/bundler/cli/pristine.rb +1 -1
- data/lib/bundler/cli/show.rb +2 -2
- data/lib/bundler/cli.rb +22 -53
- data/lib/bundler/compact_index_client/cache_file.rb +0 -5
- data/lib/bundler/compact_index_client/updater.rb +0 -11
- data/lib/bundler/definition.rb +134 -61
- data/lib/bundler/dependency.rb +1 -1
- data/lib/bundler/dsl.rb +2 -13
- data/lib/bundler/endpoint_specification.rb +10 -1
- data/lib/bundler/errors.rb +10 -0
- data/lib/bundler/feature_flag.rb +1 -0
- data/lib/bundler/fetcher/compact_index.rb +1 -1
- data/lib/bundler/fetcher.rb +10 -3
- data/lib/bundler/gem_helpers.rb +21 -5
- data/lib/bundler/injector.rb +2 -2
- data/lib/bundler/installer/standalone.rb +2 -2
- data/lib/bundler/installer.rb +4 -38
- data/lib/bundler/lazy_specification.rb +65 -24
- data/lib/bundler/lockfile_parser.rb +9 -1
- data/lib/bundler/man/bundle-add.1 +13 -10
- data/lib/bundler/man/bundle-add.1.ronn +12 -9
- data/lib/bundler/man/bundle-binstubs.1 +7 -4
- data/lib/bundler/man/bundle-binstubs.1.ronn +6 -3
- data/lib/bundler/man/bundle-cache.1 +30 -2
- data/lib/bundler/man/bundle-cache.1.ronn +31 -2
- data/lib/bundler/man/bundle-check.1 +3 -3
- data/lib/bundler/man/bundle-check.1.ronn +4 -2
- data/lib/bundler/man/bundle-clean.1 +1 -1
- data/lib/bundler/man/bundle-config.1 +3 -1
- data/lib/bundler/man/bundle-config.1.ronn +2 -0
- data/lib/bundler/man/bundle-console.1 +2 -4
- data/lib/bundler/man/bundle-console.1.ronn +2 -7
- data/lib/bundler/man/bundle-doctor.1 +2 -2
- data/lib/bundler/man/bundle-doctor.1.ronn +1 -1
- data/lib/bundler/man/bundle-env.1 +9 -0
- data/lib/bundler/man/bundle-env.1.ronn +10 -0
- data/lib/bundler/man/bundle-exec.1 +5 -2
- data/lib/bundler/man/bundle-exec.1.ronn +4 -1
- data/lib/bundler/man/bundle-fund.1 +22 -0
- data/lib/bundler/man/bundle-fund.1.ronn +25 -0
- data/lib/bundler/man/bundle-gem.1 +17 -5
- data/lib/bundler/man/bundle-gem.1.ronn +27 -6
- data/lib/bundler/man/bundle-help.1 +1 -1
- data/lib/bundler/man/bundle-info.1 +5 -2
- data/lib/bundler/man/bundle-info.1.ronn +6 -2
- data/lib/bundler/man/bundle-init.1 +3 -3
- data/lib/bundler/man/bundle-init.1.ronn +3 -2
- data/lib/bundler/man/bundle-inject.1 +10 -2
- data/lib/bundler/man/bundle-inject.1.ronn +9 -1
- data/lib/bundler/man/bundle-install.1 +14 -11
- data/lib/bundler/man/bundle-install.1.ronn +21 -16
- data/lib/bundler/man/bundle-issue.1 +45 -0
- data/lib/bundler/man/bundle-issue.1.ronn +37 -0
- data/lib/bundler/man/bundle-licenses.1 +9 -0
- data/lib/bundler/man/bundle-licenses.1.ronn +10 -0
- data/lib/bundler/man/bundle-list.1 +1 -1
- data/lib/bundler/man/bundle-list.1.ronn +4 -1
- data/lib/bundler/man/bundle-lock.1 +21 -6
- data/lib/bundler/man/bundle-lock.1.ronn +25 -4
- data/lib/bundler/man/bundle-open.1 +2 -2
- data/lib/bundler/man/bundle-open.1.ronn +2 -1
- data/lib/bundler/man/bundle-outdated.1 +8 -5
- data/lib/bundler/man/bundle-outdated.1.ronn +8 -4
- 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-pristine.1.ronn +1 -1
- data/lib/bundler/man/bundle-remove.1 +1 -1
- data/lib/bundler/man/bundle-remove.1.ronn +1 -1
- data/lib/bundler/man/bundle-show.1 +5 -2
- data/lib/bundler/man/bundle-show.1.ronn +4 -0
- data/lib/bundler/man/bundle-update.1 +13 -7
- data/lib/bundler/man/bundle-update.1.ronn +14 -6
- data/lib/bundler/man/bundle-version.1 +1 -1
- data/lib/bundler/man/bundle-viz.1 +4 -4
- data/lib/bundler/man/bundle-viz.1.ronn +7 -3
- data/lib/bundler/man/bundle.1 +1 -1
- data/lib/bundler/man/gemfile.5 +1 -1
- data/lib/bundler/man/index.txt +4 -0
- data/lib/bundler/materialization.rb +59 -0
- data/lib/bundler/plugin/events.rb +24 -0
- data/lib/bundler/plugin/installer.rb +1 -1
- data/lib/bundler/process_lock.rb +1 -1
- data/lib/bundler/remote_specification.rb +6 -1
- data/lib/bundler/resolver/base.rb +2 -6
- data/lib/bundler/resolver/candidate.rb +2 -2
- data/lib/bundler/resolver/spec_group.rb +4 -3
- data/lib/bundler/resolver.rb +5 -5
- data/lib/bundler/rubygems_ext.rb +17 -28
- data/lib/bundler/rubygems_gem_installer.rb +0 -1
- data/lib/bundler/rubygems_integration.rb +21 -11
- data/lib/bundler/runtime.rb +27 -7
- data/lib/bundler/self_manager.rb +2 -3
- data/lib/bundler/settings.rb +1 -0
- data/lib/bundler/shared_helpers.rb +2 -2
- data/lib/bundler/source/git/git_proxy.rb +0 -6
- data/lib/bundler/source/git.rb +56 -31
- data/lib/bundler/source/path.rb +2 -2
- data/lib/bundler/source_list.rb +1 -1
- data/lib/bundler/spec_set.rb +81 -56
- data/lib/bundler/stub_specification.rb +8 -0
- data/lib/bundler/templates/newgem/README.md.tt +1 -1
- data/lib/bundler/uri_credentials_filter.rb +1 -1
- data/lib/bundler/vendor/fileutils/COPYING +56 -0
- data/lib/bundler/vendor/fileutils/lib/fileutils.rb +15 -13
- data/lib/bundler/vendor/securerandom/COPYING +56 -0
- data/lib/bundler/vendor/securerandom/lib/securerandom.rb +5 -5
- data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +3 -5
- data/lib/bundler/vendor/thor/lib/thor/group.rb +11 -0
- data/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +1 -4
- data/lib/bundler/vendor/thor/lib/thor/parser/option.rb +2 -2
- data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +2 -1
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +9 -9
- data/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +5 -21
- 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/thor/lib/thor.rb +11 -0
- data/lib/bundler/vendor/uri/COPYING +56 -0
- data/lib/bundler/vendor/uri/lib/uri/common.rb +37 -16
- data/lib/bundler/vendor/uri/lib/uri/file.rb +3 -3
- data/lib/bundler/vendor/uri/lib/uri/ftp.rb +1 -1
- data/lib/bundler/vendor/uri/lib/uri/generic.rb +16 -26
- data/lib/bundler/vendor/uri/lib/uri/http.rb +2 -2
- data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +10 -3
- data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +26 -3
- data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/lib/bundler/vendor/uri/lib/uri.rb +9 -9
- data/lib/bundler/vendored_securerandom.rb +0 -2
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler.rb +37 -13
- metadata +18 -12
- data/lib/bundler/vendor/fileutils/LICENSE.txt +0 -22
- data/lib/bundler/vendor/securerandom/LICENSE.txt +0 -22
- data/lib/bundler/vendor/securerandom/lib/random/formatter.rb +0 -373
- data/lib/bundler/vendor/uri/LICENSE.txt +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e5040339545260efa41ad3b7bd4201dfdc9275e322b970ed3c768a45ec01e06
|
4
|
+
data.tar.gz: 6d8271cc5fd5a98f98637ef49a597ff4edc8ce78e2fcb2f504b21c29b6f4b0a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1cfdf00dc9e185a6af93c187a55b2c4d2c61f0f21edcfd0b5e213f1b00026e010815c7b1ea4ea2efd96c199b514061b3b183257a4e7aa6b25bd1bce2b6e7404e
|
7
|
+
data.tar.gz: b32951d8312bb7d65fabd06c269ca6ec6e2114f9f2836aeb74aa72a73a2b219c56a173f0383f7e917072fe9ab78c7a0fa9c31a58aca24d9faf078490145e9dfa
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,62 @@
|
|
1
|
+
# 2.6.0 (December 16, 2024)
|
2
|
+
|
3
|
+
## Security:
|
4
|
+
|
5
|
+
- Fix gemfury credentials written to logs in verbose mode [#8283](https://github.com/rubygems/rubygems/pull/8283)
|
6
|
+
- Fix private registry credentials being written to logs [#8222](https://github.com/rubygems/rubygems/pull/8222)
|
7
|
+
|
8
|
+
## Breaking changes:
|
9
|
+
|
10
|
+
- Drop ruby 3.0 support [#8091](https://github.com/rubygems/rubygems/pull/8091)
|
11
|
+
- Remove client-side MD5 ETag transition from compact index client [#7677](https://github.com/rubygems/rubygems/pull/7677)
|
12
|
+
|
13
|
+
## Deprecations:
|
14
|
+
|
15
|
+
- Cancel `bundle console` deprecation [#8218](https://github.com/rubygems/rubygems/pull/8218)
|
16
|
+
- Warn when platform of installed gem differs from platform in the lockfile [#8029](https://github.com/rubygems/rubygems/pull/8029)
|
17
|
+
- Cancel deprecation of Gemfiles without a global source [#8213](https://github.com/rubygems/rubygems/pull/8213)
|
18
|
+
|
19
|
+
## Features:
|
20
|
+
|
21
|
+
- Add a `lockfile_checksums` configuration to include checksums in fresh lockfiles [#8219](https://github.com/rubygems/rubygems/pull/8219)
|
22
|
+
- Add `bundle lock --add-checksums` to add checksums to an existing lockfile [#8214](https://github.com/rubygems/rubygems/pull/8214)
|
23
|
+
|
24
|
+
## Performance:
|
25
|
+
|
26
|
+
- Enable a couple of performance cops [#8261](https://github.com/rubygems/rubygems/pull/8261)
|
27
|
+
- Remove override of worker jobs for `bundle install --local` [#8248](https://github.com/rubygems/rubygems/pull/8248)
|
28
|
+
|
29
|
+
## Enhancements:
|
30
|
+
|
31
|
+
- Support `bundle exec <relative-path-to-script>` when `Kernel.exec` is used under the hood [#8294](https://github.com/rubygems/rubygems/pull/8294)
|
32
|
+
- Improve working with different rubies using the same lockfile [#8251](https://github.com/rubygems/rubygems/pull/8251)
|
33
|
+
- Define a few `inspect` methods to help debugging [#8266](https://github.com/rubygems/rubygems/pull/8266)
|
34
|
+
- Include original error when openssl fails to load [#8232](https://github.com/rubygems/rubygems/pull/8232)
|
35
|
+
- Automatically fix lockfile when it's missing dependencies [#8103](https://github.com/rubygems/rubygems/pull/8103)
|
36
|
+
- Fix some JRuby warnings when using `bundler/setup` with Ruby's -w flag [#8205](https://github.com/rubygems/rubygems/pull/8205)
|
37
|
+
- Add a `--normalize-platforms` flag to `bundle lock` [#7896](https://github.com/rubygems/rubygems/pull/7896)
|
38
|
+
- Add plugin hooks for Bundler.require [#3439](https://github.com/rubygems/rubygems/pull/3439)
|
39
|
+
|
40
|
+
## Bug fixes:
|
41
|
+
|
42
|
+
- Fix restarting with locked version when `$PROGRAM_NAME` has been changed [#8320](https://github.com/rubygems/rubygems/pull/8320)
|
43
|
+
- Restore the previous cache format for git sources [#8296](https://github.com/rubygems/rubygems/pull/8296)
|
44
|
+
- Fix installs of subdependencies of unlocked dependencies to be conservative [#8281](https://github.com/rubygems/rubygems/pull/8281)
|
45
|
+
- Fix test task name on generated readme when using test-unit [#8291](https://github.com/rubygems/rubygems/pull/8291)
|
46
|
+
- Fix `bundle exec` executable detection on windows [#8276](https://github.com/rubygems/rubygems/pull/8276)
|
47
|
+
- Fix `bundle remove` sometimes not removing gems [#8278](https://github.com/rubygems/rubygems/pull/8278)
|
48
|
+
- Fix issue with git gems locking incorrect specs sometimes [#8269](https://github.com/rubygems/rubygems/pull/8269)
|
49
|
+
|
50
|
+
## Documentation:
|
51
|
+
|
52
|
+
- Normalize command flag documentation and make sure all flags are documented [#8313](https://github.com/rubygems/rubygems/pull/8313)
|
53
|
+
- Add missing man pages for `bundle env` and `bundle licenses` [#8315](https://github.com/rubygems/rubygems/pull/8315)
|
54
|
+
- Add man page for 'bundle issue' command [#8271](https://github.com/rubygems/rubygems/pull/8271)
|
55
|
+
- Add man page for 'bundle fund' command [#8258](https://github.com/rubygems/rubygems/pull/8258)
|
56
|
+
- Move pry-related contents to `debugging.md` [#8263](https://github.com/rubygems/rubygems/pull/8263)
|
57
|
+
- Add debugging instruction on Windows [#8236](https://github.com/rubygems/rubygems/pull/8236)
|
58
|
+
- Unify rubygems and bundler docs directory [#8159](https://github.com/rubygems/rubygems/pull/8159)
|
59
|
+
|
1
60
|
# 2.5.23 (November 5, 2024)
|
2
61
|
|
3
62
|
## Enhancements:
|
data/bundler.gemspec
CHANGED
@@ -29,10 +29,10 @@ Gem::Specification.new do |s|
|
|
29
29
|
"source_code_uri" => "https://github.com/rubygems/rubygems/tree/master/bundler",
|
30
30
|
}
|
31
31
|
|
32
|
-
s.required_ruby_version = ">= 3.
|
32
|
+
s.required_ruby_version = ">= 3.1.0"
|
33
33
|
|
34
34
|
# It should match the RubyGems version shipped with `required_ruby_version` above
|
35
|
-
s.required_rubygems_version = ">= 3.
|
35
|
+
s.required_rubygems_version = ">= 3.3.3"
|
36
36
|
|
37
37
|
s.files = Dir.glob("lib/bundler{.rb,/**/*}", File::FNM_DOTMATCH).reject {|f| File.directory?(f) }
|
38
38
|
|
@@ -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 = "2024-
|
8
|
-
@git_commit_sha = "
|
7
|
+
@built_at = "2024-12-16".freeze
|
8
|
+
@git_commit_sha = "d6be0319aaf".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
data/lib/bundler/cli/console.rb
CHANGED
@@ -9,10 +9,6 @@ module Bundler
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def run
|
12
|
-
message = "bundle console will be replaced by `bin/console` generated by `bundle gem <name>`"
|
13
|
-
removed_message = "bundle console has been replaced by `bin/console` generated by `bundle gem <name>`"
|
14
|
-
Bundler::SharedHelpers.major_deprecation 2, message, removed_message: removed_message
|
15
|
-
|
16
12
|
group ? Bundler.require(:default, *group.split(" ").map!(&:to_sym)) : Bundler.require
|
17
13
|
ARGV.clear
|
18
14
|
|
data/lib/bundler/cli/doctor.rb
CHANGED
@@ -32,11 +32,11 @@ module Bundler
|
|
32
32
|
|
33
33
|
def dylibs_ldd(path)
|
34
34
|
output = `/usr/bin/ldd #{path.shellescape}`.chomp
|
35
|
-
output.split("\n").
|
35
|
+
output.split("\n").filter_map do |l|
|
36
36
|
match = l.match(LDD_REGEX)
|
37
37
|
next if match.nil?
|
38
38
|
match.captures[0]
|
39
|
-
end
|
39
|
+
end
|
40
40
|
end
|
41
41
|
|
42
42
|
def dylibs(path)
|
@@ -89,11 +89,11 @@ module Bundler
|
|
89
89
|
|
90
90
|
if broken_links.any?
|
91
91
|
message = "The following gems are missing OS dependencies:"
|
92
|
-
broken_links.
|
92
|
+
broken_links.flat_map do |spec, paths|
|
93
93
|
paths.uniq.map do |path|
|
94
94
|
"\n * #{spec.name}: #{path}"
|
95
95
|
end
|
96
|
-
end.
|
96
|
+
end.sort.each {|m| message += m }
|
97
97
|
raise ProductionError, message
|
98
98
|
elsif !permissions_valid
|
99
99
|
Bundler.ui.info "No issues found with the installed bundle"
|
data/lib/bundler/cli/exec.rb
CHANGED
@@ -22,6 +22,7 @@ module Bundler
|
|
22
22
|
if !Bundler.settings[:disable_exec_load] && ruby_shebang?(bin_path)
|
23
23
|
return kernel_load(bin_path, *args)
|
24
24
|
end
|
25
|
+
bin_path = "./" + bin_path unless File.absolute_path?(bin_path)
|
25
26
|
kernel_exec(bin_path, *args)
|
26
27
|
else
|
27
28
|
# exec using the given command
|
data/lib/bundler/cli/gem.rb
CHANGED
data/lib/bundler/cli/info.rb
CHANGED
@@ -73,11 +73,11 @@ module Bundler
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def gem_dependencies
|
76
|
-
@gem_dependencies ||= Bundler.definition.specs.
|
76
|
+
@gem_dependencies ||= Bundler.definition.specs.filter_map do |spec|
|
77
77
|
dependency = spec.dependencies.find {|dep| dep.name == gem_name }
|
78
78
|
next unless dependency
|
79
79
|
"#{spec.name} (#{spec.version}) depends on #{gem_name} (#{dependency.requirements_list.join(", ")})"
|
80
|
-
end.
|
80
|
+
end.sort
|
81
81
|
end
|
82
82
|
end
|
83
83
|
end
|
data/lib/bundler/cli/inject.rb
CHANGED
@@ -48,7 +48,7 @@ module Bundler
|
|
48
48
|
|
49
49
|
def last_version_number
|
50
50
|
definition = Bundler.definition(true)
|
51
|
-
definition.
|
51
|
+
definition.remotely!
|
52
52
|
specs = definition.index[name].sort_by(&:version)
|
53
53
|
unless options[:pre]
|
54
54
|
specs.delete_if {|b| b.respond_to?(:version) && b.version.prerelease? }
|
data/lib/bundler/cli/install.rb
CHANGED
@@ -23,6 +23,10 @@ module Bundler
|
|
23
23
|
# Disable color in deployment mode
|
24
24
|
Bundler.ui.shell = Thor::Shell::Basic.new if options[:deployment]
|
25
25
|
|
26
|
+
if target_rbconfig_path = options[:"target-rbconfig"]
|
27
|
+
Bundler.rubygems.set_target_rbconfig(target_rbconfig_path)
|
28
|
+
end
|
29
|
+
|
26
30
|
check_for_options_conflicts
|
27
31
|
|
28
32
|
check_trust_policy
|
data/lib/bundler/cli/lock.rb
CHANGED
@@ -14,6 +14,8 @@ module Bundler
|
|
14
14
|
exit 1
|
15
15
|
end
|
16
16
|
|
17
|
+
check_for_conflicting_options
|
18
|
+
|
17
19
|
print = options[:print]
|
18
20
|
previous_output_stream = Bundler.ui.output_stream
|
19
21
|
Bundler.ui.output_stream = :stderr if print
|
@@ -38,6 +40,7 @@ module Bundler
|
|
38
40
|
|
39
41
|
Bundler.settings.temporary(frozen: false) do
|
40
42
|
definition = Bundler.definition(update, file)
|
43
|
+
definition.add_checksums if options["add-checksums"]
|
41
44
|
|
42
45
|
Bundler::CLI::Common.configure_gem_version_promoter(definition, options) if options[:update]
|
43
46
|
|
@@ -58,7 +61,11 @@ module Bundler
|
|
58
61
|
raise InvalidOption, "Removing all platforms from the bundle is not allowed"
|
59
62
|
end
|
60
63
|
|
61
|
-
definition.
|
64
|
+
definition.remotely! unless options[:local]
|
65
|
+
|
66
|
+
if options["normalize-platforms"]
|
67
|
+
definition.normalize_platforms
|
68
|
+
end
|
62
69
|
|
63
70
|
if print
|
64
71
|
puts definition.to_lock
|
@@ -70,5 +77,17 @@ module Bundler
|
|
70
77
|
|
71
78
|
Bundler.ui.output_stream = previous_output_stream
|
72
79
|
end
|
80
|
+
|
81
|
+
private
|
82
|
+
|
83
|
+
def check_for_conflicting_options
|
84
|
+
if options["normalize-platforms"] && options["add-platform"].any?
|
85
|
+
raise InvalidOption, "--normalize-platforms can't be used with --add-platform"
|
86
|
+
end
|
87
|
+
|
88
|
+
if options["normalize-platforms"] && options["remove-platform"].any?
|
89
|
+
raise InvalidOption, "--normalize-platforms can't be used with --remove-platform"
|
90
|
+
end
|
91
|
+
end
|
73
92
|
end
|
74
93
|
end
|
data/lib/bundler/cli/pristine.rb
CHANGED
@@ -49,7 +49,7 @@ module Bundler
|
|
49
49
|
true
|
50
50
|
end.map(&:name)
|
51
51
|
|
52
|
-
jobs = installer.send(:installation_parallelization
|
52
|
+
jobs = installer.send(:installation_parallelization)
|
53
53
|
pristine_count = definition.specs.count - installed_specs.count
|
54
54
|
# allow a pristining a single gem to skip the parallel worker
|
55
55
|
jobs = [jobs, pristine_count].min
|
data/lib/bundler/cli/show.rb
CHANGED
@@ -59,9 +59,9 @@ module Bundler
|
|
59
59
|
definition = Bundler.definition(true)
|
60
60
|
if options[:outdated]
|
61
61
|
Bundler.ui.info "Fetching remote specs for outdated check...\n\n"
|
62
|
-
Bundler.ui.silence { definition.
|
62
|
+
Bundler.ui.silence { definition.remotely! }
|
63
63
|
else
|
64
|
-
definition.
|
64
|
+
definition.with_cache!
|
65
65
|
end
|
66
66
|
Bundler.reset!
|
67
67
|
definition.specs
|
data/lib/bundler/cli.rb
CHANGED
@@ -217,7 +217,7 @@ module Bundler
|
|
217
217
|
method_option "full-index", type: :boolean, banner: "Fall back to using the single-file index of all gems"
|
218
218
|
method_option "gemfile", type: :string, banner: "Use the specified gemfile instead of Gemfile"
|
219
219
|
method_option "jobs", aliases: "-j", type: :numeric, banner: "Specify the number of jobs to run in parallel"
|
220
|
-
method_option "local", type: :boolean, banner:
|
220
|
+
method_option "local", type: :boolean, banner: "Do not attempt to fetch gems remotely and use the gem cache instead"
|
221
221
|
method_option "prefer-local", type: :boolean, banner: "Only attempt to fetch gems remotely if not present locally, even if newer versions are available remotely"
|
222
222
|
method_option "no-cache", type: :boolean, banner: "Don't update the existing gem cache."
|
223
223
|
method_option "redownload", type: :boolean, aliases: "--force", banner: "Force downloading every gem."
|
@@ -227,8 +227,8 @@ module Bundler
|
|
227
227
|
method_option "shebang", type: :string, banner: "Specify a different shebang executable name than the default (usually 'ruby')"
|
228
228
|
method_option "standalone", type: :array, lazy_default: [], banner: "Make a bundle that can work without the Bundler runtime"
|
229
229
|
method_option "system", type: :boolean, banner: "Install to the system location ($BUNDLE_PATH or $GEM_HOME) even if the bundle was previously installed somewhere else for this application"
|
230
|
-
method_option "trust-policy", alias: "P", type: :string, banner:
|
231
|
-
|
230
|
+
method_option "trust-policy", alias: "P", type: :string, banner: "Gem trust policy (like gem install -P). Must be one of #{Bundler.rubygems.security_policy_keys.join("|")}"
|
231
|
+
method_option "target-rbconfig", type: :string, banner: "Path to rbconfig.rb for the deployment target platform"
|
232
232
|
method_option "without", type: :array, banner: "Exclude gems that are part of the specified named group."
|
233
233
|
method_option "with", type: :array, banner: "Include gems that are part of the specified named group."
|
234
234
|
def install
|
@@ -286,10 +286,8 @@ module Bundler
|
|
286
286
|
Show lists the names and versions of all gems that are required by your Gemfile.
|
287
287
|
Calling show with [GEM] will list the exact location of that gem on your machine.
|
288
288
|
D
|
289
|
-
method_option "paths", type: :boolean,
|
290
|
-
|
291
|
-
method_option "outdated", type: :boolean,
|
292
|
-
banner: "Show verbose output including whether gems are outdated."
|
289
|
+
method_option "paths", type: :boolean, banner: "List the paths of all gems that are required by your Gemfile."
|
290
|
+
method_option "outdated", type: :boolean, banner: "Show verbose output including whether gems are outdated."
|
293
291
|
def show(gem_name = nil)
|
294
292
|
if ARGV.include?("--outdated")
|
295
293
|
message = "the `--outdated` flag to `bundle show` was undocumented and will be removed without replacement"
|
@@ -398,9 +396,7 @@ module Bundler
|
|
398
396
|
end
|
399
397
|
|
400
398
|
desc "cache [OPTIONS]", "Locks and then caches all of the gems into vendor/cache"
|
401
|
-
method_option "all", type: :boolean,
|
402
|
-
default: Bundler.feature_flag.cache_all?,
|
403
|
-
banner: "Include all sources (including path and git)."
|
399
|
+
method_option "all", type: :boolean, default: Bundler.feature_flag.cache_all?, banner: "Include all sources (including path and git)."
|
404
400
|
method_option "all-platforms", type: :boolean, banner: "Include gems for all platforms present in the lockfile, not only the current one"
|
405
401
|
method_option "cache-path", type: :string, banner: "Specify a different cache path than the default (vendor/cache)."
|
406
402
|
method_option "gemfile", type: :string, banner: "Use the specified gemfile instead of Gemfile"
|
@@ -438,8 +434,8 @@ module Bundler
|
|
438
434
|
map aliases_for("cache")
|
439
435
|
|
440
436
|
desc "exec [OPTIONS]", "Run the command in context of the bundle"
|
441
|
-
method_option :keep_file_descriptors, type: :boolean, default: true
|
442
|
-
method_option :gemfile, type: :string, required: false
|
437
|
+
method_option :keep_file_descriptors, type: :boolean, default: true, banner: "Passes all file descriptors to the new processes. Default is true, and setting it to false is deprecated"
|
438
|
+
method_option :gemfile, type: :string, required: false, banner: "Use the specified gemfile instead of Gemfile"
|
443
439
|
long_desc <<-D
|
444
440
|
Exec runs a command, providing it access to the gems in the bundle. While using
|
445
441
|
bundle exec you can require and call the bundled gems as if they were installed
|
@@ -480,12 +476,10 @@ module Bundler
|
|
480
476
|
Open.new(options, name).run
|
481
477
|
end
|
482
478
|
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
Console.new(options, group).run
|
488
|
-
end
|
479
|
+
desc "console [GROUP]", "Opens an IRB session with the bundle pre-loaded"
|
480
|
+
def console(group = nil)
|
481
|
+
require_relative "cli/console"
|
482
|
+
Console.new(options, group).run
|
489
483
|
end
|
490
484
|
|
491
485
|
desc "version", "Prints Bundler version information"
|
@@ -537,55 +531,28 @@ module Bundler
|
|
537
531
|
end
|
538
532
|
end
|
539
533
|
|
540
|
-
old_gem = instance_method(:gem)
|
541
|
-
|
542
534
|
desc "gem NAME [OPTIONS]", "Creates a skeleton for creating a rubygem"
|
543
535
|
method_option :exe, type: :boolean, default: false, aliases: ["--bin", "-b"], desc: "Generate a binary executable for your library."
|
544
536
|
method_option :coc, type: :boolean, desc: "Generate a code of conduct file. Set a default with `bundle config set --global gem.coc true`."
|
545
|
-
method_option :edit, type: :string, aliases: "-e", required: false, banner: "EDITOR",
|
546
|
-
lazy_default: [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? },
|
547
|
-
desc: "Open generated gemspec in the specified editor (defaults to $EDITOR or $BUNDLER_EDITOR)"
|
537
|
+
method_option :edit, type: :string, aliases: "-e", required: false, banner: "EDITOR", lazy_default: [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? }, desc: "Open generated gemspec in the specified editor (defaults to $EDITOR or $BUNDLER_EDITOR)"
|
548
538
|
method_option :ext, type: :string, desc: "Generate the boilerplate for C extension code.", enum: EXTENSIONS
|
549
539
|
method_option :git, type: :boolean, default: true, desc: "Initialize a git repo inside your library."
|
550
540
|
method_option :mit, type: :boolean, desc: "Generate an MIT license file. Set a default with `bundle config set --global gem.mit true`."
|
551
541
|
method_option :rubocop, type: :boolean, desc: "Add rubocop to the generated Rakefile and gemspec. Set a default with `bundle config set --global gem.rubocop true`."
|
552
542
|
method_option :changelog, type: :boolean, desc: "Generate changelog file. Set a default with `bundle config set --global gem.changelog true`."
|
553
|
-
method_option :test, type: :string, lazy_default: Bundler.settings["gem.test"] || "", aliases: "-t", banner: "Use the specified test framework for your library",
|
554
|
-
|
555
|
-
|
556
|
-
method_option :ci, type: :string, lazy_default: Bundler.settings["gem.ci"] || "",
|
557
|
-
enum: %w[github gitlab circle],
|
558
|
-
desc: "Generate CI configuration, either GitHub Actions, GitLab CI or CircleCI. Set a default with `bundle config set --global gem.ci (github|gitlab|circle)`"
|
559
|
-
method_option :linter, type: :string, lazy_default: Bundler.settings["gem.linter"] || "",
|
560
|
-
enum: %w[rubocop standard],
|
561
|
-
desc: "Add a linter and code formatter, either RuboCop or Standard. Set a default with `bundle config set --global gem.linter (rubocop|standard)`"
|
543
|
+
method_option :test, type: :string, lazy_default: Bundler.settings["gem.test"] || "", aliases: "-t", banner: "Use the specified test framework for your library", enum: %w[rspec minitest test-unit], desc: "Generate a test directory for your library, either rspec, minitest or test-unit. Set a default with `bundle config set --global gem.test (rspec|minitest|test-unit)`."
|
544
|
+
method_option :ci, type: :string, lazy_default: Bundler.settings["gem.ci"] || "", enum: %w[github gitlab circle], desc: "Generate CI configuration, either GitHub Actions, GitLab CI or CircleCI. Set a default with `bundle config set --global gem.ci (github|gitlab|circle)`"
|
545
|
+
method_option :linter, type: :string, lazy_default: Bundler.settings["gem.linter"] || "", enum: %w[rubocop standard], desc: "Add a linter and code formatter, either RuboCop or Standard. Set a default with `bundle config set --global gem.linter (rubocop|standard)`"
|
562
546
|
method_option :github_username, type: :string, default: Bundler.settings["gem.github_username"], banner: "Set your username on GitHub", desc: "Fill in GitHub username on README so that you don't have to do it manually. Set a default with `bundle config set --global gem.github_username <your_username>`."
|
563
547
|
|
564
548
|
def gem(name)
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
def gem_command.run(instance, args = [])
|
569
|
-
arity = 1 # name
|
549
|
+
require_relative "cli/gem"
|
550
|
+
cmd_args = args + [self]
|
551
|
+
cmd_args.unshift(options)
|
570
552
|
|
571
|
-
|
572
|
-
cmd_args = args + [instance]
|
573
|
-
cmd_args.unshift(instance.options)
|
574
|
-
|
575
|
-
cmd = begin
|
576
|
-
Gem.new(*cmd_args)
|
577
|
-
rescue ArgumentError => e
|
578
|
-
instance.class.handle_argument_error(self, e, args, arity)
|
579
|
-
end
|
580
|
-
|
581
|
-
cmd.run
|
582
|
-
end
|
553
|
+
Gem.new(*cmd_args).run
|
583
554
|
end
|
584
555
|
|
585
|
-
undef_method(:gem)
|
586
|
-
define_method(:gem, old_gem)
|
587
|
-
private :gem
|
588
|
-
|
589
556
|
def self.source_root
|
590
557
|
File.expand_path("templates", __dir__)
|
591
558
|
end
|
@@ -621,8 +588,10 @@ module Bundler
|
|
621
588
|
method_option "gemfile", type: :string, banner: "Use the specified gemfile instead of Gemfile"
|
622
589
|
method_option "lockfile", type: :string, default: nil, banner: "the path the lockfile should be written to"
|
623
590
|
method_option "full-index", type: :boolean, default: false, banner: "Fall back to using the single-file index of all gems"
|
591
|
+
method_option "add-checksums", type: :boolean, default: false, banner: "Adds checksums to the lockfile"
|
624
592
|
method_option "add-platform", type: :array, default: [], banner: "Add a new platform to the lockfile"
|
625
593
|
method_option "remove-platform", type: :array, default: [], banner: "Remove a platform from the lockfile"
|
594
|
+
method_option "normalize-platforms", type: :boolean, default: false, banner: "Normalize lockfile platforms"
|
626
595
|
method_option "patch", type: :boolean, banner: "If updating, prefer updating only to next patch version"
|
627
596
|
method_option "minor", type: :boolean, banner: "If updating, prefer updating only to next minor version"
|
628
597
|
method_option "major", type: :boolean, banner: "If updating, prefer updating to next major version (default)"
|
@@ -28,7 +28,6 @@ module Bundler
|
|
28
28
|
|
29
29
|
CacheFile.copy(local_path) do |file|
|
30
30
|
etag = etag_path.read.tap(&:chomp!) if etag_path.file?
|
31
|
-
etag ||= generate_etag(etag_path, file) # Remove this after 2.5.0 has been out for a while.
|
32
31
|
|
33
32
|
# Subtract a byte to ensure the range won't be empty.
|
34
33
|
# Avoids 416 (Range Not Satisfiable) responses.
|
@@ -67,16 +66,6 @@ module Bundler
|
|
67
66
|
etag_path.read.tap(&:chomp!) if etag_path.file?
|
68
67
|
end
|
69
68
|
|
70
|
-
# When first releasing this opaque etag feature, we want to generate the old MD5 etag
|
71
|
-
# based on the content of the file. After that it will always use the saved opaque etag.
|
72
|
-
# This transparently saves existing users with good caches from updating a bunch of files.
|
73
|
-
# Remove this behavior after 2.5.0 has been out for a while.
|
74
|
-
def generate_etag(etag_path, file)
|
75
|
-
etag = file.md5.hexdigest
|
76
|
-
CacheFile.write(etag_path, etag)
|
77
|
-
etag
|
78
|
-
end
|
79
|
-
|
80
69
|
def etag_from_response(response)
|
81
70
|
return unless response["ETag"]
|
82
71
|
etag = response["ETag"].delete_prefix("W/")
|