rubygems-update 3.2.6 → 3.2.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +43 -0
  3. data/Manifest.txt +3 -0
  4. data/Rakefile +10 -14
  5. data/bundler/CHANGELOG.md +65 -0
  6. data/bundler/lib/bundler.rb +1 -1
  7. data/bundler/lib/bundler/build_metadata.rb +2 -2
  8. data/bundler/lib/bundler/cli.rb +1 -0
  9. data/bundler/lib/bundler/cli/cache.rb +1 -0
  10. data/bundler/lib/bundler/cli/gem.rb +12 -0
  11. data/bundler/lib/bundler/definition.rb +16 -25
  12. data/bundler/lib/bundler/feature_flag.rb +0 -1
  13. data/bundler/lib/bundler/fetcher.rb +0 -1
  14. data/bundler/lib/bundler/gem_helper.rb +8 -6
  15. data/bundler/lib/bundler/index.rb +6 -5
  16. data/bundler/lib/bundler/installer.rb +0 -17
  17. data/bundler/lib/bundler/installer/standalone.rb +15 -0
  18. data/bundler/lib/bundler/lazy_specification.rb +9 -18
  19. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  20. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  21. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  22. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  23. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  24. data/bundler/lib/bundler/man/bundle-config.1 +8 -8
  25. data/bundler/lib/bundler/man/bundle-config.1.ronn +11 -10
  26. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  27. data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
  28. data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
  29. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  30. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  31. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  32. data/bundler/lib/bundler/man/bundle-install.1 +1 -1
  33. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  34. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  35. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  36. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  37. data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
  38. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  39. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  40. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  41. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  42. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  43. data/bundler/lib/bundler/man/bundle.1 +1 -1
  44. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  45. data/bundler/lib/bundler/resolver.rb +79 -45
  46. data/bundler/lib/bundler/resolver/spec_group.rb +54 -42
  47. data/bundler/lib/bundler/settings.rb +1 -1
  48. data/bundler/lib/bundler/shared_helpers.rb +2 -2
  49. data/bundler/lib/bundler/source/git.rb +1 -1
  50. data/bundler/lib/bundler/source/rubygems.rb +0 -1
  51. data/bundler/lib/bundler/source_list.rb +2 -4
  52. data/bundler/lib/bundler/spec_set.rb +4 -3
  53. data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  54. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
  55. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -1
  56. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
  57. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +2 -2
  58. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +11 -0
  59. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +1 -1
  60. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +5 -6
  61. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +1 -1
  62. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +4 -2
  63. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +1 -1
  64. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +5 -1
  65. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +9 -8
  66. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +5 -2
  67. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
  68. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  69. data/bundler/lib/bundler/version.rb +1 -1
  70. data/lib/rubygems.rb +2 -2
  71. data/lib/rubygems/command.rb +1 -0
  72. data/lib/rubygems/config_file.rb +9 -0
  73. data/lib/rubygems/core_ext/tcpsocket_init.rb +49 -0
  74. data/lib/rubygems/dependency.rb +5 -1
  75. data/lib/rubygems/installer_uninstaller_utils.rb +6 -1
  76. data/lib/rubygems/remote_fetcher.rb +1 -0
  77. data/lib/rubygems/resolver/index_specification.rb +4 -1
  78. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
  79. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +0 -1
  80. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
  81. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +2 -2
  82. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +11 -0
  83. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +11 -7
  84. data/lib/rubygems/specification.rb +13 -11
  85. data/lib/rubygems/test_case.rb +5 -6
  86. data/rubygems-update.gemspec +1 -1
  87. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  88. data/test/rubygems/test_gem.rb +78 -0
  89. data/test/rubygems/test_gem_commands_outdated_command.rb +18 -0
  90. data/test/rubygems/test_gem_config_file.rb +10 -0
  91. data/test/rubygems/test_gem_dependency_installer.rb +27 -18
  92. data/test/rubygems/test_gem_installer.rb +2 -0
  93. data/test/rubygems/test_gem_remote_fetcher.rb +6 -0
  94. data/test/rubygems/test_gem_requirement.rb +1 -1
  95. data/test/rubygems/test_gem_specification.rb +10 -15
  96. data/test/rubygems/test_gem_stream_ui.rb +1 -1
  97. data/test/rubygems/test_gem_util.rb +4 -4
  98. metadata +6 -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: 027ee31fe24ec2094fdc8bcfecae4261c36ce412a813b2d0c68376679de49d26
4
+ data.tar.gz: deb4ea6deab65dc34df00c5836443743ed0ae367fc191dc2050ecc598fc76fc1
5
5
  SHA512:
