rubygems-update 3.2.3 → 3.2.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/{History.txt → CHANGELOG.md} +480 -427
  3. data/Manifest.txt +30 -27
  4. data/Rakefile +20 -28
  5. data/bundler/CHANGELOG.md +73 -2
  6. data/bundler/bundler.gemspec +1 -1
  7. data/bundler/lib/bundler.rb +0 -1
  8. data/bundler/lib/bundler/build_metadata.rb +2 -2
  9. data/bundler/lib/bundler/cli.rb +3 -5
  10. data/bundler/lib/bundler/cli/cache.rb +1 -0
  11. data/bundler/lib/bundler/cli/gem.rb +14 -0
  12. data/bundler/lib/bundler/compact_index_client/updater.rb +0 -8
  13. data/bundler/lib/bundler/definition.rb +17 -27
  14. data/bundler/lib/bundler/dep_proxy.rb +15 -8
  15. data/bundler/lib/bundler/feature_flag.rb +0 -1
  16. data/bundler/lib/bundler/fetcher.rb +0 -1
  17. data/bundler/lib/bundler/gem_helper.rb +9 -7
  18. data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
  19. data/bundler/lib/bundler/index.rb +6 -5
  20. data/bundler/lib/bundler/installer.rb +0 -17
  21. data/bundler/lib/bundler/installer/standalone.rb +15 -0
  22. data/bundler/lib/bundler/lazy_specification.rb +9 -18
  23. data/bundler/{man → lib/bundler/man}/bundle-add.1 +1 -1
  24. data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +1 -1
  25. data/bundler/{man → lib/bundler/man}/bundle-cache.1 +1 -1
  26. data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
  27. data/bundler/{man → lib/bundler/man}/bundle-clean.1 +1 -1
  28. data/bundler/{man → lib/bundler/man}/bundle-config.1 +4 -4
  29. data/bundler/lib/bundler/man/bundle-config.1.ronn +3 -3
  30. data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
  31. data/bundler/{man → lib/bundler/man}/bundle-exec.1 +1 -1
  32. data/bundler/{man → lib/bundler/man}/bundle-gem.1 +1 -1
  33. data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
  34. data/bundler/{man → lib/bundler/man}/bundle-init.1 +1 -1
  35. data/bundler/{man → lib/bundler/man}/bundle-inject.1 +1 -1
  36. data/bundler/{man → lib/bundler/man}/bundle-install.1 +1 -1
  37. data/bundler/{man → lib/bundler/man}/bundle-list.1 +1 -1
  38. data/bundler/{man → lib/bundler/man}/bundle-lock.1 +1 -1
  39. data/bundler/{man → lib/bundler/man}/bundle-open.1 +1 -1
  40. data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +1 -1
  41. data/bundler/{man → lib/bundler/man}/bundle-platform.1 +1 -1
  42. data/bundler/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
  43. data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
  44. data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
  45. data/bundler/{man → lib/bundler/man}/bundle-update.1 +1 -1
  46. data/bundler/{man → lib/bundler/man}/bundle-viz.1 +1 -1
  47. data/bundler/{man → lib/bundler/man}/bundle.1 +1 -1
  48. data/bundler/{man → lib/bundler/man}/gemfile.5 +1 -1
  49. data/bundler/{man → lib/bundler/man}/index.txt +0 -0
  50. data/bundler/lib/bundler/resolver.rb +82 -43
  51. data/bundler/lib/bundler/resolver/spec_group.rb +56 -44
  52. data/bundler/lib/bundler/rubygems_ext.rb +16 -0
  53. data/bundler/lib/bundler/settings.rb +1 -1
  54. data/bundler/lib/bundler/shared_helpers.rb +2 -2
  55. data/bundler/lib/bundler/source/git.rb +19 -17
  56. data/bundler/lib/bundler/source/git/git_proxy.rb +54 -49
  57. data/bundler/lib/bundler/source/path/installer.rb +2 -0
  58. data/bundler/lib/bundler/source/rubygems.rb +10 -2
  59. data/bundler/lib/bundler/source_list.rb +2 -4
  60. data/bundler/lib/bundler/spec_set.rb +5 -4
  61. data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  62. data/bundler/lib/bundler/templates/newgem/Gemfile.tt +1 -1
  63. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
  64. data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +3 -0
  65. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
  66. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -1
  67. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
  68. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +2 -2
  69. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +11 -0
  70. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +11 -7
  71. data/bundler/lib/bundler/vendor/thor/lib/thor.rb +5 -6
  72. data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +1 -1
  73. data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +4 -2
  74. data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +1 -1
  75. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +5 -1
  76. data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +9 -8
  77. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +5 -2
  78. data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
  79. data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  80. data/bundler/lib/bundler/version.rb +1 -1
  81. data/lib/rubygems.rb +2 -2
  82. data/lib/rubygems/commands/setup_command.rb +16 -62
  83. data/lib/rubygems/ext/builder.rb +5 -4
  84. data/lib/rubygems/ext/cmake_builder.rb +1 -2
  85. data/lib/rubygems/ext/configure_builder.rb +1 -2
  86. data/lib/rubygems/installer_uninstaller_utils.rb +6 -1
  87. data/lib/rubygems/platform.rb +0 -4
  88. data/lib/rubygems/remote_fetcher.rb +3 -1
  89. data/lib/rubygems/requirement.rb +1 -1
  90. data/lib/rubygems/resolver/best_set.rb +1 -1
  91. data/lib/rubygems/resolver/index_specification.rb +8 -2
  92. data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
  93. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +0 -1
  94. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
  95. data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +2 -2
  96. data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +11 -0
  97. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +11 -7
  98. data/lib/rubygems/specification.rb +18 -14
  99. data/lib/rubygems/test_case.rb +17 -4
  100. data/rubygems-update.gemspec +2 -2
  101. data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
  102. data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
  103. data/test/rubygems/test_gem.rb +5 -0
  104. data/test/rubygems/test_gem_commands_setup_command.rb +21 -37
  105. data/test/rubygems/test_gem_dependency_installer.rb +52 -47
  106. data/test/rubygems/test_gem_ext_builder.rb +30 -6
  107. data/test/rubygems/test_gem_ext_cmake_builder.rb +2 -4
  108. data/test/rubygems/test_gem_ext_configure_builder.rb +2 -2
  109. data/test/rubygems/test_gem_installer.rb +2 -0
  110. data/test/rubygems/test_gem_platform.rb +8 -0
  111. data/test/rubygems/test_gem_remote_fetcher.rb +1 -1
  112. data/test/rubygems/test_gem_requirement.rb +35 -1
  113. data/test/rubygems/test_gem_resolver_best_set.rb +23 -0
  114. data/test/rubygems/test_gem_specification.rb +9 -3
  115. data/test/rubygems/test_gem_stream_ui.rb +1 -1
  116. metadata +34 -55
