rubygems-update 3.7.0 → 3.7.2

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.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +47 -0
  3. data/CODE_OF_CONDUCT.md +1 -1
  4. data/bundler/CHANGELOG.md +43 -0
  5. data/bundler/lib/bundler/build_metadata.rb +2 -2
  6. data/bundler/lib/bundler/checksum.rb +6 -0
  7. data/bundler/lib/bundler/cli/cache.rb +0 -1
  8. data/bundler/lib/bundler/cli/common.rb +1 -1
  9. data/bundler/lib/bundler/cli/install.rb +1 -3
  10. data/bundler/lib/bundler/cli/lock.rb +5 -5
  11. data/bundler/lib/bundler/cli/show.rb +2 -6
  12. data/bundler/lib/bundler/cli/update.rb +1 -1
  13. data/bundler/lib/bundler/cli.rb +43 -43
  14. data/bundler/lib/bundler/definition.rb +77 -60
  15. data/bundler/lib/bundler/dsl.rb +1 -1
  16. data/bundler/lib/bundler/feature_flag.rb +1 -1
  17. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  18. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  19. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  20. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  21. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  22. data/bundler/lib/bundler/man/bundle-config.1 +31 -14
  23. data/bundler/lib/bundler/man/bundle-config.1.ronn +49 -20
  24. data/bundler/lib/bundler/man/bundle-console.1 +1 -1
  25. data/bundler/lib/bundler/man/bundle-doctor.1 +4 -4
  26. data/bundler/lib/bundler/man/bundle-doctor.1.ronn +4 -4
  27. data/bundler/lib/bundler/man/bundle-env.1 +1 -1
  28. data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
  29. data/bundler/lib/bundler/man/bundle-fund.1 +1 -1
  30. data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
  31. data/bundler/lib/bundler/man/bundle-help.1 +1 -1
  32. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  33. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  34. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  35. data/bundler/lib/bundler/man/bundle-install.1 +4 -4
  36. data/bundler/lib/bundler/man/bundle-install.1.ronn +3 -4
  37. data/bundler/lib/bundler/man/bundle-issue.1 +1 -1
  38. data/bundler/lib/bundler/man/bundle-licenses.1 +1 -1
  39. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  40. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  41. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  42. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  43. data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
  44. data/bundler/lib/bundler/man/bundle-plugin.1 +40 -15
  45. data/bundler/lib/bundler/man/bundle-plugin.1.ronn +44 -15
  46. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  47. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  48. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  49. data/bundler/lib/bundler/man/bundle-update.1 +5 -5
  50. data/bundler/lib/bundler/man/bundle-update.1.ronn +4 -4
  51. data/bundler/lib/bundler/man/bundle-version.1 +1 -1
  52. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  53. data/bundler/lib/bundler/man/bundle.1 +1 -1
  54. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  55. data/bundler/lib/bundler/resolver/package.rb +1 -0
  56. data/bundler/lib/bundler/settings.rb +1 -1
  57. data/bundler/lib/bundler/source/gemspec.rb +4 -0
  58. data/bundler/lib/bundler/source/path.rb +2 -0
  59. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +3 -3
  60. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +42 -6
  61. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +1 -1
  62. data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +1 -1
  63. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +3 -7
  64. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  65. data/bundler/lib/bundler/version.rb +1 -1
  66. data/doc/bundler/UPGRADING.md +0 -27
  67. data/lib/rubygems/commands/sources_command.rb +122 -18
  68. data/lib/rubygems/defaults.rb +1 -1
  69. data/lib/rubygems/exceptions.rb +3 -12
  70. data/lib/rubygems/platform.rb +1 -1
  71. data/lib/rubygems/s3_uri_signer.rb +54 -7
  72. data/lib/rubygems/source_list.rb +36 -0
  73. data/lib/rubygems.rb +8 -1
  74. data/rubygems-update.gemspec +1 -1
  75. metadata +2 -2
@@ -189,12 +189,14 @@ module Bundler
189
189
  def setup_domain!(options = {})
190
190
  prefer_local! if options[:"prefer-local"]
191
191
 
192
+ sources.cached!
193
+
192
194
  if options[:add_checksums] || (!options[:local] && install_needed?)
193
- remotely!
195
+ sources.remote!
194
196
  true
195
197
  else
196
198
  Bundler.settings.set_command_option(:jobs, 1) unless install_needed? # to avoid the overhead of Bundler::Worker
