rubygems-update 3.2.6 → 3.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/bundler/CHANGELOG.md +19 -0
  4. data/bundler/lib/bundler/build_metadata.rb +2 -2
  5. data/bundler/lib/bundler/cli/cache.rb +1 -0
  6. data/bundler/lib/bundler/definition.rb +1 -0
  7. data/bundler/lib/bundler/feature_flag.rb +0 -1
  8. data/bundler/lib/bundler/fetcher.rb +0 -1
  9. data/bundler/lib/bundler/gem_helper.rb +8 -6
  10. data/bundler/lib/bundler/installer.rb +0 -17
  11. data/bundler/lib/bundler/installer/standalone.rb +14 -0
  12. data/bundler/lib/bundler/lazy_specification.rb +1 -1
  13. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  14. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  15. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  16. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  17. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  18. data/bundler/lib/bundler/man/bundle-config.1 +4 -4
  19. data/bundler/lib/bundler/man/bundle-config.1.ronn +3 -3
  20. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  21. data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
  22. data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
  23. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  24. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  25. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  26. data/bundler/lib/bundler/man/bundle-install.1 +1 -1
  27. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  28. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  29. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  30. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  31. data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
  32. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  33. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  34. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  35. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  36. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  37. data/bundler/lib/bundler/man/bundle.1 +1 -1
  38. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  39. data/bundler/lib/bundler/resolver.rb +32 -17
  40. data/bundler/lib/bundler/resolver/spec_group.rb +1 -4
  41. data/bundler/lib/bundler/settings.rb +1 -1
  42. data/bundler/lib/bundler/source/git.rb +1 -1
  43. data/bundler/lib/bundler/source/rubygems.rb +0 -1
  44. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
  45. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
  46. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +11 -0
  47. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +1 -1
  48. data/bundler/lib/bundler/version.rb +1 -1
  49. data/lib/rubygems.rb +1 -1
  50. data/lib/rubygems/installer_uninstaller_utils.rb +6 -1
  51. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +1 -1
  52. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +1 -1
  53. data/rubygems-update.gemspec +1 -1
  54. data/test/rubygems/test_gem_installer.rb +2 -0
  55. data/test/rubygems/test_gem_stream_ui.rb +1 -1
  56. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '093385346fd2dadfc857a5fcbea99a97af3067867975c40fc7221369cc2bae20'
4
- data.tar.gz: 42de60d07aeefb67549285a2d76c01aabe903747affcc348bd8ec1d3ad079469
3
+ metadata.gz: 6c18e3412218b88b1351a2dcd3096240a1b5fa833aa26c58efee7a70e72601d4
4
+ data.tar.gz: 9f8fff96b275641a2fd60220cbfa98343af11c177c8797261f1d99089f4345c0
5
5
  SHA512:
6
- metadata.gz: 3db9aa4bd25ce7f35219c7c3a56c0937f02c31c1d40ff0b51cc4077a7624a44036e01ae31beecac396146021e1063603675956d136670517bdb285d927e2879e
7
- data.tar.gz: 7a0be9453ed03fc389f4a31e5a39907b1c4295cdffb979f91c9ac77acb3ec66950424992a3da187bfde4ec5a5f1d7d9797ad9c58404039aaf8e5db98f02685cb
6
+ metadata.gz: cb78b68b419a3ffa8e70a9688c563510c93982c0d3c26969594639bcf41ba6345b3a48cf1c4f756689a202d1b8d9be416d19715d18acea2640dd6dcb53cee2d1
7
+ data.tar.gz: 98fb817e049053336bd47a5525a4247096558eef13efd10e5a7c38ea407569ef62fe29d135142854759874424c624bf51ed292606257a9539e60d991f891abd2
@@ -1,3 +1,10 @@
1
+ # 3.2.7 / 2021-01-26
2
+
3
+ ## Bug fixes:
4
+
5
+ * Generate plugin wrappers with relative requires. Pull request #4317 by
6
+ deivid-rodriguez
7
+
1
8
  # 3.2.6 / 2021-01-18