data/Manifest.txt CHANGED
@@ -1,6 +1,6 @@
1
+ CHANGELOG.md
1
2
  CODE_OF_CONDUCT.md
2
3
  CONTRIBUTING.md
3
- History.txt
4
4
  LICENSE.txt
5
5
  MAINTAINERS.txt
6
6
  MIT.txt
@@ -91,31 +91,57 @@ bundler/lib/bundler/lazy_specification.rb
91
91
  bundler/lib/bundler/lockfile_generator.rb
92
92
  bundler/lib/bundler/lockfile_parser.rb
93
93
  bundler/lib/bundler/man/.document
94
+ bundler/lib/bundler/man/bundle-add.1
94
95
  bundler/lib/bundler/man/bundle-add.1.ronn
96
+ bundler/lib/bundler/man/bundle-binstubs.1
95
97
  bundler/lib/bundler/man/bundle-binstubs.1.ronn
98
+ bundler/lib/bundler/man/bundle-cache.1
96
99
  bundler/lib/bundler/man/bundle-cache.1.ronn
100
+ bundler/lib/bundler/man/bundle-check.1
97
101
  bundler/lib/bundler/man/bundle-check.1.ronn
102
+ bundler/lib/bundler/man/bundle-clean.1
98
103
  bundler/lib/bundler/man/bundle-clean.1.ronn
104
+ bundler/lib/bundler/man/bundle-config.1
99
105
  bundler/lib/bundler/man/bundle-config.1.ronn
106
+ bundler/lib/bundler/man/bundle-doctor.1
100
107
  bundler/lib/bundler/man/bundle-doctor.1.ronn
108
+ bundler/lib/bundler/man/bundle-exec.1
101
109
  bundler/lib/bundler/man/bundle-exec.1.ronn
110
+ bundler/lib/bundler/man/bundle-gem.1
102
111
  bundler/lib/bundler/man/bundle-gem.1.ronn
112
+ bundler/lib/bundler/man/bundle-info.1
103
113
  bundler/lib/bundler/man/bundle-info.1.ronn