197
- with_cache!
199
+ sources.local!
198
200
  false
199
201
  end
200
202
  end
@@ -373,6 +375,44 @@ module Bundler
373
375
  write_lock(target_lockfile, preserve_unknown_sections)
374
376
  end
375
377
 
378
+ def write_lock(file, preserve_unknown_sections)
379
+ return if Definition.no_lock || file.nil?
380
+
381
+ contents = to_lock
382
+
383
+ # Convert to \r\n if the existing lock has them
384
+ # i.e., Windows with `git config core.autocrlf=true`
385
+ contents.gsub!(/\n/, "\r\n") if @lockfile_contents.match?("\r\n")
386
+
387
+ if @locked_bundler_version
388
+ locked_major = @locked_bundler_version.segments.first
389
+ current_major = bundler_version_to_lock.segments.first
390
+
391
+ updating_major = locked_major < current_major
392
+ end
393
+
394
+ preserve_unknown_sections ||= !updating_major && (Bundler.frozen_bundle? || !(unlocking? || @unlocking_bundler))
395
+
396
+ if File.exist?(file) && lockfiles_equal?(@lockfile_contents, contents, preserve_unknown_sections)
397
+ return if Bundler.frozen_bundle?
398
+ SharedHelpers.filesystem_access(file) { FileUtils.touch(file) }
399
+ return
400
+ end
401
+
402
+ if Bundler.frozen_bundle?
403
+ Bundler.ui.error "Cannot write a changed lockfile while frozen."
404
+ return
405
+ end
406
+
407
+ begin
408
+ SharedHelpers.filesystem_access(file) do |p|
409
+ File.open(p, "wb") {|f| f.puts(contents) }
410
+ end
411
+ rescue ReadOnlyFileSystemError
412
+ raise ProductionError, lockfile_changes_summary("file system is read-only")
413
+ end
414
+ end
415
+
376
416
  def locked_ruby_version
377
417
  return unless ruby_version
378
418
  if @unlocking_ruby || !@locked_ruby_version
@@ -492,8 +532,6 @@ module Bundler
492
532
  @unlocking
493
533
  end
494
534
 
495
- attr_writer :source_requirements
496
-
497
535
  def add_checksums
498
536
  @locked_checksums = true
499
537
 
@@ -533,7 +571,7 @@ module Bundler
533
571
 
534
572
  return unless added.any? || deleted.any? || changed.any? || resolve_needed?
535
573
 
536
- msg = String.new("#{change_reason.capitalize.strip}, but ")
574
+ msg = String.new("#{change_reason[0].upcase}#{change_reason[1..-1].strip}, but ")
537
575
  msg << "the lockfile " unless msg.start_with?("Your lockfile")
538
576
  msg << "can't be updated because #{update_refused_reason}"
539
577
  msg << "\n\nYou have added to the Gemfile:\n" << added.join("\n") if added.any?
@@ -559,6 +597,7 @@ module Bundler
559
597
  @missing_lockfile_dep ||
560
598
  @unlocking_bundler ||
561
599
  @locked_spec_with_missing_checksums ||
600
+ @locked_spec_with_empty_checksums ||
562
601
  @locked_spec_with_missing_deps ||
563
602
  @locked_spec_with_invalid_deps
564
603
  end
@@ -575,46 +614,8 @@ module Bundler
575
614
  lockfile && File.exist?(lockfile)
576
615
  end
577
616
 
578
- def write_lock(file, preserve_unknown_sections)
579
- return if Definition.no_lock || file.nil?
580
-
581
- contents = to_lock
582
-
583
- # Convert to \r\n if the existing lock has them
584
- # i.e., Windows with `git config core.autocrlf=true`
585
- contents.gsub!(/\n/, "\r\n") if @lockfile_contents.match?("\r\n")
586
-
587
- if @locked_bundler_version
588
- locked_major = @locked_bundler_version.segments.first
589
- current_major = bundler_version_to_lock.segments.first
590
-
591
- updating_major = locked_major < current_major
592
- end
593
-
594
- preserve_unknown_sections ||= !updating_major && (Bundler.frozen_bundle? || !(unlocking? || @unlocking_bundler))
595
-
596
- if File.exist?(file) && lockfiles_equal?(@lockfile_contents, contents, preserve_unknown_sections)
597
- return if Bundler.frozen_bundle?
598
- SharedHelpers.filesystem_access(file) { FileUtils.touch(file) }
599
- return
600
- end
601
-
602
- if Bundler.frozen_bundle?
603
- Bundler.ui.error "Cannot write a changed lockfile while frozen."
604
- return
605
- end
606
-
607
- begin
608
- SharedHelpers.filesystem_access(file) do |p|
609
- File.open(p, "wb") {|f| f.puts(contents) }
610
- end
611
- rescue ReadOnlyFileSystemError
612
- raise ProductionError, lockfile_changes_summary("file system is read-only")
613
- end
614
- end
615
-
616
617
  def resolver
