rubygems-update 3.5.9 → 3.5.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +66 -1
  3. data/CODE_OF_CONDUCT.md +79 -28
  4. data/CONTRIBUTING.md +2 -2
  5. data/Manifest.txt +1 -0
  6. data/POLICIES.md +75 -6
  7. data/bundler/CHANGELOG.md +52 -0
  8. data/bundler/lib/bundler/build_metadata.rb +2 -2
  9. data/bundler/lib/bundler/cli/install.rb +1 -1
  10. data/bundler/lib/bundler/cli.rb +5 -22
  11. data/bundler/lib/bundler/compact_index_client/cache.rb +16 -7
  12. data/bundler/lib/bundler/constants.rb +8 -1
  13. data/bundler/lib/bundler/definition.rb +70 -50
  14. data/bundler/lib/bundler/dependency.rb +2 -1
  15. data/bundler/lib/bundler/environment_preserver.rb +2 -20
  16. data/bundler/lib/bundler/errors.rb +14 -0
  17. data/bundler/lib/bundler/gem_helper.rb +1 -1
  18. data/bundler/lib/bundler/injector.rb +2 -1
  19. data/bundler/lib/bundler/installer.rb +8 -8
  20. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  21. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  22. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  23. data/bundler/lib/bundler/man/bundle-check.1 +3 -1
  24. data/bundler/lib/bundler/man/bundle-check.1.ronn +3 -0
  25. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  26. data/bundler/lib/bundler/man/bundle-config.1 +1 -3
  27. data/bundler/lib/bundler/man/bundle-config.1.ronn +0 -3
  28. data/bundler/lib/bundler/man/bundle-console.1 +1 -1
  29. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  30. data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
  31. data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
  32. data/bundler/lib/bundler/man/bundle-help.1 +1 -1
  33. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  34. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  35. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  36. data/bundler/lib/bundler/man/bundle-install.1 +1 -1
  37. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  38. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  39. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  40. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  41. data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
  42. data/bundler/lib/bundler/man/bundle-plugin.1 +1 -1
  43. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  44. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  45. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  46. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  47. data/bundler/lib/bundler/man/bundle-version.1 +1 -1
  48. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  49. data/bundler/lib/bundler/man/bundle.1 +1 -1
  50. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  51. data/bundler/lib/bundler/rubygems_ext.rb +29 -9
  52. data/bundler/lib/bundler/self_manager.rb +1 -1
  53. data/bundler/lib/bundler/settings.rb +0 -1
  54. data/bundler/lib/bundler/setup.rb +3 -0
  55. data/bundler/lib/bundler/shared_helpers.rb +6 -4
  56. data/bundler/lib/bundler/source/git/git_proxy.rb +8 -0
  57. data/bundler/lib/bundler/source/metadata.rb +2 -0
  58. data/bundler/lib/bundler/source/rubygems.rb +6 -18
  59. data/bundler/lib/bundler/source_list.rb +28 -4
  60. data/bundler/lib/bundler/spec_set.rb +1 -1
  61. data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +77 -29
  62. data/bundler/lib/bundler/version.rb +1 -1
  63. data/bundler/lib/bundler.rb +20 -0
  64. data/exe/update_rubygems +1 -1
  65. data/lib/rubygems/commands/pristine_command.rb +9 -6
  66. data/lib/rubygems/commands/setup_command.rb +2 -0
  67. data/lib/rubygems/commands/uninstall_command.rb +1 -1
  68. data/lib/rubygems/commands/update_command.rb +8 -9
  69. data/lib/rubygems/dependency.rb +1 -13
  70. data/lib/rubygems/deprecate.rb +79 -77
  71. data/lib/rubygems/ext/cargo_builder.rb +1 -16
  72. data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -1
  73. data/lib/rubygems/installer.rb +1 -1
  74. data/lib/rubygems/package/tar_header.rb +20 -4
  75. data/lib/rubygems/package.rb +11 -6
  76. data/lib/rubygems/platform.rb +1 -0
  77. data/lib/rubygems/specification.rb +35 -117
  78. data/lib/rubygems/specification_policy.rb +3 -1
  79. data/lib/rubygems/specification_record.rb +213 -0
  80. data/lib/rubygems/uninstaller.rb +15 -9
  81. data/lib/rubygems/util/licenses.rb +25 -0
  82. data/lib/rubygems.rb +8 -1
  83. data/rubygems-update.gemspec +1 -1
  84. metadata +4 -3