2
9
 
3
10
  ## Enhancements:
@@ -1,3 +1,22 @@
1
+ # 2.2.7 (January 26, 2021)
2
+
3
+ ## Enhancements:
4
+
5
+ - Improve error messages when dependency on bundler conflicts with running version [#4308](https://github.com/rubygems/rubygems/pull/4308)
6
+ - Avoid showing platforms with requirements in error messages [#4310](https://github.com/rubygems/rubygems/pull/4310)
7
+ - Introduce disable_local_revision_check config [#4237](https://github.com/rubygems/rubygems/pull/4237)
8
+ - Reverse rubygems require mixin with bundler standalone [#4299](https://github.com/rubygems/rubygems/pull/4299)
9
+
10
+ ## Bug fixes:
11
+
12
+ - Fix releasing from a not yet pushed branch [#4309](https://github.com/rubygems/rubygems/pull/4309)
13
+ - Install cache only once if it already exists [#4304](https://github.com/rubygems/rubygems/pull/4304)
14
+ - Fix `force_ruby_platform` no longer being respected [#4302](https://github.com/rubygems/rubygems/pull/4302)
15
+
16
+ ## Performance:
17
+
18
+ - Fix resolver dependency comparison [#4289](https://github.com/rubygems/rubygems/pull/4289)
19
+
1
20
  # 2.2.6 (January 18, 2021)
2
21
 
3
22
  ## Enhancements:
@@ -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 = "2021-01-19".freeze
8
- @git_commit_sha = "e95bea3837".freeze
7
+ @built_at = "2021-01-27".freeze
8
+ @git_commit_sha = "7bc7ecb660".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -30,6 +30,7 @@ module Bundler
30
30
  require_relative "install"
31
31
  options = self.options.dup
32
32
  options["local"] = false if Bundler.settings[:cache_all_platforms]
33
+ options["no-cache"] = true
33
34
  Bundler::CLI::Install.new(options).run
34
35
  end
35
36
 
@@ -913,6 +913,7 @@ module Bundler
913
913
  metadata_dependencies.each do |dep|
914
914
  source_requirements[dep.name] = sources.metadata_source
915
915
  end
916
+ source_requirements[:default_bundler] = source_requirements["bundler"] || source_requirements[:default]
916
917
  source_requirements["bundler"] = sources.metadata_source # needs to come last to override
917
918
  source_requirements
918
919
  end
@@ -27,7 +27,6 @@ module Bundler
27
27
 
28
28
  (1..10).each {|v| define_method("bundler_#{v}_mode?") { major_version >= v } }
29
29
 
30
- settings_flag(:allow_bundler_dependency_conflicts) { bundler_3_mode? }
31
30
  settings_flag(:allow_offline_install) { bundler_3_mode? }
32
31
  settings_flag(:auto_clean_without_path) { bundler_3_mode? }
33
32
  settings_flag(:cache_all) { bundler_3_mode? }
@@ -137,7 +137,6 @@ module Bundler
137
137
  end
138
138
 
139
139
  specs.each do |name, version, platform, dependencies, metadata|
140
- next if name == "bundler"
141
140
  spec = if dependencies
142
141
  EndpointSpecification.new(name, version, platform, dependencies, metadata)
143
142
  else
@@ -116,19 +116,21 @@ module Bundler
116
116
 
117
117
  def git_push(remote = nil)
118
118
  remote ||= default_remote
119
- perform_git_push remote
119
+ perform_git_push "#{remote} refs/heads/#{current_branch}"
120
120
  perform_git_push "#{remote} refs/tags/#{version_tag}"
121
121
  Bundler.ui.confirm "Pushed git commits and release tag."
122
122
  end
123
123
 
124
124
  def default_remote
125
- # We can replace this with `git branch --show-current` once we drop support for git < 2.22.0
126
- current_branch = sh(%w[git rev-parse --abbrev-ref HEAD]).gsub(%r{\Aheads/}, "").strip
125
+ remote_for_branch, status = sh_with_status(%W[git config --get branch.#{current_branch}.remote])
126
+ return "origin" unless status.success?
127
127
 
128
- remote_for_branch = sh(%W[git config --get branch.#{current_branch}.remote]).strip
129
- return "origin" if remote_for_branch.empty?
128
+ remote_for_branch.strip
129
+ end
130
130
 
131
- remote_for_branch
131
+ def current_branch
132
+ # We can replace this with `git branch --show-current` once we drop support for git < 2.22.0
133
+ sh(%w[git rev-parse --abbrev-ref HEAD]).gsub(%r{\Aheads/}, "").strip
132
134
  end
133
135
 
134
136
  def allowed_push_host
@@ -82,7 +82,6 @@ module Bundler
82
82
 
83
83
  if resolve_if_needed(options)
84
84
  ensure_specs_are_compatible!
85
- warn_on_incompatible_bundler_deps
86
85
  load_plugins
87
86
  options.delete(:jobs)
88
87
  else
@@ -265,22 +264,6 @@ module Bundler
265
264
  end
266
265
  end
267
266
 
268
- def warn_on_incompatible_bundler_deps
269
- bundler_version = Gem::Version.create(Bundler::VERSION)
270
- @definition.specs.each do |spec|
271
- spec.dependencies.each do |dep|
272
- next if dep.type == :development
273
- next unless dep.name == "bundler".freeze
274
- next if dep.requirement.satisfied_by?(bundler_version)
275
-
276
- Bundler.ui.warn "#{spec.name} (#{spec.version}) has dependency" \
277
- " #{SharedHelpers.pretty_dependency(dep)}" \
278
- ", which is unsatisfied by the current bundler version #{VERSION}" \
279
- ", so the dependency is being ignored"
280
- end
281
- end
282
- end
283
-
284
267
  def install_in_parallel(size, standalone, force = false)
285
268
  spec_installations = ParallelInstaller.call(self, @definition.specs, size, standalone, force)
286
269
  spec_installations.each do |installation|
@@ -15,6 +15,7 @@ module Bundler
15
15
  file.puts "ruby_engine = RUBY_ENGINE"
16
16
  file.puts "ruby_version = RbConfig::CONFIG[\"ruby_version\"]"
17
17
  file.puts "path = File.expand_path('..', __FILE__)"
18
+ file.puts reverse_rubygems_kernel_mixin
18
19
  paths.each do |path|
19
20
  file.puts %($:.unshift File.expand_path("\#{path}/#{path}"))
20
21
  end
@@ -48,5 +49,18 @@ module Bundler
48
49
  error_message = "#{spec.name} #{spec.version} has an invalid gemspec"
49
50
  raise Gem::InvalidSpecificationException.new(error_message)
50
51
  end
52
+
53
+ def reverse_rubygems_kernel_mixin
54
+ <<~END
55
+ kernel = (class << ::Kernel; self; end)
56
+ [kernel, ::Kernel].each do |k|
57
+ if k.private_method_defined?(:gem_original_require)
58
+ k.send(:remove_method, :require)
59
+ k.send(:define_method, :require, k.instance_method(:gem_original_require))
60
+ k.send(:private, :require)
61
+ end
62
+ end
63
+ END
64
+ end
51
65
  end
52
66
  end
@@ -140,7 +140,7 @@ module Bundler
140
140
  # explicitly add a more specific platform.
141
141
  #
142
142
  def ruby_platform_materializes_to_ruby_platform?
143
- !Bundler.most_specific_locked_platform?(Gem::Platform::RUBY)
143
+ !Bundler.most_specific_locked_platform?(Gem::Platform::RUBY) || Bundler.settings[:force_ruby_platform]
144
144
  end
145
145
  end
146
146
  end
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-ADD" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-ADD" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-BINSTUBS" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-BINSTUBS" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-binstubs\fR \- Install the binstubs of the listed gems
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CACHE" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-CACHE" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-cache\fR \- Package your needed \fB\.gem\fR files into your application
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CHECK" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-CHECK" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CLEAN" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-CLEAN" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CONFIG" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-CONFIG" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-config\fR \- Set bundler configuration options
@@ -136,9 +136,6 @@ Any periods in the configuration keys must be replaced with two underscores when
136
136
  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\.
137
137
  .
138
138
  .IP "\(bu" 4
139
- \fBallow_bundler_dependency_conflicts\fR (\fBBUNDLE_ALLOW_BUNDLER_DEPENDENCY_CONFLICTS\fR): Allow resolving to specifications that have dependencies on \fBbundler\fR that are incompatible with the running Bundler version\.
140
- .
141
- .IP "\(bu" 4
142
139
  \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
143
140
  .
144
141
  .IP "\(bu" 4
@@ -184,6 +181,9 @@ The following is a list of all configuration keys and their purpose\. You can le
184
181
  \fBdisable_local_branch_check\fR (\fBBUNDLE_DISABLE_LOCAL_BRANCH_CHECK\fR): Allow Bundler to use a local git override without a branch specified in the Gemfile\.
185
182
  .
186
183
  .IP "\(bu" 4
184
+ \fBdisable_local_revision_check\fR (\fBBUNDLE_DISABLE_LOCAL_REVISION_CHECK\fR): Allow Bundler to use a local git override without checking if the revision present in the lockfile is present in the repository\.
185
+ .
186
+ .IP "\(bu" 4
187
187
  \fBdisable_multisource\fR (\fBBUNDLE_DISABLE_MULTISOURCE\fR): When set, Gemfiles containing multiple sources will produce errors instead of warnings\. Use \fBbundle config unset disable_multisource\fR to unset\.
188
188
  .
189
189
  .IP "\(bu" 4
@@ -133,9 +133,6 @@ the environment variable `BUNDLE_LOCAL__RACK`.
133
133
  The following is a list of all configuration keys and their purpose. You can
134
134
  learn more about their operation in [bundle install(1)](bundle-install.1.html).
135
135
 
136
- * `allow_bundler_dependency_conflicts` (`BUNDLE_ALLOW_BUNDLER_DEPENDENCY_CONFLICTS`):
137
- Allow resolving to specifications that have dependencies on `bundler` that
138
- are incompatible with the running Bundler version.
139
136
  * `allow_deployment_source_credential_changes` (`BUNDLE_ALLOW_DEPLOYMENT_SOURCE_CREDENTIAL_CHANGES`):
140
137
  When in deployment mode, allow changing the credentials to a gem's source.
141
138
  Ex: `https://some.host.com/gems/path/` -> `https://user_name:password@some.host.com/gems/path`
@@ -178,6 +175,9 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
178
175
  * `disable_local_branch_check` (`BUNDLE_DISABLE_LOCAL_BRANCH_CHECK`):
179
176
  Allow Bundler to use a local git override without a branch specified in the
180
177
  Gemfile.
178
+ * `disable_local_revision_check` (`BUNDLE_DISABLE_LOCAL_REVISION_CHECK`):
179
+ Allow Bundler to use a local git override without checking if the revision
180
+ present in the lockfile is present in the repository.
181
181
  * `disable_multisource` (`BUNDLE_DISABLE_MULTISOURCE`):
182
182
  When set, Gemfiles containing multiple sources will produce errors
183
183
  instead of warnings.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-DOCTOR" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-DOCTOR" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-doctor\fR \- Checks the bundle for common problems
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-EXEC" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-EXEC" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-exec\fR \- Execute a command in the context of the bundle
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-GEM" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-GEM" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INFO" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-INFO" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-info\fR \- Show information for the given gem in your bundle
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INIT" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-INIT" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-init\fR \- Generates a Gemfile into the current working directory
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INJECT" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-INJECT" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-inject\fR \- Add named gem(s) with version requirements to Gemfile
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-INSTALL" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-INSTALL" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-install\fR \- Install the dependencies specified in your Gemfile
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-LIST" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-LIST" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-list\fR \- List all the gems in the bundle
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-LOCK" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-LOCK" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-lock\fR \- Creates / Updates a lockfile without installing
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-OPEN" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-OPEN" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-open\fR \- Opens the source directory for a gem in your bundle
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-OUTDATED" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-OUTDATED" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-outdated\fR \- List installed gems with newer versions available
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-PLATFORM" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-PLATFORM" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-platform\fR \- Displays platform compatibility information
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-PRISTINE" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-PRISTINE" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-pristine\fR \- Restores installed gems to their pristine condition
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-REMOVE" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-REMOVE" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-remove\fR \- Removes gems from the Gemfile
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-SHOW" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-SHOW" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-show\fR \- Shows all the gems in your bundle, or the path to a gem
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-UPDATE" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-UPDATE" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-update\fR \- Update your gems to the latest available versions
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-VIZ" "1" "November 2020" "" ""
4
+ .TH "BUNDLE\-VIZ" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-viz\fR \- Generates a visual dependency graph for your Gemfile
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE" "1" "November 2020" "" ""
4
+ .TH "BUNDLE" "1" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\fR \- Ruby Dependency Management
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "GEMFILE" "5" "November 2020" "" ""
4
+ .TH "GEMFILE" "5" "January 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
@@ -37,7 +37,6 @@ module Bundler
37
37
  additional_base_requirements.each {|d| @base_dg.add_vertex(d.name, d) }
38
38
  @platforms = platforms
39
39
  @gem_version_promoter = gem_version_promoter
40
- @allow_bundler_dependency_conflicts = Bundler.feature_flag.allow_bundler_dependency_conflicts?
41
40
  @use_gvp = Bundler.feature_flag.use_gem_version_promoter_for_major_updates? || !@gem_version_promoter.major?
42
41
  @lockfile_uses_separate_rubygems_sources = Bundler.feature_flag.disable_multisource?
43
42
  end
@@ -138,7 +137,6 @@ module Bundler
138
137
  nested.reduce([]) do |groups, (version, specs)|
139
138
  next groups if locked_requirement && !locked_requirement.satisfied_by?(version)
140
139
  spec_group = SpecGroup.new(specs)
141
- spec_group.ignores_bundler_dependencies = @allow_bundler_dependency_conflicts
142
140
  groups << spec_group
143
141
  end
144
142
  else
@@ -165,10 +163,7 @@ module Bundler
165
163
  sg_ruby = sg.copy_for([Gem::Platform::RUBY])
166
164
  next unless sg_ruby
167
165
 
168
- sg_ruby_deps = sg_ruby.dependencies_for_activated_platforms.map(&:dep)
169
- sg_all_platforms_deps = sg_all_platforms.dependencies_for_activated_platforms.map(&:dep)
170
-
171
- selected_sgs.insert(-2, sg_ruby) if sg_ruby_deps != sg_all_platforms_deps
166
+ selected_sgs.insert(-2, sg_ruby)
172
167
  end
173
168
  selected_sgs
174
169
  end
@@ -211,6 +206,10 @@ module Bundler
211
206
  requirement.matches_spec?(spec) || spec.source.is_a?(Source::Gemspec)
212
207
  end
213
208
 
209
+ def dependencies_equal?(dependencies, other_dependencies)
210
+ dependencies.map(&:dep) == other_dependencies.map(&:dep)
211
+ end
212
+
214
213
  def relevant_sources_for_vertex(vertex)
215
214
  if vertex.root?
216
215
  [@source_requirements[vertex.name]]
@@ -329,10 +328,16 @@ module Bundler
329
328
  def version_conflict_message(e)
330
329
  # only show essential conflicts, if possible
331
330
  conflicts = e.conflicts.dup
332
- conflicts.delete_if do |_name, conflict|
333
- deps = conflict.requirement_trees.map(&:last).flatten(1)
334
- !Bundler::VersionRanges.empty?(*Bundler::VersionRanges.for_many(deps.map(&:requirement)))
331
+
332
+ if conflicts["bundler"]
333
+ conflicts.replace("bundler" => conflicts["bundler"])
334
+ else
335
+ conflicts.delete_if do |_name, conflict|
336
+ deps = conflict.requirement_trees.map(&:last).flatten(1)
337
+ !Bundler::VersionRanges.empty?(*Bundler::VersionRanges.for_many(deps.map(&:requirement)))
338
+ end
335
339
  end
340
+
336
341
  e = Molinillo::VersionConflict.new(conflicts, e.specification_provider) unless conflicts.empty?
337
342
 
338
343
  solver_name = "Bundler"
@@ -360,15 +365,25 @@ module Bundler
360
365
  :additional_message_for_conflict => lambda do |o, name, conflict|
361
366
  if name == "bundler"
362
367
  o << %(\n Current Bundler version:\n bundler (#{Bundler::VERSION}))
363
- other_bundler_required = !conflict.requirement.requirement.satisfied_by?(Gem::Version.new(Bundler::VERSION))
364
- end
365
368
 
366
- if name == "bundler" && other_bundler_required
367
- o << "\n"
368
- o << "This Gemfile requires a different version of Bundler.\n"
369
- o << "Perhaps you need to update Bundler by running `gem install bundler`?\n"
370
- end
371
- if conflict.locked_requirement
369
+ conflict_dependency = conflict.requirement
370
+ conflict_requirement = conflict_dependency.requirement
371
+ other_bundler_required = !conflict_requirement.satisfied_by?(Gem::Version.new(Bundler::VERSION))
372
+
373
+ if other_bundler_required
374
+ o << "\n\n"
375
+
376
+ candidate_specs = @source_requirements[:default_bundler].specs.search(conflict_dependency)
377
+ if candidate_specs.any?
378
+ target_version = candidate_specs.last.version
379
+ new_command = [File.basename($PROGRAM_NAME), "_#{target_version}_", *ARGV].join(" ")
380
+ o << "Your bundle requires a different version of Bundler than the one you're running.\n"
381
+ o << "Install the necessary version with `gem install bundler:#{target_version}` and rerun bundler using `#{new_command}`\n"
382
+ else
383
+ o << "Your bundle requires a different version of Bundler than the one you're running, and that version could not be found.\n"
384
+ end
385
+ end
386
+ elsif conflict.locked_requirement
372
387
  o << "\n"
373
388
  o << %(Running `bundle update` will rebuild your snapshot from scratch, using only\n)
374
389
  o << %(the gems in your Gemfile, which may resolve the conflict.\n)
@@ -6,7 +6,7 @@ module Bundler
6
6
  include GemHelpers
7
7
 
8
8
  attr_accessor :name, :version, :source
9
- attr_accessor :ignores_bundler_dependencies, :activated_platforms
9
+ attr_accessor :activated_platforms
10
10
 
11
11
  def initialize(all_specs)
12
12
  @all_specs = all_specs
@@ -20,7 +20,6 @@ module Bundler
20
20
  @specs = Hash.new do |specs, platform|
21
21
  specs[platform] = select_best_platform_match(all_specs, platform)
22
22
  end
23
- @ignores_bundler_dependencies = true
24
23
  end
25
24
 
26
25
  def to_specs
@@ -41,7 +40,6 @@ module Bundler
41
40
  return unless platforms.any?
42
41
 
43
42
  copied_sg = self.class.new(@all_specs)
44
- copied_sg.ignores_bundler_dependencies = @ignores_bundler_dependencies
45
43
  copied_sg.activated_platforms = platforms
46
44
  copied_sg
47
45
  end
@@ -98,7 +96,6 @@ module Bundler
98
96
  if spec = specs.first
99
97
  spec.dependencies.each do |dep|
100
98
  next if dep.type == :development
101
- next if @ignores_bundler_dependencies && dep.name == "bundler".freeze
102
99
  dependencies[platform] << DepProxy.get_proxy(dep, platform)
103
100
  end
104
101
  end
@@ -7,7 +7,6 @@ module Bundler
7
7
  autoload :Validator, File.expand_path("settings/validator", __dir__)
8
8
 
9
9
  BOOL_KEYS = %w[
10
- allow_bundler_dependency_conflicts
11
10
  allow_deployment_source_credential_changes
12
11
  allow_offline_install
13
12
  auto_clean_without_path
@@ -20,6 +19,7 @@ module Bundler
20
19
  disable_checksum_validation
21
20
  disable_exec_load
22
21
  disable_local_branch_check
22
+ disable_local_revision_check
23
23
  disable_multisource
24
24
  disable_shared_gems
25
25
  disable_version_check
@@ -148,7 +148,7 @@ module Bundler
148
148
 
149
149
  changed = cached_revision && cached_revision != git_proxy.revision
150
150
 
151
- if changed && !@unlocked && !git_proxy.contains?(cached_revision)
151
+ if !Bundler.settings[:disable_local_revision_check] && changed && !@unlocked && !git_proxy.contains?(cached_revision)
152
152
  raise GitError, "The Gemfile lock is pointing to revision #{shortref_for_display(cached_revision)} " \
153
153
  "but the current branch in your local override for #{name} does not contain such commit. " \
154
154
  "Please make sure your branch is up to date."
@@ -353,7 +353,6 @@ module Bundler
353
353
  def installed_specs
354
354
  @installed_specs ||= Index.build do |idx|
355
355
  Bundler.rubygems.all_specs.reverse_each do |spec|
356
- next if spec.name == "bundler"
357
356
  spec.source = self
358
357
  if Bundler.rubygems.spec_missing_extensions?(spec, false)
359
358
  Bundler.ui.debug "Source #{self} is ignoring #{spec} because it is missing extensions"
@@ -26,6 +26,13 @@ module Bundler::Molinillo
26
26
  end
27
27
  end
28
28
 
29
+ # (see Bundler::Molinillo::SpecificationProvider#dependencies_equal?)
30
+ def dependencies_equal?(dependencies, other_dependencies)
31
+ with_no_such_dependency_error_handling do
32
+ specification_provider.dependencies_equal?(dependencies, other_dependencies)
33
+ end
34
+ end
35
+
29
36
  # (see Bundler::Molinillo::SpecificationProvider#name_for)
30
37
  def name_for(dependency)
31
38
  with_no_such_dependency_error_handling do
@@ -121,7 +121,7 @@ module Bundler::Molinillo
121
121
  t = ''.dup
122
122
  depth = 2
123
123
  tree.each do |req|
124
- t << ' ' * depth << req.to_s
124
+ t << ' ' * depth << printable_requirement.call(req)
125
125
  unless tree.last == req
126
126
  if spec = conflict.activated_by_name[name_for(req)]
127
127
  t << %( was resolved to #{version_for_spec.call(spec)}, which)
@@ -45,6 +45,17 @@ module Bundler::Molinillo
45
45
  true
46
46
  end
47
47
 
48
+ # Determines whether two arrays of dependencies are equal, and thus can be
49
+ # grouped.
50
+ #
51
+ # @param [Array<Object>] dependencies
52
+ # @param [Array<Object>] other_dependencies
53
+ # @return [Boolean] whether `dependencies` and `other_dependencies` should
54
+ # be considered equal.
55
+ def dependencies_equal?(dependencies, other_dependencies)
56
+ dependencies == other_dependencies
57
+ end
58
+
48
59
  # Returns the name for the given `dependency`.
49
60
  # @note This method should be 'pure', i.e. the return value should depend
50
61
  # only on the `dependency` parameter.
@@ -807,7 +807,7 @@ module Bundler::Molinillo
807
807
 
808
808
  possibilities.reverse_each do |possibility|
809
809
  dependencies = dependencies_for(possibility)
810
- if current_possibility_set && current_possibility_set.dependencies == dependencies
810
+ if current_possibility_set && dependencies_equal?(current_possibility_set.dependencies, dependencies)
811
811
  current_possibility_set.possibilities.unshift(possibility)
812
812
  else
813
813
  possibility_sets.unshift(PossibilitySet.new(dependencies, [possibility]))
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.2.6".freeze
4
+ VERSION = "2.2.7".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
@@ -8,7 +8,7 @@
8
8
  require 'rbconfig'
9
9
 
10
10
  module Gem
11
- VERSION = "3.2.6".freeze
11
+ VERSION = "3.2.7".freeze
12
12
  end
13
13
 
14
14
  # Must be first since it unloads the prelude from 1.9.2
@@ -6,11 +6,16 @@
6
6
  module Gem::InstallerUninstallerUtils
7
7
 
8
8
  def regenerate_plugins_for(spec, plugins_dir)
9
+ plugins = spec.plugins
10
+ return if plugins.empty?
11
+
12
+ require 'pathname'
13
+
9
14
  spec.plugins.each do |plugin|
10
15
  plugin_script_path = File.join plugins_dir, "#{spec.name}_plugin#{File.extname(plugin)}"
11
16
 
12
17
  File.open plugin_script_path, 'wb' do |file|
13
- file.puts "require '#{plugin}'"
18
+ file.puts "require_relative '#{Pathname.new(plugin).relative_path_from(Pathname.new(plugins_dir))}'"
14
19
  end
15
20
 
16
21
  verbose plugin_script_path
@@ -128,7 +128,7 @@ module Gem::Resolver::Molinillo
128
128
 
129
129
  # Is there a path from `self` to `other` following edges in the
130
130
  # dependency graph?
131
- # @return true iff there is a path following edges within this {#graph}
131
+ # @return whether there is a path following edges within this {#graph}
132
132
  def path_to?(other)
133
133
  _path_to?(other)
134
134
  end
@@ -34,7 +34,7 @@ module Gem::Resolver::Molinillo
34
34
 
35
35
  # An error caused by attempting to fulfil a dependency that was circular
36
36
  #
37
- # @note This exception will be thrown iff a {Vertex} is added to a
37
+ # @note This exception will be thrown if and only if a {Vertex} is added to a
38
38
  # {DependencyGraph} that has a {DependencyGraph::Vertex#path_to?} an
39
39
  # existing {DependencyGraph::Vertex}
40
40
  class CircularDependencyError < ResolverError
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "rubygems-update"
5
- s.version = "3.2.6"
5
+ s.version = "3.2.7"
6
6
  s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
7
7
  s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
8
8
 
@@ -821,6 +821,8 @@ gem 'other', version
821
821
 
822
822
  assert !File.exist?(system_path), 'plugin written incorrect written to system plugins_dir'
823
823
  assert File.exist?(build_root_path), 'plugin not written to build_root'
824
+
825
+ refute_includes File.read(build_root_path), build_root
824
826
  end
825
827
 
826
828
  def test_keeps_plugins_up_to_date
@@ -5,7 +5,7 @@ require 'timeout'
5
5
 
6
6
  class TestGemStreamUI < Gem::TestCase
7
7
  # increase timeout with MJIT for --jit-wait testing
8
- mjit_enabled = defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
8
+ mjit_enabled = defined?(RubyVM::JIT) ? RubyVM::JIT.enabled? : defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
9
9
  SHORT_TIMEOUT = (RUBY_ENGINE == "ruby" && !mjit_enabled) ? 0.1 : 1.0
10
10
 
11
11
  module IsTty
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubygems-update
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.6
4
+ version: 3.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jim Weirich
@@ -16,7 +16,7 @@ authors:
16
16
  autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
- date: 2021-01-19 00:00:00.000000000 Z
19
+ date: 2021-01-27 00:00:00.000000000 Z
20
20
  dependencies: []
21
21
  description: |-
22
22
  A package (also known as a library) contains a set of functionality
@@ -765,7 +765,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
765
765
  - !ruby/object:Gem::Version
766
766
  version: '0'
767
767
  requirements: []
768
- rubygems_version: 3.3.0.dev
768
+ rubygems_version: 3.2.7
769
769
  signing_key:
770
770
  specification_version: 4
771
771
  summary: RubyGems is a package management framework for Ruby.