617
- @resolver ||= Resolver.new(resolution_base, gem_version_promoter, @most_specific_locked_platform)
618
+ @resolver ||= new_resolver(resolution_base)
618
619
  end
619
620
 
620
621
  def expanded_dependencies
@@ -632,8 +633,7 @@ module Bundler
632
633
  @resolution_base ||= begin
633
634
  last_resolve = converge_locked_specs
634
635
  remove_invalid_platforms!
635
- new_resolution_platforms = @current_platform_missing ? @new_platforms + [Bundler.local_platform] : @new_platforms
636
- base = Resolver::Base.new(source_requirements, expanded_dependencies, last_resolve, @platforms, locked_specs: @originally_locked_specs, unlock: @unlocking_all || @gems_to_unlock, prerelease: gem_version_promoter.pre?, prefer_local: @prefer_local, new_platforms: new_resolution_platforms)
636
+ base = new_resolution_base(last_resolve: last_resolve, unlock: @unlocking_all || @gems_to_unlock)
637
637
  base = additional_base_requirements_to_prevent_downgrades(base)
638
638
  base = additional_base_requirements_to_force_updates(base)
639
639
  base
@@ -740,7 +740,6 @@ module Bundler
740
740
  def start_resolution
741
741
  local_platform_needed_for_resolvability = @most_specific_non_local_locked_platform && !@platforms.include?(Bundler.local_platform)
742
742
  @platforms << Bundler.local_platform if local_platform_needed_for_resolvability
743
- add_platform(Gem::Platform::RUBY) if RUBY_ENGINE == "truffleruby"
744
743
 
745
744
  result = SpecSet.new(resolver.start)
746
745
 
@@ -848,6 +847,7 @@ module Bundler
848
847
  [@missing_lockfile_dep, "your lockfile is missing \"#{@missing_lockfile_dep}\""],
849
848
  [@unlocking_bundler, "an update to the version of Bundler itself was requested"],
850
849
  [@locked_spec_with_missing_checksums, "your lockfile is missing a CHECKSUMS entry for \"#{@locked_spec_with_missing_checksums}\""],
850
+ [@locked_spec_with_empty_checksums, "your lockfile has an empty CHECKSUMS entry for \"#{@locked_spec_with_empty_checksums}\""],
851
851
  [@locked_spec_with_missing_deps, "your lockfile includes \"#{@locked_spec_with_missing_deps}\" but not some of its dependencies"],
852
852
  [@locked_spec_with_invalid_deps, "your lockfile does not satisfy dependencies of \"#{@locked_spec_with_invalid_deps}\""],
853
853
  ].select(&:first).map(&:last).join(", ")
@@ -907,13 +907,23 @@ module Bundler
907
907
  @locked_spec_with_invalid_deps = nil
908
908
  @locked_spec_with_missing_deps = nil
909
909
  @locked_spec_with_missing_checksums = nil
910
+ @locked_spec_with_empty_checksums = nil
910
911
 
911
912
  missing_deps = []
912
913
  missing_checksums = []
914
+ empty_checksums = []
913
915
  invalid = []
914
916
 
915
917
  @locked_specs.each do |s|
916
- missing_checksums << s if @locked_checksums && s.source.checksum_store.missing?(s)
918
+ if @locked_checksums
919
+ checksum_store = s.source.checksum_store
920
+
921
+ if checksum_store.missing?(s)
922
+ missing_checksums << s
923
+ elsif checksum_store.empty?(s)
924
+ empty_checksums << s
925
+ end
926
+ end
917
927
 
918
928
  validation = @locked_specs.validate_deps(s)
919
929
 
@@ -922,6 +932,7 @@ module Bundler
922
932
  end
923
933
 