@@ -69,7 +69,6 @@ module Bundler
69
69
  @sources = sources
70
70
  @unlock = unlock
71
71
  @optional_groups = optional_groups
72
- @remote = false
73
72
  @prefer_local = false
74
73
  @specs = nil
75
74
  @ruby_version = ruby_version
@@ -92,11 +91,12 @@ module Bundler
92
91
  @platforms = @locked_platforms.dup
93
92
  @locked_bundler_version = @locked_gems.bundler_version
94
93
  @locked_ruby_version = @locked_gems.ruby_version
94
+ @originally_locked_deps = @locked_gems.dependencies
95
95
  @originally_locked_specs = SpecSet.new(@locked_gems.specs)
96
96
  @locked_checksums = @locked_gems.checksums
97
97
 
98
98
  if unlock != true
99
- @locked_deps = @locked_gems.dependencies
99
+ @locked_deps = @originally_locked_deps
100
100
  @locked_specs = @originally_locked_specs
101
101
  @locked_sources = @locked_gems.sources
102
102
  else
@@ -111,6 +111,7 @@ module Bundler
111
111
  @locked_gems = nil
112
112
  @locked_deps = {}
113
113
  @locked_specs = SpecSet.new([])
114
+ @originally_locked_deps = {}
114
115
  @originally_locked_specs = @locked_specs
115
116
  @locked_sources = []
116
117
  @locked_platforms = []
@@ -130,7 +131,7 @@ module Bundler
130
131
  @sources.merged_gem_lockfile_sections!(locked_gem_sources.first)
131
132
  end
132
133
 
133
- @unlock[:sources] ||= []
134
+ @sources_to_unlock = @unlock.delete(:sources) || []
134
135
  @unlock[:ruby] ||= if @ruby_version && locked_ruby_version_object
135
136
  @ruby_version.diff(locked_ruby_version_object)
136
137
  end
@@ -142,11 +143,13 @@ module Bundler
142
143
  @path_changes = converge_paths
143
144
  @source_changes = converge_sources
144
145
 
146
+ @explicit_unlocks = @unlock.delete(:gems) || []
147
+
145
148
  if @unlock[:conservative]
146
- @unlock[:gems] ||= @dependencies.map(&:name)
149
+ @gems_to_unlock = @explicit_unlocks.any? ? @explicit_unlocks : @dependencies.map(&:name)
147
150
  else
148
- eager_unlock = (@unlock[:gems] || []).map {|name| Dependency.new(name, ">= 0") }
149
- @unlock[:gems] = @locked_specs.for(eager_unlock, false, platforms).map(&:name).uniq
151
+ eager_unlock = @explicit_unlocks.map {|name| Dependency.new(name, ">= 0") }
152
+ @gems_to_unlock = @locked_specs.for(eager_unlock, false, platforms).map(&:name).uniq
150
153
  end
151
154
 
152
155
  @dependency_changes = converge_dependencies
@@ -160,37 +163,24 @@ module Bundler
160
163
  end
161
164
 
162
165
  def resolve_only_locally!
163
- @remote = false
164
166
  sources.local_only!
165
167
  resolve
166
168
  end
167
169
 
168
170
  def resolve_with_cache!
171
+ sources.local!
169
172
  sources.cached!
170
173
  resolve
171
174
  end
172
175
 
173
176
  def resolve_remotely!
174
- @remote = true
177
+ sources.cached!
175
178
  sources.remote!
176
179
  resolve
177
180
  end
178
181
 
179
- def resolution_mode=(options)
180
- if options["local"]
181
- @remote = false
182
- else
183
- @remote = true
184
- @prefer_local = options["prefer-local"]
185
- end
186
- end
187
-
188
- def setup_sources_for_resolve
189
- if @remote == false
190
- sources.cached!
191
- else
192
- sources.remote!
193
- end
182
+ def prefer_local!
183
+ @prefer_local = true
194
184
  end
195
185
 
196
186
  # For given dependency list returns a SpecSet with Gemspec of all the required
@@ -225,7 +215,6 @@ module Bundler
225
215
  @resolver = nil
226
216
  @resolution_packages = nil
227
217
  @specs = nil
228
- @gem_version_promoter = nil
229
218
 
230
219
  Bundler.ui.debug "The definition is missing dependencies, failed to resolve & materialize locally (#{e})"
231
220
  true