114
+ bundler/lib/bundler/man/bundle-init.1
104
115
  bundler/lib/bundler/man/bundle-init.1.ronn
116
+ bundler/lib/bundler/man/bundle-inject.1
105
117
  bundler/lib/bundler/man/bundle-inject.1.ronn
118
+ bundler/lib/bundler/man/bundle-install.1
106
119
  bundler/lib/bundler/man/bundle-install.1.ronn
120
+ bundler/lib/bundler/man/bundle-list.1
107
121
  bundler/lib/bundler/man/bundle-list.1.ronn
122
+ bundler/lib/bundler/man/bundle-lock.1
108
123
  bundler/lib/bundler/man/bundle-lock.1.ronn
124
+ bundler/lib/bundler/man/bundle-open.1
109
125
  bundler/lib/bundler/man/bundle-open.1.ronn
126
+ bundler/lib/bundler/man/bundle-outdated.1
110
127
  bundler/lib/bundler/man/bundle-outdated.1.ronn
128
+ bundler/lib/bundler/man/bundle-platform.1
111
129
  bundler/lib/bundler/man/bundle-platform.1.ronn
130
+ bundler/lib/bundler/man/bundle-pristine.1
112
131
  bundler/lib/bundler/man/bundle-pristine.1.ronn
132
+ bundler/lib/bundler/man/bundle-remove.1
113
133
  bundler/lib/bundler/man/bundle-remove.1.ronn
134
+ bundler/lib/bundler/man/bundle-show.1
114
135
  bundler/lib/bundler/man/bundle-show.1.ronn
136
+ bundler/lib/bundler/man/bundle-update.1
115
137
  bundler/lib/bundler/man/bundle-update.1.ronn
138
+ bundler/lib/bundler/man/bundle-viz.1
116
139
  bundler/lib/bundler/man/bundle-viz.1.ronn
140
+ bundler/lib/bundler/man/bundle.1
117
141
  bundler/lib/bundler/man/bundle.1.ronn
142
+ bundler/lib/bundler/man/gemfile.5
118
143
  bundler/lib/bundler/man/gemfile.5.ronn
144
+ bundler/lib/bundler/man/index.txt
119
145
  bundler/lib/bundler/match_platform.rb
120
146
  bundler/lib/bundler/mirror.rb
121
147
  bundler/lib/bundler/plugin.rb
@@ -163,6 +189,7 @@ bundler/lib/bundler/templates/Executable.bundler
163
189
  bundler/lib/bundler/templates/Executable.standalone
164
190
  bundler/lib/bundler/templates/Gemfile
165
191
  bundler/lib/bundler/templates/gems.rb
192
+ bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt
166
193
  bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt
167
194
  bundler/lib/bundler/templates/newgem/Gemfile.tt
168
195
  bundler/lib/bundler/templates/newgem/LICENSE.txt.tt
@@ -280,32 +307,6 @@ bundler/lib/bundler/version_ranges.rb
280
307
  bundler/lib/bundler/vlad.rb
281
308
  bundler/lib/bundler/worker.rb
282
309
  bundler/lib/bundler/yaml_serializer.rb
283
- bundler/man/bundle-add.1
284
- bundler/man/bundle-binstubs.1
285
- bundler/man/bundle-cache.1
286
- bundler/man/bundle-check.1
287
- bundler/man/bundle-clean.1
288
- bundler/man/bundle-config.1
289
- bundler/man/bundle-doctor.1
290
- bundler/man/bundle-exec.1
291
- bundler/man/bundle-gem.1
292
- bundler/man/bundle-info.1
293
- bundler/man/bundle-init.1
294
- bundler/man/bundle-inject.1
295
- bundler/man/bundle-install.1
296
- bundler/man/bundle-list.1
297
- bundler/man/bundle-lock.1
298
- bundler/man/bundle-open.1
299
- bundler/man/bundle-outdated.1
300
- bundler/man/bundle-platform.1
301
- bundler/man/bundle-pristine.1
302
- bundler/man/bundle-remove.1
303
- bundler/man/bundle-show.1
304
- bundler/man/bundle-update.1
305
- bundler/man/bundle-viz.1
306
- bundler/man/bundle.1
307
- bundler/man/gemfile.5
308
- bundler/man/index.txt
309
310
  hide_lib_for_update/note.txt
310
311
  lib/rubygems.rb
311
312
  lib/rubygems/available_set.rb