924
934
  @locked_spec_with_missing_checksums = missing_checksums.first.name if missing_checksums.any?
935
+ @locked_spec_with_empty_checksums = empty_checksums.first.name if empty_checksums.any?
925
936
 
926
937
  if missing_deps.any?
927
938
  @locked_specs.delete(missing_deps)
@@ -1145,7 +1156,7 @@ module Bundler
1145
1156
 
1146
1157
  def additional_base_requirements_to_force_updates(resolution_base)
1147
1158
  return resolution_base if @explicit_unlocks.empty?
1148
- full_update = dup_for_full_unlock.resolve
1159
+ full_update = SpecSet.new(new_resolver_for_full_update.start)
1149
1160
  @explicit_unlocks.each do |name|
1150
1161
  version = full_update.version_for(name)
1151
1162
  resolution_base.base_requirements[name] = Gem::Requirement.new("= #{version}") if version
@@ -1153,17 +1164,6 @@ module Bundler
1153
1164
  resolution_base
1154
1165
  end
1155
1166
 
1156
- def dup_for_full_unlock
1157
- unlocked_definition = self.class.new(@lockfile, @dependencies, @sources, true, @ruby_version, @optional_groups, @gemfiles)
1158
- unlocked_definition.source_requirements = source_requirements
1159
- unlocked_definition.gem_version_promoter.tap do |gvp|
1160
- gvp.level = gem_version_promoter.level
1161
- gvp.strict = gem_version_promoter.strict
1162
- gvp.pre = gem_version_promoter.pre
1163
- end
1164
- unlocked_definition
1165
- end
1166
-
1167
1167
  def remove_invalid_platforms!
1168
1168
  return if Bundler.frozen_bundle?
1169
1169
 
@@ -1182,5 +1182,22 @@ module Bundler
1182
1182
  def source_map
1183
1183
  @source_map ||= SourceMap.new(sources, dependencies, @locked_specs)
1184
1184
  end
1185
+
1186
+ def new_resolver_for_full_update
1187
+ new_resolver(unlocked_resolution_base)
1188
+ end
1189
+
1190
+ def unlocked_resolution_base
1191
+ new_resolution_base(last_resolve: SpecSet.new([]), unlock: true)
1192
+ end
1193
+
1194
+ def new_resolution_base(last_resolve:, unlock:)
1195
+ new_resolution_platforms = @current_platform_missing ? @new_platforms + [Bundler.local_platform] : @new_platforms
1196
+ Resolver::Base.new(source_requirements, expanded_dependencies, last_resolve, @platforms, locked_specs: @originally_locked_specs, unlock: unlock, prerelease: gem_version_promoter.pre?, prefer_local: @prefer_local, new_platforms: new_resolution_platforms)
1197
+ end
1198
+
1199
+ def new_resolver(base)
1200
+ Resolver.new(base, gem_version_promoter, @most_specific_locked_platform)
1201
+ end
1185
1202
  end
1186
1203
  end
@@ -290,7 +290,7 @@ module Bundler
290
290
  @dependencies.delete(current)
291
291
  elsif dep.gemspec_dev_dep?
292
292
  return
293
- elsif current.source != dep.source
293
+ elsif current.source.to_s != dep.source.to_s
294
294
  raise GemfileError, "You cannot specify the same gem twice coming from different sources.\n" \
295
295
  "You specified that #{name} (#{dep.requirement}) should come from " \
296
296
  "#{current.source || "an unspecified source"} and #{dep.source}\n"
@@ -30,7 +30,7 @@ module Bundler
30
30
  settings_flag(:allow_offline_install) { bundler_4_mode? }
31
31
  settings_flag(:cache_all) { bundler_4_mode? }
32
32
  settings_flag(:forget_cli_options) { bundler_4_mode? }
33
- settings_flag(:global_gem_cache) { bundler_4_mode? }
33
+ settings_flag(:global_gem_cache) { bundler_5_mode? }
34
34
  settings_flag(:lockfile_checksums) { bundler_4_mode? }
35
35
  settings_flag(:plugins) { @bundler_version >= Gem::Version.new("1.14") }