6
- metadata.gz: 3db9aa4bd25ce7f35219c7c3a56c0937f02c31c1d40ff0b51cc4077a7624a44036e01ae31beecac396146021e1063603675956d136670517bdb285d927e2879e
7
- data.tar.gz: 7a0be9453ed03fc389f4a31e5a39907b1c4295cdffb979f91c9ac77acb3ec66950424992a3da187bfde4ec5a5f1d7d9797ad9c58404039aaf8e5db98f02685cb
6
+ metadata.gz: 0f876e2acbd22963c1a5cd0e799bd34c801c6751293030c715d1eb4d0faddc010fe6c9b353e9d0ce1540f601773b4e295d3b16ee3d597dcbe36867509f977e5d
7
+ data.tar.gz: 21e3b99cc9733a4ce41e0aac1c5f97dac2053b87f58388dfabf8658c5bdd506484c4576e96137fa968f89aea368a81ff4f4ca9e5a141b6de72e4cadbc7129efb
data/CHANGELOG.md CHANGED
@@ -1,3 +1,46 @@
1
+ # 3.2.11 / 2021-02-17
2
+
3
+ ## Enhancements:
4
+
5
+ * Optionally fallback to IPv4 when IPv6 is unreachable. Pull request #2662
6
+ by sonalkr132
7
+
8
+ # 3.2.10 / 2021-02-15
9
+
10
+ ## Documentation:
11
+
12
+ * Add a `gem push` example to `gem help`. Pull request #4373 by
13
+ deivid-rodriguez
14
+ * Improve documentation for `required_ruby_version`. Pull request #4343 by
15
+ AlexWayfer
16
+
17
+ # 3.2.9 / 2021-02-08
18
+
19
+ ## Bug fixes:
20
+
21
+ * Fix error message when underscore selection can't find bundler. Pull
22
+ request #4363 by deivid-rodriguez
23
+ * Fix `Gem::Specification.stubs_for` returning wrong named specs. Pull
24
+ request #4356 by tompng
25
+ * Don't error out when activating a binstub unless necessary. Pull request
26
+ #4351 by deivid-rodriguez
27
+ * Fix `gem outdated` incorrectly handling platform specific gems. Pull
28
+ request #4248 by deivid-rodriguez
29
+
30
+ # 3.2.8 / 2021-02-02
31
+
32
+ ## Bug fixes:
33
+
34
+ * Fix `gem install` crashing on gemspec with nil required_ruby_version.
35
+ Pull request #4334 by pbernays
36
+
37
+ # 3.2.7 / 2021-01-26
38
+
39
+ ## Bug fixes:
40
+
41
+ * Generate plugin wrappers with relative requires. Pull request #4317 by
42
+ deivid-rodriguez
43
+
1
44
  # 3.2.6 / 2021-01-18
2
45
 
3
46
  ## Enhancements:
data/Manifest.txt CHANGED
@@ -189,6 +189,7 @@ bundler/lib/bundler/templates/Executable.bundler
189
189
  bundler/lib/bundler/templates/Executable.standalone
190
190
  bundler/lib/bundler/templates/Gemfile
191
191
  bundler/lib/bundler/templates/gems.rb
192
+ bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt
192
193
  bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt
193
194
  bundler/lib/bundler/templates/newgem/Gemfile.tt
194
195
  bundler/lib/bundler/templates/newgem/LICENSE.txt.tt
@@ -353,6 +354,7 @@ lib/rubygems/config_file.rb
353
354
  lib/rubygems/core_ext/kernel_gem.rb
354
355
  lib/rubygems/core_ext/kernel_require.rb
355
356
  lib/rubygems/core_ext/kernel_warn.rb
357
+ lib/rubygems/core_ext/tcpsocket_init.rb
356
358
  lib/rubygems/defaults.rb
357
359
  lib/rubygems/dependency.rb
358
360
  lib/rubygems/dependency_installer.rb
@@ -511,6 +513,7 @@ test/rubygems/child_key.pem
511
513
  test/rubygems/client.pem
512
514
  test/rubygems/data/gem-private_key.pem
513
515
  test/rubygems/data/gem-public_cert.pem
516
+ test/rubygems/data/null-required-ruby-version.gemspec.rz
514
517
  test/rubygems/data/null-required-rubygems-version.gemspec.rz
515
518
  test/rubygems/data/null-type.gemspec.rz
516
519
  test/rubygems/encrypted_private_key.pem