@@ -511,6 +512,8 @@ test/rubygems/child_key.pem
511
512
  test/rubygems/client.pem
512
513
  test/rubygems/data/gem-private_key.pem
513
514
  test/rubygems/data/gem-public_cert.pem
515
+ test/rubygems/data/null-required-ruby-version.gemspec.rz
516
+ test/rubygems/data/null-required-rubygems-version.gemspec.rz
514
517
  test/rubygems/data/null-type.gemspec.rz
515
518
  test/rubygems/encrypted_private_key.pem
516
519
  test/rubygems/expired_cert.pem
data/Rakefile CHANGED
@@ -7,9 +7,12 @@ require 'psych'
7
7
 
8
8
  desc "Setup Rubygems dev environment"
9
9
  task :setup do
10
- version = File.read("dev_gems.rb.lock").split(/BUNDLED WITH\n /).last
11
- sh "gem install bundler:#{version}"
12
- sh "bundle install --gemfile=dev_gems.rb"
10
+ sh "ruby", "bundler/bin/bundle", "install", "--gemfile=dev_gems.rb"
11
+ end
12
+
13
+ desc "Update Rubygems dev environment"
14
+ task :update do |_, args|
15
+ sh "ruby", "bundler/bin/bundle", "update", *args, "--gemfile=dev_gems.rb"
13
16
  end
14
17
 
15
18
  desc "Setup git hooks"
@@ -39,7 +42,7 @@ RDoc::Task.new :rdoc => 'docs', :clobber_rdoc => 'clobber_docs' do |doc|
39
42
  doc.title = "RubyGems #{v} API Documentation"
40
43
 
41
44
  rdoc_files = Rake::FileList.new %w[lib bundler/lib]