36
36
  settings_flag(:update_requires_all_flag) { bundler_5_mode? }
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-ADD" "1" "July 2025" ""
3
+ .TH "BUNDLE\-ADD" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-BINSTUBS" "1" "July 2025" ""
3
+ .TH "BUNDLE\-BINSTUBS" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-binstubs\fR \- Install the binstubs of the listed gems
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-CACHE" "1" "July 2025" ""
3
+ .TH "BUNDLE\-CACHE" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-cache\fR \- Package your needed \fB\.gem\fR files into your application
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-CHECK" "1" "July 2025" ""
3
+ .TH "BUNDLE\-CHECK" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-CLEAN" "1" "July 2025" ""
3
+ .TH "BUNDLE\-CLEAN" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory
6
6
  .SH "SYNOPSIS"
@@ -1,16 +1,16 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-CONFIG" "1" "July 2025" ""
3
+ .TH "BUNDLE\-CONFIG" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-config\fR \- Set bundler configuration options
6
6
  .SH "SYNOPSIS"
7
- \fBbundle config\fR list
7
+ \fBbundle config\fR [list]
8
8
  .br
9
- \fBbundle config\fR [get] NAME
9
+ \fBbundle config\fR [get [\-\-local|\-\-global]] NAME
10
10
  .br
11
- \fBbundle config\fR [set] NAME VALUE
11
+ \fBbundle config\fR [set [\-\-local|\-\-global]] NAME VALUE
12
12
  .br
13
- \fBbundle config\fR unset NAME
13
+ \fBbundle config\fR unset [\-\-local|\-\-global] NAME
14
14
  .SH "DESCRIPTION"
15
15
  This command allows you to interact with Bundler's configuration system\.
16
16
  .P
@@ -25,23 +25,40 @@ Global config (\fB~/\.bundle/config\fR)
25
25
  Bundler default config
26
26
  .IP "" 0
27
27
  .P
28
+ Executing \fBbundle\fR with the \fBBUNDLE_IGNORE_CONFIG\fR environment variable set will cause it to ignore all configuration\.
29
+ .SH "SUB\-COMMANDS"
30
+ .SS "list (default command)"
28
31
  Executing \fBbundle config list\fR will print a list of all bundler configuration for the current bundle, and where that configuration was set\.
32
+ .SS "get"
33
+ Executing \fBbundle config get <name>\fR will print the value of that configuration setting, and all locations where it was set\.
29
34
  .P
30
- Executing \fBbundle config get <name>\fR will print the value of that configuration setting, and where it was set\.
31
- .P
32
- Executing \fBbundle config set <name> <value>\fR defaults to setting \fBlocal\fR configuration if executing from within a local application, otherwise it will set \fBglobal\fR configuration\. See \fB\-\-local\fR and \fB\-\-global\fR options below\.
35
+ \fBOPTIONS\fR
36
+ .TP
37
+ \fB\-\-local\fR
38
+ Get configuration from configuration file for the local application, namely, \fB<project_root>/\.bundle/config\fR, or \fB$BUNDLE_APP_CONFIG/config\fR if \fBBUNDLE_APP_CONFIG\fR is set\.
39
+ .TP
40
+ \fB\-\-global\fR
41
+ Get configuration from configuration file global to all bundles executed as the current user, namely, from \fB~/\.bundle/config\fR\.
42
+ .SS "set"
43
+ Executing \fBbundle config set <name> <value>\fR defaults to setting \fBlocal\fR configuration if executing from within a local application, otherwise it will set \fBglobal\fR configuration\.
33
44
  .P
45
+ \fBOPTIONS\fR
46
+ .TP
47
+ \fB\-\-local\fR
34
48
  Executing \fBbundle config set \-\-local <name> <value>\fR will set that configuration in the directory for the local application\. The configuration will be stored in \fB<project_root>/\.bundle/config\fR\. If \fBBUNDLE_APP_CONFIG\fR is set, the configuration will be stored in \fB$BUNDLE_APP_CONFIG/config\fR\.
35
- .P
49
+ .TP
50
+ \fB\-\-global\fR
36
51
  Executing \fBbundle config set \-\-global <name> <value>\fR will set that configuration to the value specified for all bundles executed as the current user\. The configuration will be stored in \fB~/\.bundle/config\fR\. If \fIname\fR already is set, \fIname\fR will be overridden and user will be warned\.
37
- .P
52
+ .SS "unset"
38
53
  Executing \fBbundle config unset <name>\fR will delete the configuration in both local and global sources\.
39
54
  .P