@@ -307,7 +296,12 @@ module Bundler
307
296
  end
308
297
  end
309
298
  else
310
- Bundler.ui.debug "Found changes from the lockfile, re-resolving dependencies because #{change_reason}"
299
+ if lockfile_exists?
300
+ Bundler.ui.debug "Found changes from the lockfile, re-resolving dependencies because #{change_reason}"
301
+ else
302
+ Bundler.ui.debug "Resolving dependencies because there's no lockfile"
303
+ end
304
+
311
305
  start_resolution
312
306
  end
313
307
  end
@@ -480,6 +474,8 @@ module Bundler
480
474
  private :sources
481
475
 
482
476
  def nothing_changed?
477
+ return false unless lockfile_exists?
478
+
483
479
  !@source_changes &&
484
480
  !@dependency_changes &&
485
481
  !@new_platform &&
@@ -566,8 +562,10 @@ module Bundler
566
562
  @resolution_packages ||= begin
567
563
  last_resolve = converge_locked_specs
568
564
  remove_invalid_platforms!(current_dependencies)
569
- packages = Resolver::Base.new(source_requirements, expanded_dependencies, last_resolve, @platforms, locked_specs: @originally_locked_specs, unlock: @unlock[:gems], prerelease: gem_version_promoter.pre?)
570
- additional_base_requirements_for_resolve(packages, last_resolve)
565
+ packages = Resolver::Base.new(source_requirements, expanded_dependencies, last_resolve, @platforms, locked_specs: @originally_locked_specs, unlock: @gems_to_unlock, prerelease: gem_version_promoter.pre?)
566
+ packages = additional_base_requirements_to_prevent_downgrades(packages, last_resolve)
567
+ packages = additional_base_requirements_to_force_updates(packages)
568
+ packages
571
569
  end
572
570
  end
573
571
 
@@ -582,7 +580,7 @@ module Bundler
582
580
  if missing_specs.any?
583
581
  missing_specs.each do |s|
584
582
  locked_gem = @locked_specs[s.name].last
585
- next if locked_gem.nil? || locked_gem.version != s.version || !@remote
583
+ next if locked_gem.nil? || locked_gem.version != s.version || sources.local_mode?
586
584
  raise GemNotFound, "Your bundle is locked to #{locked_gem} from #{locked_gem.source}, but that version can " \
587
585
  "no longer be found in that source. That means the author of #{locked_gem} has removed it. " \
588
586
  "You'll need to update your bundle to a version other than #{locked_gem} that hasn't been " \
@@ -601,7 +599,7 @@ module Bundler
601
599
  break if incomplete_specs.empty?
602
600
 
603
601
  Bundler.ui.debug("The lockfile does not have all gems needed for the current platform though, Bundler will still re-resolve dependencies")
604
- setup_sources_for_resolve
602
+ sources.remote!
605
603
  resolution_packages.delete(incomplete_specs)
606
604
  @resolve = start_resolution
607
605
  specs = resolve.materialize(dependencies)
@@ -671,14 +669,18 @@ module Bundler
671
669
 
672
670
  def change_reason
673
671
  if unlocking?
674
- unlock_reason = @unlock.reject {|_k, v| Array(v).empty? }.map do |k, v|
675
- if v == true
676
- k.to_s
677
- else
678
- v = Array(v)
679
- "#{k}: (#{v.join(", ")})"
680
- end
681
- end.join(", ")
672
+ unlock_targets = if @gems_to_unlock.any?
673
+ ["gems", @gems_to_unlock]
674
+ elsif @sources_to_unlock.any?
675
+ ["sources", @sources_to_unlock]
676
+ end
677
+
678
+ unlock_reason = if unlock_targets
679
+ "#{unlock_targets.first}: (#{unlock_targets.last.join(", ")})"
680
+ else
681
+ @unlock[:ruby] ? "ruby" : ""
682
+ end
683
+
682
684
  return "bundler is unlocking #{unlock_reason}"
683
685
  end