42
- rdoc_files.add %w[History.txt LICENSE.txt MIT.txt CODE_OF_CONDUCT.md CONTRIBUTING.md
45
+ rdoc_files.add %w[CHANGELOG.md LICENSE.txt MIT.txt CODE_OF_CONDUCT.md CONTRIBUTING.md
43
46
  MAINTAINERS.txt Manifest.txt POLICIES.md README.md UPGRADING.md bundler/CHANGELOG.md
44
47
  bundler/doc/contributing/README.md bundler/LICENSE.md bundler/README.md
45
48
  hide_lib_for_update/note.txt].map(&:freeze)
@@ -49,20 +52,16 @@ RDoc::Task.new :rdoc => 'docs', :clobber_rdoc => 'clobber_docs' do |doc|
49
52
  doc.rdoc_dir = 'doc'
50
53
  end
51
54
 
52
- begin
53
- require "automatiek"
55
+ load "util/automatiek.rake"
54
56
 
55
- Automatiek::RakeTask.new("molinillo") do |lib|
56
- lib.version = "0.7.0"
57
- lib.download = { :github => "https://github.com/CocoaPods/Molinillo" }
58
- lib.namespace = "Molinillo"
59
- lib.prefix = "Gem::Resolver"
60
- lib.vendor_lib = "lib/rubygems/resolver/molinillo"
61
- end
62
- rescue LoadError
63
- namespace :vendor do
64
- task(:molinillo) { abort "Install the automatiek gem to be able to vendor gems." }
65
- end
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"
66
65
  end
67
66
 
68
67
  namespace :rubocop do
@@ -108,7 +107,7 @@ end
108
107
 
109
108
  desc "Install rubygems to local system"
110
109
  task :install => [:clear_package, :package] do
111
- sh "ruby -Ilib bin/gem install --no-document pkg/rubygems-update-#{v}.gem && update_rubygems --no-document"
110
+ sh "ruby -Ilib bin/gem install --no-document pkg/rubygems-update-#{v}.gem --backtrace && update_rubygems --no-document --backtrace"
112
111
  end
113
112
 
114
113
  desc "Clears previously built package"
@@ -183,11 +182,7 @@ end
183
182
 
184
183
  desc "Upload release to S3"
185
184
  task :upload_to_s3 do
186
- begin
187
- require "aws-sdk-s3"
188
- rescue LoadError
189
- abort "Install the aws-sdk-s3 gem to be able to upload gems to rubygems.org."
190
- end
185
+ require "aws-sdk-s3"
191
186
 
192
187
  s3 = Aws::S3::Resource.new(region:'us-west-2')
193
188
  %w[zip tgz].each do |ext|
@@ -313,9 +308,7 @@ To update to the latest RubyGems you can run:
313
308
 
314
309
  gem update --system
315
310
 
316
- If you need to upgrade or downgrade please follow the [how to upgrade/downgrade
317
- RubyGems][upgrading] instructions. To install RubyGems by hand see the
318
- [Download RubyGems][download] page.
311
+ To install RubyGems by hand see the [Download RubyGems][download] page.
319
312
 
320
313
  #{history.release_notes_for_blog.join("\n")}
321
314
 
@@ -324,7 +317,6 @@ SHA256 Checksums:
324
317
  #{checksums}
325
318
 
326
319
  [download]: https://rubygems.org/pages/download
327
- [upgrading]: http://docs.seattlerb.org/rubygems/UPGRADING_rdoc.html
328
320
 
329
321
  ANNOUNCEMENT
330
322
 
@@ -365,7 +357,7 @@ module Rubygems
365
357
  class ProjectFiles
366
358
  def self.all
367
359
  files = []
368
- exclude = %r{\A(?:\.|dev_gems|bundler/(?!lib|man|exe|[^/]+\.md|bundler.gemspec)|util/)}
360
+ exclude = %r{\A(?:\.|dev_gems|bundler/(?!lib|exe|[^/]+\.md|bundler.gemspec)|util/)}
369
361
  tracked_files = `git ls-files`.split("\n")
370
362
 
371
363
  tracked_files.each do |path|
data/bundler/CHANGELOG.md CHANGED
@@ -1,3 +1,74 @@
1
+ # 2.2.8 (February 2, 2021)
2
+
3
+ ## Enhancements:
4
+
5
+ - Add a CHANGELOG.md file to gems generated by `bundle gem` [#4093](https://github.com/rubygems/rubygems/pull/4093)
6
+ - Support gemified `set` [#4297](https://github.com/rubygems/rubygems/pull/4297)
7
+
8
+ ## Bug fixes:
9
+
10
+ - Fix standalone Kernel.require visibility [#4337](https://github.com/rubygems/rubygems/pull/4337)
11
+
12
+ ## Performance:
13
+
14
+ - Fix resolver edge cases and speed up bundler [#4277](https://github.com/rubygems/rubygems/pull/4277)
15
+
16
+ # 2.2.7 (January 26, 2021)
17
+
18
+ ## Enhancements:
19
+
20
+ - Improve error messages when dependency on bundler conflicts with running version [#4308](https://github.com/rubygems/rubygems/pull/4308)
21
+ - Avoid showing platforms with requirements in error messages [#4310](https://github.com/rubygems/rubygems/pull/4310)
22
+ - Introduce disable_local_revision_check config [#4237](https://github.com/rubygems/rubygems/pull/4237)
23
+ - Reverse rubygems require mixin with bundler standalone [#4299](https://github.com/rubygems/rubygems/pull/4299)
24
+
25
+ ## Bug fixes:
26
+
27
+ - Fix releasing from a not yet pushed branch [#4309](https://github.com/rubygems/rubygems/pull/4309)
28
+ - Install cache only once if it already exists [#4304](https://github.com/rubygems/rubygems/pull/4304)
29
+ - Fix `force_ruby_platform` no longer being respected [#4302](https://github.com/rubygems/rubygems/pull/4302)
30
+
31
+ ## Performance:
32
+
33
+ - Fix resolver dependency comparison [#4289](https://github.com/rubygems/rubygems/pull/4289)
34
+
35
+ # 2.2.6 (January 18, 2021)
36
+
37
+ ## Enhancements:
38
+
39
+ - Improve resolver debugging [#4288](https://github.com/rubygems/rubygems/pull/4288)
40
+
41
+ ## Bug fixes:
42
+
43
+ - Fix dependency locking for path source [#4293](https://github.com/rubygems/rubygems/pull/4293)
44
+
45
+ ## Performance:
46
+
47
+ - Speed up complex dependency resolves by creating DepProxy factory and cache [#4216](https://github.com/rubygems/rubygems/pull/4216)
48
+
49
+ # 2.2.5 (January 11, 2021)
50
+
51
+ ## Enhancements:
52
+
53
+ - Improve rubocop setup in the new gem template [#4220](https://github.com/rubygems/rubygems/pull/4220)
54
+ - Support repositories with default branch not named master [#4224](https://github.com/rubygems/rubygems/pull/4224)
55
+
56
+ ## Bug fixes:
57
+
58
+ - Let Net::HTTP decompress the index instead of doing it manually [#4081](https://github.com/rubygems/rubygems/pull/4081)
59
+ - Workaround for another jruby crash when autoloading a constant [#4252](https://github.com/rubygems/rubygems/pull/4252)
60
+ - Fix another performance regression in the resolver [#4243](https://github.com/rubygems/rubygems/pull/4243)
61
+ - Restore support for old git versions [#4233](https://github.com/rubygems/rubygems/pull/4233)
62
+ - Give a proper error if cache path does not have write access [#4215](https://github.com/rubygems/rubygems/pull/4215)
63
+ - Fix running `rake release` from an ambiguous ref [#4219](https://github.com/rubygems/rubygems/pull/4219)
64
+
65
+ # 2.2.4 (December 31, 2020)
66
+
67
+ ## Bug fixes:
68
+
69
+ - Fix bundle man pages display on truffleruby [#4209](https://github.com/rubygems/rubygems/pull/4209)
70
+ - Fix Windows + JRuby no longer being able to install git sources [#4196](https://github.com/rubygems/rubygems/pull/4196)
71
+
1
72
  # 2.2.3 (December 22, 2020)
2
73
 
3
74
  ## Bug fixes:
@@ -320,7 +391,7 @@
320
391
  - Fix `bundle update` message about exclude groups saying "installed" instead of "updated" ([#7150](https://github.com/rubygems/bundler/pull/7150))
321
392
  - Fix `bundle licenses` not showing correct information about bundler itself ([#7147](https://github.com/rubygems/bundler/pull/7147))
322
393
  - Fix installation path not including ruby scope when `BUNDLE_PATH` was set ([#7163](https://github.com/rubygems/bundler/pull/7163))
323
- - Fix `bundle clean` incorrectly removing git depedencies present in the Gemfile when rubygems 3.0+ was used and path involved a symlink ([#7211](https://github.com/rubygems/bundler/pull/7211))
394
+ - Fix `bundle clean` incorrectly removing git dependencies present in the Gemfile when rubygems 3.0+ was used and path involved a symlink ([#7211](https://github.com/rubygems/bundler/pull/7211))
324
395
  - Fix platform specific gems always being re-resolved when bundler was not running under that platform ([#7212](https://github.com/rubygems/bundler/pull/7212))
325
396
  - Fix `bundle package --all-platforms` causing `bundle install` to ignore `--with` and `--without` ([#6113](https://github.com/rubygems/bundler/pull/6113))
326
397
  - Fix `MissingRevision` git errors to include the specific `git` command that failed under the hood ([#7225](https://github.com/rubygems/bundler/pull/7225))
@@ -492,7 +563,7 @@ Changes
492
563
  ## Bug fixes:
493
564
 
494
565
  - Fix issue where updating a gem resulted in the gem's version being downgraded when `BUNDLE_ONLY_UPDATE_TO_NEWER_VERSIONS` was set ([#6529](https://github.com/rubygems/bundler/issues/6529), @theflow)
495
- - Fix some rescue calls that don't specifiy error type (@utilum)
566
+ - Fix some rescue calls that don't specify error type (@utilum)
496
567
  - Fix an issue when the Lockfile would contain platform-specific gems that it didn't need ([#6491](https://github.com/rubygems/bundler/issues/6491), @segiddins)
497
568
  - Improve handling of adding new gems with only a single group to the Gemfile in `bundle add` (@agrim123)
498
569
  - Refactor check for OpenSSL in `bundle env` (@voxik)
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
34
34
  s.required_ruby_version = ">= 2.3.0"
35
35
  s.required_rubygems_version = ">= 2.5.2"
36
36
 
37
- s.files = Dir.glob("{lib,man,exe}/**/*", File::FNM_DOTMATCH).reject {|f| File.directory?(f) }
37
+ s.files = Dir.glob("{lib,exe}/**/*", File::FNM_DOTMATCH).reject {|f| File.directory?(f) }
38
38
 
39
39
  # Include the CHANGELOG.md, LICENSE.md, README.md manually
40
40
  s.files += %w[CHANGELOG.md LICENSE.md README.md]
@@ -63,7 +63,6 @@ module Bundler
63
63
  autoload :Resolver, File.expand_path("bundler/resolver", __dir__)
64
64
  autoload :Retry, File.expand_path("bundler/retry", __dir__)
65
65
  autoload :RubyDsl, File.expand_path("bundler/ruby_dsl", __dir__)
66
- autoload :RubyGemsGemInstaller, File.expand_path("bundler/rubygems_gem_installer", __dir__)
67
66
  autoload :RubyVersion, File.expand_path("bundler/ruby_version", __dir__)
68
67
  autoload :Runtime, File.expand_path("bundler/runtime", __dir__)
69
68
  autoload :Settings, File.expand_path("bundler/settings", __dir__)
@@ -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 = "2020-12-22".freeze
8
- @git_commit_sha = "29dc3c8398".freeze
7
+ @built_at = "2021-02-02".freeze
8
+ @git_commit_sha = "4015e550dc".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -122,9 +122,7 @@ module Bundler
122
122
  else command = "bundle-#{cli}"
123
123
  end
124
124
 
125
- man_path = File.expand_path("../../../man", __FILE__)
126
- # man files are located under ruby's mandir with the default gems of bundler
127
- man_path = RbConfig::CONFIG["mandir"] unless File.directory?(man_path)
125
+ man_path = File.expand_path("man", __dir__)
128
126
  man_pages = Hash[Dir.glob(File.join(man_path, "**", "*")).grep(/.*\.\d*\Z/).collect do |f|
129
127
  [File.basename(f, ".*"), f]
130
128
  end]
@@ -134,8 +132,7 @@ module Bundler
134
132
  if Bundler.which("man") && man_path !~ %r{^file:/.+!/META-INF/jruby.home/.+}
135
133
  Kernel.exec "man #{man_page}"
136
134
  else
137
- fallback_man_path = File.expand_path("../man", __FILE__)
138
- puts File.read("#{fallback_man_path}/#{File.basename(man_page)}.ronn")
135
+ puts File.read("#{man_path}/#{File.basename(man_page)}.ronn")
139
136
  end
140
137
  elsif command_path = Bundler.which("bundler-#{cli}")
141
138
  Kernel.exec(command_path, "--help")
@@ -589,6 +586,7 @@ module Bundler
589
586
  method_option :git, :type => :boolean, :default => true, :desc => "Initialize a git repo inside your library."
590
587
  method_option :mit, :type => :boolean, :desc => "Generate an MIT license file. Set a default with `bundle config set --global gem.mit true`."
591
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`."
592
590
  method_option :test, :type => :string, :lazy_default => Bundler.settings["gem.test"] || "", :aliases => "-t", :banner => "Use the specified test framework for your library",
593
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)`."
594
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
 
@@ -59,6 +59,7 @@ module Bundler
59
59
  :exe => options[:exe],
60
60
  :bundler_version => bundler_dependency_version,
61
61
  :github_username => github_username.empty? ? "[USERNAME]" : github_username,
62
+ :required_ruby_version => Gem.ruby_version < Gem::Version.new("2.4.a") ? "2.3.0" : "2.4.0",
62
63
  }
63
64
  ensure_safe_gem_name(name, constant_array)
64
65
 
@@ -141,12 +142,25 @@ module Bundler
141
142
  templates.merge!("CODE_OF_CONDUCT.md.tt" => "CODE_OF_CONDUCT.md")
142
143
  end
143
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
+
144
157
  if ask_and_set(:rubocop, "Do you want to add rubocop as a dependency for gems you generate?",
145
158
  "RuboCop is a static code analyzer that has out-of-the-box rules for many " \
146
159
  "of the guidelines in the community style guide. " \
147
160
  "For more information, see the RuboCop docs (https://docs.rubocop.org/en/stable/) " \
148
161
  "and the Ruby Style Guides (https://github.com/rubocop-hq/ruby-style-guide).")
149
162
  config[:rubocop] = true
163
+ config[:rubocop_version] = Gem.ruby_version < Gem::Version.new("2.4.a") ? "0.81.0" : "1.7"
150
164
  Bundler.ui.info "RuboCop enabled in config"
151
165
  templates.merge!("rubocop.yml.tt" => ".rubocop.yml")
152
166
  end
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "../vendored_fileutils"
4
- require "stringio"
5
- require "zlib"
6
4
 
7
5
  module Bundler
8
6
  class CompactIndexClient
@@ -45,18 +43,12 @@ module Bundler
45
43
  else
46
44
  "bytes=#{local_temp_path.size}-"
47
45
  end
48
- else
49
- # Fastly ignores Range when Accept-Encoding: gzip is set
50
- headers["Accept-Encoding"] = "gzip"
51
46
  end
52
47
 
53
48
  response = @fetcher.call(remote_path, headers)
54
49
  return nil if response.is_a?(Net::HTTPNotModified)
55
50
 
56
51
  content = response.body
57
- if response["Content-Encoding"] == "gzip"
58
- content = Zlib::GzipReader.new(StringIO.new(content)).read
59
- end
60
52
 
61
53
  SharedHelpers.filesystem_access(local_temp_path) do
62
54
  if response.is_a?(Net::HTTPPartialContent) && local_temp_path.size.nonzero?
@@ -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
@@ -259,23 +258,18 @@ module Bundler
259
258
  def resolve
260
259
  @resolve ||= begin
261
260
  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)
261
+ if Bundler.frozen_bundle?
262
+ Bundler.ui.debug "Frozen, using resolution from the lockfile"
263
+ last_resolve
264
+ elsif !unlocking? && nothing_changed?
265
+ Bundler.ui.debug("Found no changes, using resolution from the lockfile")
266
+ last_resolve
267
+ else
268
+ # Run a resolve against the locally available gems
269
+ Bundler.ui.debug("Found changes from the lockfile, re-resolving dependencies because #{change_reason}")
270
+ expanded_dependencies = expand_dependencies(dependencies + metadata_dependencies, @remote)
271
+ Resolver.resolve(expanded_dependencies, index, source_requirements, last_resolve, gem_version_promoter, additional_base_requirements_for_resolve, platforms)
272
+ end
279
273
  end
280
274
  end
281
275
 
@@ -604,7 +598,7 @@ module Bundler
604
598
  deps_for_source = @dependencies.select {|s| s.source == source }
605
599
  locked_deps_for_source = @locked_deps.values.select {|dep| dep.source == locked_source }
606
600
 
607
- Set.new(deps_for_source) != Set.new(locked_deps_for_source)
601
+ deps_for_source.sort != locked_deps_for_source.sort
608
602
  end
609
603
 
610
604
  def specs_for_source_changed?(source)
@@ -818,11 +812,6 @@ module Bundler
818
812
  # commonly happens if the version changed in the gemspec
819
813
  next unless new_spec
820
814
 
821
- new_runtime_deps = new_spec.dependencies.select {|d| d.type != :development }
822
- old_runtime_deps = s.dependencies.select {|d| d.type != :development }
823
- # If the dependencies of the path source have changed and locked spec can't satisfy new dependencies, unlock it
824
- next unless new_runtime_deps.sort == old_runtime_deps.sort || new_runtime_deps.all? {|d| satisfies_locked_spec?(d) }
825
-
826
815
  s.dependencies.replace(new_spec.dependencies)
827
816
  end
828
817
 
@@ -889,7 +878,7 @@ module Bundler
889
878
  dependencies.each do |dep|
890
879
  dep = Dependency.new(dep, ">= 0") unless dep.respond_to?(:name)
891
880
  next unless remote || dep.current_platform?
892
- target_platforms = dep.gem_platforms(remote ? Resolver.sort_platforms(@platforms) : [generic_local_platform])
881
+ target_platforms = dep.gem_platforms(remote ? @platforms : [generic_local_platform])
893
882
  deps += expand_dependency_with_platforms(dep, target_platforms)
894
883
  end
895
884
  deps
@@ -897,7 +886,7 @@ module Bundler
897
886
 
898
887
  def expand_dependency_with_platforms(dep, platforms)
899
888
  platforms.map do |p|
900
- DepProxy.new(dep, p)
889
+ DepProxy.get_proxy(dep, p)
901
890
  end
902
891
  end
903
892
 
@@ -918,6 +907,7 @@ module Bundler
918
907
  metadata_dependencies.each do |dep|
919
908
  source_requirements[dep.name] = sources.metadata_source
920
909
  end
910
+ source_requirements[:default_bundler] = source_requirements["bundler"] || source_requirements[:default]
921
911
  source_requirements["bundler"] = sources.metadata_source # needs to come last to override
922
912
  source_requirements
923
913
  end
@@ -977,7 +967,7 @@ module Bundler
977
967
  next requirements if @locked_gems.dependencies[name] != dependency
978
968
  next requirements if dependency.source.is_a?(Source::Path)
979
969
  dep = Gem::Dependency.new(name, ">= #{locked_spec.version}")
980
- requirements[name] = DepProxy.new(dep, locked_spec.platform)
970
+ requirements[name] = DepProxy.get_proxy(dep, locked_spec.platform)
981
971
  requirements
982
972
  end.values
983
973
  end