40
- Executing \fBbundle config unset \-\-global <name>\fR will delete the configuration only from the user configuration\.
41
- .P
55
+ \fBOPTIONS\fR
56
+ .TP
57
+ \fB\-\-local\fR
42
58
  Executing \fBbundle config unset \-\-local <name>\fR will delete the configuration only from the local application\.
43
- .P
44
- Executing bundle with the \fBBUNDLE_IGNORE_CONFIG\fR environment variable set will cause it to ignore all configuration\.
59
+ .TP
60
+ \fB\-\-global\fR
61
+ Executing \fBbundle config unset \-\-global <name>\fR will delete the configuration only from the user configuration\.
45
62
  .SH "CONFIGURATION KEYS"
46
63
  Configuration keys in bundler have two forms: the canonical form and the environment variable form\.
47
64
  .P
@@ -3,10 +3,10 @@ bundle-config(1) -- Set bundler configuration options
3
3
 
4
4
  ## SYNOPSIS
5
5
 
6
- `bundle config` list<br>
7
- `bundle config` [get] NAME<br>
8
- `bundle config` [set] NAME VALUE<br>
9
- `bundle config` unset NAME
6
+ `bundle config` [list]<br>
7
+ `bundle config` [get [--local|--global]] NAME<br>
8
+ `bundle config` [set [--local|--global]] NAME VALUE<br>
9
+ `bundle config` unset [--local|--global] NAME
10
10
 
11
11
  ## DESCRIPTION
12
12
 
@@ -19,38 +19,67 @@ Bundler loads configuration settings in this order:
19
19
  3. Global config (`~/.bundle/config`)
20
20
  4. Bundler default config
21
21
 
22
+ Executing `bundle` with the `BUNDLE_IGNORE_CONFIG` environment variable set will
23
+ cause it to ignore all configuration.
24
+
25
+ ## SUB-COMMANDS
26
+
27
+ ### list (default command)
28
+
22
29
  Executing `bundle config list` will print a list of all bundler
23
30
  configuration for the current bundle, and where that configuration
24
31
  was set.
25
32
 
33
+ ### get
34
+
26
35
  Executing `bundle config get <name>` will print the value of that configuration
27
- setting, and where it was set.
36
+ setting, and all locations where it was set.
37
+
38
+ **OPTIONS**
39
+
40
+ * `--local`:
41
+ Get configuration from configuration file for the local application, namely,
42
+ `<project_root>/.bundle/config`, or `$BUNDLE_APP_CONFIG/config` if
43
+ `BUNDLE_APP_CONFIG` is set.
44
+
45
+ * `--global`:
46
+ Get configuration from configuration file global to all bundles executed as
47
+ the current user, namely, from `~/.bundle/config`.
48
+
49
+ ### set
28
50
 
29
51
  Executing `bundle config set <name> <value>` defaults to setting `local`
30
52
  configuration if executing from within a local application, otherwise it will
31
- set `global` configuration. See `--local` and `--global` options below.
53
+ set `global` configuration.
32
54
 
33
- Executing `bundle config set --local <name> <value>` will set that configuration
34
- in the directory for the local application. The configuration will be stored in
35
- `<project_root>/.bundle/config`. If `BUNDLE_APP_CONFIG` is set, the configuration
36
- will be stored in `$BUNDLE_APP_CONFIG/config`.
55
+ **OPTIONS**
37
56
 
38
- Executing `bundle config set --global <name> <value>` will set that
39
- configuration to the value specified for all bundles executed as the current
40
- user. The configuration will be stored in `~/.bundle/config`. If <name> already
41
- is set, <name> will be overridden and user will be warned.
57
+ * `--local`:
58
+ Executing `bundle config set --local <name> <value>` will set that configuration
59
+ in the directory for the local application. The configuration will be stored in
60
+ `<project_root>/.bundle/config`. If `BUNDLE_APP_CONFIG` is set, the configuration
61
+ will be stored in `$BUNDLE_APP_CONFIG/config`.
62
+
63
+ * `--global`:
64
+ Executing `bundle config set --global <name> <value>` will set that
65
+ configuration to the value specified for all bundles executed as the current
66
+ user. The configuration will be stored in `~/.bundle/config`. If <name> already
67
+ is set, <name> will be overridden and user will be warned.
68
+
69
+ ### unset
42
70
 
43
71
  Executing `bundle config unset <name>` will delete the configuration in both
44
72
  local and global sources.
45
73
 