684
686
  [
@@ -733,7 +735,7 @@ module Bundler
733
735
  spec = @dependencies.find {|s| s.name == k }
734
736
  source = spec&.source
735
737
  if source&.respond_to?(:local_override!)
736
- source.unlock! if @unlock[:gems].include?(spec.name)
738
+ source.unlock! if @gems_to_unlock.include?(spec.name)
737
739
  locals << [source, source.local_override!(v)]
738
740
  end
739
741
  end
@@ -741,7 +743,7 @@ module Bundler
741
743
  sources_with_changes = locals.select do |source, changed|
742
744
  changed || specs_changed?(source)
743
745
  end.map(&:first)
744
- !sources_with_changes.each {|source| @unlock[:sources] << source.name }.empty?
746
+ !sources_with_changes.each {|source| @sources_to_unlock << source.name }.empty?
745
747
  end
746
748
 
747
749
  def check_lockfile
@@ -818,7 +820,7 @@ module Bundler
818
820
  # gem), unlock it. For git sources, this means to unlock the revision, which
819
821
  # will cause the `ref` used to be the most recent for the branch (or master) if
820
822
  # an explicit `ref` is not used.
821
- if source.respond_to?(:unlock!) && @unlock[:sources].include?(source.name)
823
+ if source.respond_to?(:unlock!) && @sources_to_unlock.include?(source.name)
822
824
  source.unlock!
823
825
  changes = true
824
826
  end
@@ -835,9 +837,7 @@ module Bundler
835
837
  dep.source = sources.get(dep.source)
836
838
  end
837
839
 
838
- next if unlocking?
839
-
840
- unless locked_dep = @locked_deps[dep.name]
840
+ unless locked_dep = @originally_locked_deps[dep.name]
841
841
  changes = true
842
842
  next
843
843
  end
@@ -864,7 +864,7 @@ module Bundler
864
864
  def converge_locked_specs
865
865
  converged = converge_specs(@locked_specs)
866
866
 
867
- resolve = SpecSet.new(converged.reject {|s| @unlock[:gems].include?(s.name) })
867
+ resolve = SpecSet.new(converged.reject {|s| @gems_to_unlock.include?(s.name) })
868
868
 
869
869
  diff = nil
870
870
 
@@ -897,7 +897,7 @@ module Bundler
897
897
 
898
898
  @specs_that_changed_sources << s if gemfile_source != lockfile_source
899
899
  deps << dep if !dep.source || lockfile_source.include?(dep.source)
900
- @unlock[:gems] << name if lockfile_source.include?(dep.source) && lockfile_source != gemfile_source
900
+ @gems_to_unlock << name if lockfile_source.include?(dep.source) && lockfile_source != gemfile_source
901
901
 
902
902
  # Replace the locked dependency's source with the equivalent source from the Gemfile
903
903
  s.source = gemfile_source
@@ -906,7 +906,7 @@ module Bundler
906
906
  s.source = default_source unless sources.get(lockfile_source)
907
907
  end
908
908
 
909
- next if @unlock[:sources].include?(s.source.name)
909
+ next if @sources_to_unlock.include?(s.source.name)
910
910
 
911
911
  # Path sources have special logic
912
912
  if s.source.instance_of?(Source::Path) || s.source.instance_of?(Source::Gemspec)
@@ -928,12 +928,12 @@ module Bundler
928
928
  else
929
929
  # If the spec is no longer in the path source, unlock it. This
930
930
  # commonly happens if the version changed in the gemspec
931
- @unlock[:gems] << name
931
+ @gems_to_unlock << name
932
932
  end
933
933
  end
934
934
 
935
935
  if dep.nil? && requested_dependencies.find {|d| name == d.name }
936
- @unlock[:gems] << s.name
936
+ @gems_to_unlock << s.name
937
937
  else
938
938
  converged << s
939
939
  end
@@ -960,7 +960,7 @@ module Bundler
960
960
  else
961
961
  { default: Source::RubygemsAggregate.new(sources, source_map) }.merge(source_map.direct_requirements)
962
962
  end
963
- source_requirements.merge!(source_map.locked_requirements) unless @remote
963
+ source_requirements.merge!(source_map.locked_requirements) if nothing_changed?
964
964
  metadata_dependencies.each do |dep|
965
965
  source_requirements[dep.name] = sources.metadata_source
966
966
  end
@@ -1010,7 +1010,7 @@ module Bundler
1010
1010
  current == proposed
1011
1011
  end
1012
1012
 
1013
- def additional_base_requirements_for_resolve(resolution_packages, last_resolve)
1013
+ def additional_base_requirements_to_prevent_downgrades(resolution_packages, last_resolve)
1014
1014
  return resolution_packages unless @locked_gems && !sources.expired_sources?(@locked_gems.sources)
1015
1015
  converge_specs(@originally_locked_specs - last_resolve).each do |locked_spec|
1016
1016
  next if locked_spec.source.is_a?(Source::Path)
@@ -1019,6 +1019,26 @@ module Bundler
1019
1019
  resolution_packages
1020
1020
  end
1021
1021
 
1022
+ def additional_base_requirements_to_force_updates(resolution_packages)
1023
+ return resolution_packages if @explicit_unlocks.empty?
1024
+ full_update = dup_for_full_unlock.resolve
1025
+ @explicit_unlocks.each do |name|
1026
+ version = full_update[name].first&.version
1027
+ resolution_packages.base_requirements[name] = Gem::Requirement.new("= #{version}") if version
1028
+ end
1029
+ resolution_packages
1030
+ end
1031
+
1032
+ def dup_for_full_unlock
1033
+ unlocked_definition = self.class.new(@lockfile, @dependencies, @sources, true, @ruby_version, @optional_groups, @gemfiles)
1034
+ unlocked_definition.gem_version_promoter.tap do |gvp|
1035
+ gvp.level = gem_version_promoter.level
1036
+ gvp.strict = gem_version_promoter.strict
1037
+ gvp.pre = gem_version_promoter.pre
1038
+ end
1039
+ unlocked_definition
1040
+ end
1041
+
1022
1042
  def remove_invalid_platforms!(dependencies)
1023
1043
  return if Bundler.frozen_bundle?
1024
1044
 
@@ -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, :path, :git, :github, :branch, :ref
10
+ attr_reader :groups, :platforms, :gemfile, :path, :git, :github, :branch, :ref, :glob
11
11
 
12
12
  ALL_RUBY_VERSIONS = (18..27).to_a.concat((30..34).to_a).freeze
13
13
  PLATFORM_MAP = {
@@ -39,6 +39,7 @@ module Bundler
39
39
  @github = options["github"]
40
40
  @branch = options["branch"]
41
41
  @ref = options["ref"]
42
+ @glob = options["glob"]
42
43
  @platforms = Array(options["platforms"])
43
44
  @env = options["env"]
44
45
  @should_include = options.fetch("should_include", true)
@@ -19,14 +19,7 @@ module Bundler
19
19
  BUNDLER_PREFIX = "BUNDLER_ORIG_"
20
20
 
21
21
  def self.from_env
22
- new(env_to_hash(ENV), BUNDLER_KEYS)
23
- end
24
-
25
- def self.env_to_hash(env)
26
- to_hash = env.to_hash
27
- return to_hash unless Gem.win_platform?
28
-
29
- to_hash.each_with_object({}) {|(k,v), a| a[k.upcase] = v }
22
+ new(ENV.to_hash, BUNDLER_KEYS)
30
23
  end
31
24
 
32
25
  # @param env [Hash]
@@ -39,18 +32,7 @@ module Bundler
39
32
 
40
33
  # Replaces `ENV` with the bundler environment variables backed up
41
34
  def replace_with_backup
42
- unless Gem.win_platform?
43
- ENV.replace(backup)
44
- return
45
- end
46
-
47
- # Fallback logic for Windows below to workaround
48
- # https://bugs.ruby-lang.org/issues/16798. Can be dropped once all
49
- # supported rubies include the fix for that.
50
-
51
- ENV.clear
52
-
53
- backup.each {|k, v| ENV[k] = v }
35
+ ENV.replace(backup)
54
36
  end
55
37
 
56
38
  # @return [Hash]
@@ -230,4 +230,18 @@ module Bundler
230
230
 
231
231
  status_code(38)
232
232
  end
233
+
234
+ class CorruptBundlerInstallError < BundlerError
235
+ def initialize(loaded_spec)
236
+ @loaded_spec = loaded_spec
237
+ end
238
+
239
+ def message
240
+ "The running version of Bundler (#{Bundler::VERSION}) does not match the version of the specification installed for it (#{@loaded_spec.version}). " \
241
+ "This can be caused by reinstalling Ruby without removing previous installation, leaving around an upgraded default version of Bundler. " \
242
+ "Reinstalling Ruby from scratch should fix the problem."
243
+ end
244
+
245
+ status_code(39)
246
+ end
233
247
  end
@@ -47,7 +47,7 @@ module Bundler
47
47
  built_gem_path = build_gem
48
48
  end
49
49
 
50
- desc "Generate SHA512 checksum if #{name}-#{version}.gem into the checksums directory."
50
+ desc "Generate SHA512 checksum of #{name}-#{version}.gem into the checksums directory."
51
51
  task "build:checksum" => "build" do
52
52
  build_checksum(built_gem_path)
53
53
  end
@@ -120,9 +120,10 @@ module Bundler
120
120
  github = ", :github => \"#{d.github}\"" unless d.github.nil?
121
121
  branch = ", :branch => \"#{d.branch}\"" unless d.branch.nil?
122
122
  ref = ", :ref => \"#{d.ref}\"" unless d.ref.nil?
123
+ glob = ", :glob => \"#{d.glob}\"" unless d.glob.nil?
123
124
  require_path = ", :require => #{convert_autorequire(d.autorequire)}" unless d.autorequire.nil?
124
125
 
125
- %(gem #{name}#{requirement}#{group}#{source}#{path}#{git}#{github}#{branch}#{ref}#{require_path})
126
+ %(gem #{name}#{requirement}#{group}#{source}#{path}#{git}#{github}#{branch}#{ref}#{glob}#{require_path})
126
127
  end.join("\n")
127
128
  end
128
129
 
@@ -249,15 +249,15 @@ module Bundler
249
249
 
250
250
  # returns whether or not a re-resolve was needed
251
251
  def resolve_if_needed(options)
252
- @definition.resolution_mode = options
253
-
254
- if !@definition.unlocking? && !options["force"] && !Bundler.settings[:inline] && Bundler.default_lockfile.file?
255
- return false if @definition.nothing_changed? && !@definition.missing_specs?
252
+ @definition.prefer_local! if options["prefer-local"]
253
+
254
+ if options["local"] || (@definition.no_resolve_needed? && !@definition.missing_specs?)
255
+ @definition.resolve_with_cache!
256
+ false
257
+ else
258
+ @definition.resolve_remotely!
259
+ true
256
260
  end
257
-
258
- @definition.setup_sources_for_resolve
259
-
260
- true
261
261
  end
262
262
 
263
263
  def lock
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-ADD" "1" "March 2024" ""
3
+ .TH "BUNDLE\-ADD" "1" "May 2024" ""
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 nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-BINSTUBS" "1" "March 2024" ""
3
+ .TH "BUNDLE\-BINSTUBS" "1" "May 2024" ""
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 nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CACHE" "1" "March 2024" ""
3
+ .TH "BUNDLE\-CACHE" "1" "May 2024" ""
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 nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CHECK" "1" "March 2024" ""
3
+ .TH "BUNDLE\-CHECK" "1" "May 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems
6
6
  .SH "SYNOPSIS"
@@ -9,6 +9,8 @@
9
9
  \fBcheck\fR searches the local machine for each of the gems requested in the Gemfile\. If all gems are found, Bundler prints a success message and exits with a status of 0\.
10
10
  .P
11
11
  If not, the first missing gem is listed and Bundler exits status 1\.
12
+ .P
13
+ If the lockfile needs to be updated then it will be resolved using the gems installed on the local machine, if they satisfy the requirements\.
12
14
  .SH "OPTIONS"
13
15
  .TP
14
16
  \fB\-\-dry\-run\fR
@@ -15,6 +15,9 @@ a status of 0.
15
15
 
16
16
  If not, the first missing gem is listed and Bundler exits status 1.
17
17
 
18
+ If the lockfile needs to be updated then it will be resolved using the gems
19
+ installed on the local machine, if they satisfy the requirements.
20
+
18
21
  ## OPTIONS
19
22
 
20
23
  * `--dry-run`:
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CLEAN" "1" "March 2024" ""
3
+ .TH "BUNDLE\-CLEAN" "1" "May 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CONFIG" "1" "March 2024" ""
3
+ .TH "BUNDLE\-CONFIG" "1" "May 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-config\fR \- Set bundler configuration options
6
6
  .SH "SYNOPSIS"
@@ -95,8 +95,6 @@ Any periods in the configuration keys must be replaced with two underscores when
95
95
  .SH "LIST OF AVAILABLE KEYS"
96
96
  The following is a list of all configuration keys and their purpose\. You can learn more about their operation in bundle install(1) \fIbundle\-install\.1\.html\fR\.
97
97
  .IP "\(bu" 4
98
- \fBallow_deployment_source_credential_changes\fR (\fBBUNDLE_ALLOW_DEPLOYMENT_SOURCE_CREDENTIAL_CHANGES\fR): When in deployment mode, allow changing the credentials to a gem's source\. Ex: \fBhttps://some\.host\.com/gems/path/\fR \-> \fBhttps://user_name:password@some\.host\.com/gems/path\fR
99
- .IP "\(bu" 4
100
98
  \fBallow_offline_install\fR (\fBBUNDLE_ALLOW_OFFLINE_INSTALL\fR): Allow Bundler to use cached data when installing without network access\.
101
99
  .IP "\(bu" 4
102
100
  \fBauto_clean_without_path\fR (\fBBUNDLE_AUTO_CLEAN_WITHOUT_PATH\fR): Automatically run \fBbundle clean\fR after installing when an explicit \fBpath\fR has not been set and Bundler is not installing into the system gems\.
@@ -137,9 +137,6 @@ the environment variable `BUNDLE_LOCAL__RACK`.
137
137
  The following is a list of all configuration keys and their purpose. You can
138
138
  learn more about their operation in [bundle install(1)](bundle-install.1.html).
139
139
 
140
- * `allow_deployment_source_credential_changes` (`BUNDLE_ALLOW_DEPLOYMENT_SOURCE_CREDENTIAL_CHANGES`):
141
- When in deployment mode, allow changing the credentials to a gem's source.
142
- Ex: `https://some.host.com/gems/path/` -> `https://user_name:password@some.host.com/gems/path`
143
140
  * `allow_offline_install` (`BUNDLE_ALLOW_OFFLINE_INSTALL`):
144
141
  Allow Bundler to use cached data when installing without network access.
145
142
  * `auto_clean_without_path` (`BUNDLE_AUTO_CLEAN_WITHOUT_PATH`):
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-CONSOLE" "1" "March 2024" ""
3
+ .TH "BUNDLE\-CONSOLE" "1" "May 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-console\fR \- Deprecated way to open an IRB session with the bundle pre\-loaded
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-DOCTOR" "1" "March 2024" ""
3
+ .TH "BUNDLE\-DOCTOR" "1" "May 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-doctor\fR \- Checks the bundle for common problems
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-EXEC" "1" "March 2024" ""
3
+ .TH "BUNDLE\-EXEC" "1" "May 2024" ""
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 nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-GEM" "1" "March 2024" ""
3
+ .TH "BUNDLE\-GEM" "1" "May 2024" ""
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 nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-HELP" "1" "March 2024" ""
3
+ .TH "BUNDLE\-HELP" "1" "May 2024" ""
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 nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-INFO" "1" "March 2024" ""
3
+ .TH "BUNDLE\-INFO" "1" "May 2024" ""
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 nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-INIT" "1" "March 2024" ""
3
+ .TH "BUNDLE\-INIT" "1" "May 2024" ""
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 nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-INJECT" "1" "March 2024" ""
3
+ .TH "BUNDLE\-INJECT" "1" "May 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-inject\fR \- Add named gem(s) with version requirements to Gemfile
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-INSTALL" "1" "March 2024" ""
3
+ .TH "BUNDLE\-INSTALL" "1" "May 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-install\fR \- Install the dependencies specified in your Gemfile
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-LIST" "1" "March 2024" ""
3
+ .TH "BUNDLE\-LIST" "1" "May 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-list\fR \- List all the gems in the bundle
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-LOCK" "1" "March 2024" ""
3
+ .TH "BUNDLE\-LOCK" "1" "May 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-lock\fR \- Creates / Updates a lockfile without installing
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-OPEN" "1" "March 2024" ""
3
+ .TH "BUNDLE\-OPEN" "1" "May 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-open\fR \- Opens the source directory for a gem in your bundle
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-OUTDATED" "1" "March 2024" ""
3
+ .TH "BUNDLE\-OUTDATED" "1" "May 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-outdated\fR \- List installed gems with newer versions available
6
6
  .SH "SYNOPSIS"
@@ -1,6 +1,6 @@
1
1
  .\" generated with nRonn/v0.11.1
2
2
  .\" https://github.com/n-ronn/nronn/tree/0.11.1
3
- .TH "BUNDLE\-PLATFORM" "1" "March 2024" ""
3
+ .TH "BUNDLE\-PLATFORM" "1" "May 2024" ""
4
4
  .SH "NAME"
5
5
  \fBbundle\-platform\fR \- Displays platform compatibility information
6
6
  .SH "SYNOPSIS"