data/Rakefile CHANGED
@@ -52,20 +52,16 @@ RDoc::Task.new :rdoc => 'docs', :clobber_rdoc => 'clobber_docs' do |doc|
52
52
  doc.rdoc_dir = 'doc'
53
53
  end
54
54
 
55
- begin
56
- require "automatiek"
57
-
58
- Automatiek::RakeTask.new("molinillo") do |lib|
59
- lib.version = "0.7.0"
60
- lib.download = { :github => "https://github.com/CocoaPods/Molinillo" }
61
- lib.namespace = "Molinillo"
62
- lib.prefix = "Gem::Resolver"
63
- lib.vendor_lib = "lib/rubygems/resolver/molinillo"
64
- end
65
- rescue LoadError
66
- namespace :vendor do
67
- task(:molinillo) { abort "Install the automatiek gem to be able to vendor gems." }
68
- end
55
+ load "util/automatiek.rake"
56
+
57
+ # We currently ship Molinillo master branch as of
58
+ # https://github.com/CocoaPods/Molinillo/commit/7cc27a355e861bdf593e2cde7bf1bca3daae4303
59
+ Automatiek::RakeTask.new("molinillo") do |lib|
60
+ lib.version = "master"
61
+ lib.download = { :github => "https://github.com/CocoaPods/Molinillo" }
62
+ lib.namespace = "Molinillo"
63
+ lib.prefix = "Gem::Resolver"
64
+ lib.vendor_lib = "lib/rubygems/resolver/molinillo"
69
65
  end
70
66
 
71
67
  namespace :rubocop do