46
- Executing `bundle config unset --global <name>` will delete the configuration
47
- only from the user configuration.
74
+ **OPTIONS**
48
75
 
49
- Executing `bundle config unset --local <name>` will delete the configuration
50
- only from the local application.
76
+ * `--local`:
77
+ Executing `bundle config unset --local <name>` will delete the configuration
78
+ only from the local application.
51
79
 
52
- Executing bundle with the `BUNDLE_IGNORE_CONFIG` environment variable set will
53
- cause it to ignore all configuration.
80
+ * `--global`:
81
+ Executing `bundle config unset --global <name>` will delete the configuration
82
+ only from the user configuration.
54
83
 
55
84
  ## CONFIGURATION KEYS
56
85
 
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-CONSOLE" "1" "July 2025" ""
3
+ .TH "BUNDLE\-CONSOLE" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-console\fR \- Open an IRB session with the bundle pre\-loaded
6
6
  .SH "SYNOPSIS"
@@ -1,12 +1,12 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-DOCTOR" "1" "July 2025" ""
3
+ .TH "BUNDLE\-DOCTOR" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-doctor\fR \- Checks the bundle for common problems
6
6
  .SH "SYNOPSIS"
7
7
  \fBbundle doctor [diagnose]\fR [\-\-quiet] [\-\-gemfile=GEMFILE] [\-\-ssl]
8
8
  .br
9
- \fBbundle doctor ssl\fR [\-\-host=HOST] [\-\-tls\-version=VERSION] [\-\-verify\-mode=MODE]
9
+ \fBbundle doctor ssl\fR [\-\-host=HOST] [\-\-tls\-version=TLS\-VERSION] [\-\-verify\-mode=VERIFY\-MODE]
10
10
  .br
11
11
  \fBbundle doctor\fR help [COMMAND]
12
12
  .SH "DESCRIPTION"
@@ -57,12 +57,12 @@ Open a TLS connection and verify the outcome\.
57
57
  \fB\-\-host=HOST\fR
58
58
  Perform the diagnostic on HOST\. Defaults to \fBrubygems\.org\fR\.
59
59
  .TP
60
- \fB\-\-tls\-version=VERSION\fR
60
+ \fB\-\-tls\-version=TLS\-VERSION\fR
61
61
  Specify the TLS version when opening the connection to HOST\.
62
62
  .IP
63
63
  Accepted values are: \fB1\.1\fR or \fB1\.2\fR\.
64
64
  .TP
65
- \fB\-\-verify\-mode=MODE\fR
65
+ \fB\-\-verify\-mode=VERIFY\-MODE\fR
66
66
  Specify the TLS verify mode when opening the connection to HOST\. Defaults to \fBSSL_VERIFY_PEER\fR\.
67
67
  .IP
68
68
  Accepted values are: \fBCLIENT_ONCE\fR, \fBFAIL_IF_NO_PEER_CERT\fR, \fBNONE\fR, \fBPEER\fR\.
@@ -7,8 +7,8 @@ bundle-doctor(1) -- Checks the bundle for common problems
7
7
  [--gemfile=GEMFILE]
8
8
  [--ssl]<br>
9
9
  `bundle doctor ssl` [--host=HOST]
10
- [--tls-version=VERSION]
11
- [--verify-mode=MODE]<br>
10
+ [--tls-version=TLS-VERSION]
11
+ [--verify-mode=VERIFY-MODE]<br>
12
12
  `bundle doctor` help [COMMAND]
13
13
 
14
14
  ## DESCRIPTION
@@ -65,12 +65,12 @@ The diagnostic will perform a few checks such as:
65
65
  * `--host=HOST`:
66
66
  Perform the diagnostic on HOST. Defaults to `rubygems.org`.
67
67
 
68
- * `--tls-version=VERSION`:
68
+ * `--tls-version=TLS-VERSION`:
69
69
  Specify the TLS version when opening the connection to HOST.
70
70
 
71
71
  Accepted values are: `1.1` or `1.2`.
72
72
 
73
- * `--verify-mode=MODE`:
73
+ * `--verify-mode=VERIFY-MODE`:
74
74
  Specify the TLS verify mode when opening the connection to HOST.
75
75
  Defaults to `SSL_VERIFY_PEER`.