data/bundler/CHANGELOG.md CHANGED
@@ -1,3 +1,68 @@
1
+ # 2.2.11 (February 17, 2021)
2
+
3
+ ## Bug fixes:
4
+
5
+ - Revert disable_multisource changes [#4385](https://github.com/rubygems/rubygems/pull/4385)
6
+
7
+ # 2.2.10 (February 15, 2021)
8
+
9
+ ## Security fixes:
10
+
11
+ - Fix source priority for transitive dependencies and split lockfile rubygems source sections [#3655](https://github.com/rubygems/rubygems/pull/3655)
12
+
13
+ ## Bug fixes:
14
+
15
+ - Fix adding platforms to lockfile sometimes conflicting on ruby requirements [#4371](https://github.com/rubygems/rubygems/pull/4371)
16
+ - Fix bundler sometimes choosing ruby variants over java ones [#4367](https://github.com/rubygems/rubygems/pull/4367)
17
+
18
+ ## Documentation:
19
+
20
+ - Update man pages to reflect to new default for bundle install jobs [#4188](https://github.com/rubygems/rubygems/pull/4188)
21
+
22
+ # 2.2.9 (February 8, 2021)
23
+
24
+ ## Enhancements:
25
+
26
+ - Stop removing existing platforms when force_ruby_platform is true [#4336](https://github.com/rubygems/rubygems/pull/4336)
27
+
28
+ ## Bug fixes:
29
+
30
+ - Don't install platform specific gems on truffleruby [#4333](https://github.com/rubygems/rubygems/pull/4333)
31
+
32
+ # 2.2.8 (February 2, 2021)
33
+
34
+ ## Enhancements:
35
+
36
+ - Add a CHANGELOG.md file to gems generated by `bundle gem` [#4093](https://github.com/rubygems/rubygems/pull/4093)
37
+ - Support gemified `set` [#4297](https://github.com/rubygems/rubygems/pull/4297)
38
+
39
+ ## Bug fixes:
40
+
41
+ - Fix standalone Kernel.require visibility [#4337](https://github.com/rubygems/rubygems/pull/4337)
42
+
43
+ ## Performance:
44
+
45
+ - Fix resolver edge cases and speed up bundler [#4277](https://github.com/rubygems/rubygems/pull/4277)
46
+
47
+ # 2.2.7 (January 26, 2021)
48
+
49
+ ## Enhancements:
50
+
51
+ - Improve error messages when dependency on bundler conflicts with running version [#4308](https://github.com/rubygems/rubygems/pull/4308)
52
+ - Avoid showing platforms with requirements in error messages [#4310](https://github.com/rubygems/rubygems/pull/4310)
53
+ - Introduce disable_local_revision_check config [#4237](https://github.com/rubygems/rubygems/pull/4237)
54
+ - Reverse rubygems require mixin with bundler standalone [#4299](https://github.com/rubygems/rubygems/pull/4299)
55
+
56
+ ## Bug fixes:
57
+
58
+ - Fix releasing from a not yet pushed branch [#4309](https://github.com/rubygems/rubygems/pull/4309)
59
+ - Install cache only once if it already exists [#4304](https://github.com/rubygems/rubygems/pull/4304)
60
+ - Fix `force_ruby_platform` no longer being respected [#4302](https://github.com/rubygems/rubygems/pull/4302)
61
+
62
+ ## Performance:
63
+
64
+ - Fix resolver dependency comparison [#4289](https://github.com/rubygems/rubygems/pull/4289)
65
+
1
66
  # 2.2.6 (January 18, 2021)
2
67
 
3
68
  ## Enhancements:
@@ -440,7 +440,7 @@ EOF
440
440
  end
441
441
 
442
442
  def local_platform
443
- return Gem::Platform::RUBY if settings[:force_ruby_platform]
443
+ return Gem::Platform::RUBY if settings[:force_ruby_platform] || Gem.platforms == [Gem::Platform::RUBY]
444
444
  Gem::Platform.local
445
445
  end
446
446
 
@@ -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-02-17".freeze
8
+ @git_commit_sha = "6ca677a0eb".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -586,6 +586,7 @@ module Bundler
586
586
  method_option :git, :type => :boolean, :default => true, :desc => "Initialize a git repo inside your library."
587
587
  method_option :mit, :type => :boolean, :desc => "Generate an MIT license file. Set a default with `bundle config set --global gem.mit true`."
588
588
  method_option :rubocop, :type => :boolean, :desc => "Add rubocop to the generated Rakefile and gemspec. Set a default with `bundle config set --global gem.rubocop true`."
589
+ method_option :changelog, :type => :boolean, :desc => "Generate changelog file. Set a default with `bundle config set --global gem.changelog true`."
589
590
  method_option :test, :type => :string, :lazy_default => Bundler.settings["gem.test"] || "", :aliases => "-t", :banner => "Use the specified test framework for your library",
590
591
  :desc => "Generate a test directory for your library, either rspec, minitest or test-unit. Set a default with `bundle config set --global gem.test (rspec|minitest|test-unit)`."
591
592
  method_option :ci, :type => :string, :lazy_default => Bundler.settings["gem.ci"] || "",
@@ -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
 
@@ -142,6 +142,18 @@ module Bundler
142
142
  templates.merge!("CODE_OF_CONDUCT.md.tt" => "CODE_OF_CONDUCT.md")
143
143
  end
144
144
 
145
+ if ask_and_set(:changelog, "Do you want to include a changelog?",
146
+ "A changelog is a file which contains a curated, chronologically ordered list of notable " \
147
+ "changes for each version of a project. To make it easier for users and contributors to" \
148
+ " see precisely what notable changes have been made between each release (or version) of" \
149
+ " the project. Whether consumers or developers, the end users of software are" \
150
+ " human beings who care about what's in the software. When the software changes, people " \
151
+ "want to know why and how. see https://keepachangelog.com")
152
+ config[:changelog] = true
153
+ Bundler.ui.info "Changelog enabled in config"
154
+ templates.merge!("CHANGELOG.md.tt" => "CHANGELOG.md")
155
+ end
156
+
145
157
  if ask_and_set(:rubocop, "Do you want to add rubocop as a dependency for gems you generate?",
146
158
  "RuboCop is a static code analyzer that has out-of-the-box rules for many " \
147
159
  "of the guidelines in the community style guide. " \
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "lockfile_parser"
4
- require "set"
5
4
 
6
5
  module Bundler
7
6
  class Definition
@@ -83,11 +82,7 @@ module Bundler
83
82
  @lockfile_contents = Bundler.read_file(lockfile)
84
83
  @locked_gems = LockfileParser.new(@lockfile_contents)
85
84
  @locked_platforms = @locked_gems.platforms
86
- if Bundler.settings[:force_ruby_platform]
87
- @platforms = [Gem::Platform::RUBY]
88
- else
89
- @platforms = @locked_platforms.dup
90
- end
85
+ @platforms = @locked_platforms.dup
91
86
  @locked_bundler_version = @locked_gems.bundler_version
92
87
  @locked_ruby_version = @locked_gems.ruby_version
93
88
 
@@ -259,23 +254,18 @@ module Bundler
259
254
  def resolve
260
255
  @resolve ||= begin
261
256
  last_resolve = converge_locked_specs
262
- resolve =
263
- if Bundler.frozen_bundle?
264
- Bundler.ui.debug "Frozen, using resolution from the lockfile"
265
- last_resolve
266
- elsif !unlocking? && nothing_changed?
267
- Bundler.ui.debug("Found no changes, using resolution from the lockfile")
268
- last_resolve
269
- else
270
- # Run a resolve against the locally available gems
271
- Bundler.ui.debug("Found changes from the lockfile, re-resolving dependencies because #{change_reason}")
272
- expanded_dependencies = expand_dependencies(dependencies + metadata_dependencies, @remote)
273
- last_resolve.merge Resolver.resolve(expanded_dependencies, index, source_requirements, last_resolve, gem_version_promoter, additional_base_requirements_for_resolve, platforms)
274
- end
275
-
276
- # filter out gems that _can_ be installed on multiple platforms, but don't need
277
- # to be
278
- resolve.for(expand_dependencies(dependencies, true), [], false, false, false)
257
+ if Bundler.frozen_bundle?
258
+ Bundler.ui.debug "Frozen, using resolution from the lockfile"
259
+ last_resolve
260
+ elsif !unlocking? && nothing_changed?
261
+ Bundler.ui.debug("Found no changes, using resolution from the lockfile")
262
+ last_resolve
263
+ else
264
+ # Run a resolve against the locally available gems
265
+ Bundler.ui.debug("Found changes from the lockfile, re-resolving dependencies because #{change_reason}")
266
+ expanded_dependencies = expand_dependencies(dependencies + metadata_dependencies, @remote)
267
+ Resolver.resolve(expanded_dependencies, index, source_requirements, last_resolve, gem_version_promoter, additional_base_requirements_for_resolve, platforms)
268
+ end
279
269
  end
280
270
  end
281
271
 
@@ -604,7 +594,7 @@ module Bundler
604
594
  deps_for_source = @dependencies.select {|s| s.source == source }
605
595
  locked_deps_for_source = @locked_deps.values.select {|dep| dep.source == locked_source }
606
596
 
607
- Set.new(deps_for_source) != Set.new(locked_deps_for_source)
597
+ deps_for_source.sort != locked_deps_for_source.sort
608
598
  end
609
599
 
610
600
  def specs_for_source_changed?(source)
@@ -884,7 +874,7 @@ module Bundler
884
874
  dependencies.each do |dep|
885
875
  dep = Dependency.new(dep, ">= 0") unless dep.respond_to?(:name)
886
876
  next unless remote || dep.current_platform?
887
- target_platforms = dep.gem_platforms(remote ? Resolver.sort_platforms(@platforms) : [generic_local_platform])
877
+ target_platforms = dep.gem_platforms(remote ? @platforms : [generic_local_platform])
888
878
  deps += expand_dependency_with_platforms(dep, target_platforms)
889
879
  end
890
880
  deps
@@ -913,6 +903,7 @@ module Bundler
913
903
  metadata_dependencies.each do |dep|
914
904
  source_requirements[dep.name] = sources.metadata_source
915
905
  end
906
+ source_requirements[:default_bundler] = source_requirements["bundler"] || source_requirements[:default]
916
907
  source_requirements["bundler"] = sources.metadata_source # needs to come last to override
917
908
  source_requirements
918
909
  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
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "set"
4
-
5
3
  module Bundler
6
4
  class Index
7
5
  include Enumerable
@@ -65,11 +63,14 @@ module Bundler
65
63
  def unsorted_search(query, base)
66
64
  results = local_search(query, base)
67
65
 
68
- seen = results.map(&:full_name).to_set unless @sources.empty?
66
+ seen = results.map(&:full_name).uniq unless @sources.empty?
69
67
 
70
68
  @sources.each do |source|
71
69
  source.unsorted_search(query, base).each do |spec|
72
- results << spec if seen.add?(spec.full_name)
70
+ next if seen.include?(spec.full_name)
71
+
72
+ seen << spec.full_name
73
+ results << spec
73
74
  end
74
75
  end
75
76
 
@@ -170,7 +171,7 @@ module Bundler
170
171
  def dependencies_eql?(spec, other_spec)
171
172
  deps = spec.dependencies.select {|d| d.type != :development }
172
173
  other_deps = other_spec.dependencies.select {|d| d.type != :development }
173
- Set.new(deps) == Set.new(other_deps)
174
+ deps.sort == other_deps.sort
174
175
  end
175
176
 
176
177
  def add_source(index)
@@ -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,19 @@ 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
+ private_require = k.private_method_defined?(:require)
59
+ k.send(:remove_method, :require)
60
+ k.send(:define_method, :require, k.instance_method(:gem_original_require))
61
+ k.send(:private, :require) if private_require
62
+ end
63
+ end
64
+ END
65
+ end
51
66
  end
52
67
  end