76
76
 
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-ENV" "1" "July 2025" ""
3
+ .TH "BUNDLE\-ENV" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-env\fR \- Print information about the environment Bundler is running under
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-EXEC" "1" "July 2025" ""
3
+ .TH "BUNDLE\-EXEC" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-exec\fR \- Execute a command in the context of the bundle
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-FUND" "1" "July 2025" ""
3
+ .TH "BUNDLE\-FUND" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-fund\fR \- Lists information about gems seeking funding assistance
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-GEM" "1" "July 2025" ""
3
+ .TH "BUNDLE\-GEM" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-HELP" "1" "July 2025" ""
3
+ .TH "BUNDLE\-HELP" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-help\fR \- Displays detailed help for each subcommand
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-INFO" "1" "July 2025" ""
3
+ .TH "BUNDLE\-INFO" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-info\fR \- Show information for the given gem in your bundle
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-INIT" "1" "July 2025" ""
3
+ .TH "BUNDLE\-INIT" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-init\fR \- Generates a Gemfile into the current working directory
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-INJECT" "1" "July 2025" ""
3
+ .TH "BUNDLE\-INJECT" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-inject\fR \- Add named gem(s) with version requirements to Gemfile
6
6
  .SH "SYNOPSIS"
@@ -1,10 +1,10 @@
1
1
  .\" generated with Ronn-NG/v0.10.1
2
2
  .\" http://github.com/apjanke/ronn-ng/tree/0.10.1
3
- .TH "BUNDLE\-INSTALL" "1" "July 2025" ""
3
+ .TH "BUNDLE\-INSTALL" "1" "August 2025" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-install\fR \- Install the dependencies specified in your Gemfile
6
6
  .SH "SYNOPSIS"
7
- \fBbundle install\fR [\-\-binstubs[=DIRECTORY]] [\-\-clean] [\-\-deployment] [\-\-frozen] [\-\-full\-index] [\-\-gemfile=GEMFILE] [\-\-jobs=NUMBER] [\-\-local] [\-\-no\-cache] [\-\-no\-prune] [\-\-path PATH] [\-\-prefer\-local] [\-\-quiet] [\-\-redownload] [\-\-retry=NUMBER] [\-\-shebang=SHEBANG] [\-\-standalone[=GROUP[ GROUP\|\.\|\.\|\.]]] [\-\-system] [\-\-trust\-policy=TRUST\-POLICY] [\-\-target\-rbconfig=TARGET\-RBCONFIG] [\-\-with=GROUP[ GROUP\|\.\|\.\|\.]] [\-\-without=GROUP[ GROUP\|\.\|\.\|\.]]
7
+ \fBbundle install\fR [\-\-binstubs[=DIRECTORY]] [\-\-clean] [\-\-deployment] [\-\-force] [\-\-frozen] [\-\-full\-index] [\-\-gemfile=GEMFILE] [\-\-jobs=NUMBER] [\-\-local] [\-\-no\-cache] [\-\-no\-prune] [\-\-path PATH] [\-\-prefer\-local] [\-\-quiet] [\-\-retry=NUMBER] [\-\-shebang=SHEBANG] [\-\-standalone[=GROUP[ GROUP\|\.\|\.\|\.]]] [\-\-system] [\-\-trust\-policy=TRUST\-POLICY] [\-\-target\-rbconfig=TARGET\-RBCONFIG] [\-\-with=GROUP[ GROUP\|\.\|\.\|\.]] [\-\-without=GROUP[ GROUP\|\.\|\.\|\.]]
8
8
  .SH "DESCRIPTION"
9
9
  Install the gems specified in your Gemfile(5)\. If this is the first time you run bundle install (and a \fBGemfile\.lock\fR does not exist), Bundler will fetch all remote sources, resolve dependencies and install all needed gems\.
10
10
  .P
@@ -29,8 +29,8 @@ In \fIdeployment mode\fR, Bundler will 'roll\-out' the bundle for production or
29
29
  .IP
30
30
  This option is deprecated in favor of the \fBdeployment\fR setting\.
31
31
  .TP
32
- \fB\-\-redownload\fR, \fB\-\-force\fR
33
- Force download every gem, even if the required versions are already available locally\.
32
+ \fB\-\-force\fR, \fB\-\-redownload\fR
33
+ Force reinstalling every gem, even if already installed\.
34
34
  .TP
35
35
  \fB\-\-frozen\fR
36
36
  Do not allow the Gemfile\.lock to be updated after this install\. Exits non\-zero if there are going to be changes to the Gemfile\.lock\.