rubygems-update 2.7.6 → 2.7.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -23
  3. data/History.txt +116 -0
  4. data/Manifest.txt +3 -3
  5. data/Rakefile +12 -2
  6. data/bundler/CHANGELOG.md +130 -0
  7. data/bundler/README.md +5 -1
  8. data/bundler/bundler.gemspec +2 -1
  9. data/bundler/lib/bundler.rb +12 -8
  10. data/bundler/lib/bundler/build_metadata.rb +19 -2
  11. data/bundler/lib/bundler/cli.rb +3 -1
  12. data/bundler/lib/bundler/cli/check.rb +1 -1
  13. data/bundler/lib/bundler/cli/exec.rb +4 -4
  14. data/bundler/lib/bundler/cli/gem.rb +5 -2
  15. data/bundler/lib/bundler/cli/init.rb +5 -0
  16. data/bundler/lib/bundler/cli/install.rb +2 -2
  17. data/bundler/lib/bundler/cli/outdated.rb +1 -1
  18. data/bundler/lib/bundler/cli/update.rb +3 -3
  19. data/bundler/lib/bundler/compact_index_client/updater.rb +10 -1
  20. data/bundler/lib/bundler/current_ruby.rb +8 -1
  21. data/bundler/lib/bundler/definition.rb +33 -23
  22. data/bundler/lib/bundler/dep_proxy.rb +2 -2
  23. data/bundler/lib/bundler/dependency.rb +1 -0
  24. data/bundler/lib/bundler/deprecate.rb +2 -1
  25. data/bundler/lib/bundler/endpoint_specification.rb +1 -1
  26. data/bundler/lib/bundler/env.rb +10 -8
  27. data/bundler/lib/bundler/fetcher.rb +3 -3
  28. data/bundler/lib/bundler/fetcher/downloader.rb +10 -5
  29. data/bundler/lib/bundler/fetcher/index.rb +2 -2
  30. data/bundler/lib/bundler/friendly_errors.rb +2 -0
  31. data/bundler/lib/bundler/gem_helper.rb +1 -1
  32. data/bundler/lib/bundler/gem_version_promoter.rb +12 -0
  33. data/bundler/lib/bundler/injector.rb +5 -5
  34. data/bundler/lib/bundler/installer.rb +12 -4
  35. data/bundler/lib/bundler/installer/gem_installer.rb +9 -2
  36. data/bundler/lib/bundler/installer/parallel_installer.rb +1 -1
  37. data/bundler/lib/bundler/lazy_specification.rb +1 -1
  38. data/bundler/lib/bundler/mirror.rb +2 -2
  39. data/bundler/lib/bundler/plugin.rb +2 -2
  40. data/bundler/lib/bundler/plugin/index.rb +7 -2
  41. data/bundler/lib/bundler/process_lock.rb +1 -1
  42. data/bundler/lib/bundler/resolver.rb +10 -9
  43. data/bundler/lib/bundler/resolver/spec_group.rb +0 -5
  44. data/bundler/lib/bundler/ruby_version.rb +1 -1
  45. data/bundler/lib/bundler/rubygems_integration.rb +9 -3
  46. data/bundler/lib/bundler/runtime.rb +2 -2
  47. data/bundler/lib/bundler/shared_helpers.rb +15 -3
  48. data/bundler/lib/bundler/source/git.rb +2 -1
  49. data/bundler/lib/bundler/source/git/git_proxy.rb +6 -1
  50. data/bundler/lib/bundler/source/metadata.rb +1 -1
  51. data/bundler/lib/bundler/source/rubygems.rb +11 -2
  52. data/bundler/lib/bundler/source/rubygems/remote.rb +4 -1
  53. data/bundler/lib/bundler/spec_set.rb +4 -1
  54. data/bundler/lib/bundler/templates/Executable +1 -1
  55. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -2
  56. data/bundler/lib/bundler/templates/newgem/travis.yml.tt +2 -0
  57. data/bundler/lib/bundler/ui/shell.rb +3 -1
  58. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -1
  59. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +7 -2
  60. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  61. data/bundler/lib/bundler/version.rb +1 -1
  62. data/bundler/man/bundle-binstubs.ronn +3 -3
  63. data/bundler/man/bundle-check.ronn +3 -3
  64. data/bundler/man/bundle-config.ronn +13 -9
  65. data/bundler/man/bundle-doctor.ronn +33 -0
  66. data/bundler/man/bundle-exec.ronn +3 -3
  67. data/bundler/man/bundle-gem.ronn +1 -1
  68. data/bundler/man/bundle-init.ronn +15 -4
  69. data/bundler/man/bundle-inject.ronn +3 -3
  70. data/bundler/man/bundle-install.ronn +12 -3
  71. data/bundler/man/bundle-lock.ronn +1 -1
  72. data/bundler/man/bundle-outdated.ronn +1 -1
  73. data/bundler/man/bundle-package.ronn +3 -3
  74. data/bundler/man/bundle-show.ronn +3 -2
  75. data/bundler/man/bundle-update.ronn +18 -14
  76. data/bundler/man/bundle-viz.ronn +1 -1
  77. data/bundler/man/bundle.ronn +27 -27
  78. data/bundler/man/gemfile.5.ronn +24 -9
  79. data/lib/rubygems.rb +24 -11
  80. data/lib/rubygems/bundler_version_finder.rb +9 -22
  81. data/lib/rubygems/command_manager.rb +6 -4
  82. data/lib/rubygems/commands/install_command.rb +7 -0
  83. data/lib/rubygems/commands/owner_command.rb +4 -1
  84. data/lib/rubygems/commands/push_command.rb +37 -4
  85. data/lib/rubygems/commands/setup_command.rb +3 -3
  86. data/lib/rubygems/commands/uninstall_command.rb +1 -1
  87. data/lib/rubygems/commands/unpack_command.rb +1 -1
  88. data/lib/rubygems/core_ext/kernel_require.rb +2 -7
  89. data/lib/rubygems/dependency.rb +1 -0
  90. data/lib/rubygems/dependency_installer.rb +4 -2
  91. data/lib/rubygems/exceptions.rb +5 -1
  92. data/lib/rubygems/gemcutter_utilities.rb +5 -2
  93. data/lib/rubygems/indexer.rb +1 -1
  94. data/lib/rubygems/install_update_options.rb +1 -1
  95. data/lib/rubygems/installer.rb +29 -6
  96. data/lib/rubygems/package.rb +20 -2
  97. data/lib/rubygems/package/tar_header.rb +3 -1
  98. data/lib/rubygems/package/tar_writer.rb +2 -3
  99. data/lib/rubygems/remote_fetcher.rb +1 -1
  100. data/lib/rubygems/request_set.rb +28 -17
  101. data/lib/rubygems/requirement.rb +14 -3
  102. data/lib/rubygems/resolver/api_specification.rb +5 -0
  103. data/lib/rubygems/security.rb +6 -1
  104. data/lib/rubygems/server.rb +3 -3
  105. data/lib/rubygems/source.rb +1 -1
  106. data/lib/rubygems/specification.rb +7 -10
  107. data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
  108. data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
  109. data/lib/rubygems/test_case.rb +22 -4
  110. data/lib/rubygems/test_utilities.rb +1 -1
  111. data/lib/rubygems/user_interaction.rb +9 -2
  112. data/lib/rubygems/util/licenses.rb +35 -4
  113. data/lib/rubygems/version.rb +7 -1
  114. data/lib/ubygems.rb +3 -0
  115. data/test/rubygems/test_bundled_ca.rb +7 -4
  116. data/test/rubygems/test_gem.rb +45 -10
  117. data/test/rubygems/test_gem_bundler_version_finder.rb +8 -7
  118. data/test/rubygems/test_gem_command_manager.rb +2 -2
  119. data/test/rubygems/test_gem_commands_build_command.rb +2 -0
  120. data/test/rubygems/test_gem_commands_install_command.rb +37 -0
  121. data/test/rubygems/test_gem_commands_push_command.rb +20 -0
  122. data/test/rubygems/test_gem_commands_setup_command.rb +6 -1
  123. data/test/rubygems/test_gem_commands_signin_command.rb +1 -1
  124. data/test/rubygems/test_gem_commands_uninstall_command.rb +1 -1
  125. data/test/rubygems/test_gem_dependency.rb +1 -1
  126. data/test/rubygems/test_gem_ext_rake_builder.rb +0 -4
  127. data/test/rubygems/test_gem_install_update_options.rb +2 -0
  128. data/test/rubygems/test_gem_installer.rb +109 -3
  129. data/test/rubygems/test_gem_package.rb +90 -5
  130. data/test/rubygems/test_gem_package_tar_header.rb +2 -1
  131. data/test/rubygems/test_gem_remote_fetcher.rb +6 -2
  132. data/test/rubygems/test_gem_request.rb +5 -2
  133. data/test/rubygems/test_gem_requirement.rb +6 -0
  134. data/test/rubygems/test_gem_resolver_api_specification.rb +24 -0
  135. data/test/rubygems/test_gem_resolver_installer_set.rb +1 -1
  136. data/test/rubygems/test_gem_security_policy.rb +3 -3
  137. data/test/rubygems/test_gem_server.rb +12 -12
  138. data/test/rubygems/test_gem_specification.rb +27 -13
  139. data/test/rubygems/test_gem_stream_ui.rb +2 -2
  140. data/test/rubygems/test_gem_text.rb +5 -0
  141. data/test/rubygems/test_gem_util.rb +4 -2
  142. data/test/rubygems/test_gem_version.rb +29 -2
  143. data/util/ci +1 -0
  144. data/util/generate_spdx_license_list.rb +15 -6
  145. data/util/update_bundled_ca_certificates.rb +1 -3
  146. metadata +12 -12
  147. data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  148. data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0fa366bda5b1ed46730b8c276ce161ef32966ec9dde14f974663508163df41da
4
- data.tar.gz: 76d8c2583652ec7266303e5af81014b7b6c440ff207e1d4cbe483959226db55d
3
+ metadata.gz: 05af8c86d4ea15a0d09d4d8611a6aca36d75dc741cdd8e5d86076475ebe8a7de
4
+ data.tar.gz: a8dfa7a91b938c27adb2227e99bb3160384e5bfe4b0701f54bdda00039f5bedb
5
5
  SHA512:
6
- metadata.gz: cd712f404f5e736191c312af58dafdfe897e155b9cdec68a634547606846bb31bae7cdefc46ace35eb143db7f8281c20092a534a7ccb94760ad5701d8c0ca06f
7
- data.tar.gz: 1d80df8990549a07c91d94c5e848141f72045a71046ef0a3be5b871e8af9f0909187b196d117b6c508ec9fd0c9238a0ed96e4f9a8c7f6a9f6b59feac8a7df25b
6
+ metadata.gz: 7c7a3afc31fb6b849ad66759acb0df2444867bf0db3f64ec05f7484689cb47bac289429d5a350fa7949a5d2a94090c14fd7eec552b8ea3678e71f4a65bdd11ba
7
+ data.tar.gz: 77a27d60b8709a0b26872bf616eeb4161cf9c847b0770e74976d631934b4ef88c2d5d2406c36846104361acea894e1b4104921fd286a6540adf17402d85dcecb
@@ -28,28 +28,7 @@ env:
28
28
  - "TEST_TOOL=rubygems YAML=psych"
29
29
  - "TEST_TOOL=bundler RGV=master"
30
30
  script:
31
- - util/ci script
31
+ - util/ci script
32
32
  matrix:
33
- exclude:
34
- - rvm: 1.8.7
35
- env: "TEST_TOOL=rubygems YAML=psych"
36
- - rvm: 1.9.2
37
- env: "TEST_TOOL=bundler RGV=master"
38
- - rvm: 2.0.0
39
- env: "TEST_TOOL=rubygems YAML=syck"
40
- - rvm: 2.1.10
41
- env: "TEST_TOOL=rubygems YAML=syck"
42
- - rvm: 2.2.9
43
- env: "TEST_TOOL=rubygems YAML=syck"
44
- - rvm: 2.3.6
45
- env: "TEST_TOOL=rubygems YAML=syck"
46
- - rvm: 2.4.3
47
- env: "TEST_TOOL=rubygems YAML=syck"
48
- - rvm: 2.5.0
49
- env: "TEST_TOOL=rubygems YAML=syck"
50
- - rvm: ruby-head
51
- env: "TEST_TOOL=rubygems YAML=syck"
52
33
  allow_failures:
53
- - rvm: ruby-head
54
- - rvm: 2.5.0
55
- env: "TEST_TOOL=rubygems YAML=psych"
34
+ - env: "TEST_TOOL=bundler RGV=master"
@@ -1,5 +1,107 @@
1
1
  # coding: UTF-8
2
2
 
3
+ === 2.7.11 / 2020-12-08
4
+
5
+ Minor enhancements:
6
+
7
+ * Add GlobalSign Root CA - R3 cert and remove outdated certs. Pull request #4100
8
+ by Aditya Prakash.
9
+
10
+ === 2.7.10 / 2019-06-14
11
+
12
+ Minor enhancements:
13
+
14
+ * Fix bundler rubygems binstub not properly looking for bundler. Pull request #2426
15
+ by David Rodríguez.
16
+ * [BudlerVersionFinder] set .filter! and .compatible? to match only on major versions.
17
+ Pull request #2515 by Colby Swandale.
18
+ + Update for compatibilty with new minitest. Pull request #2118 by MSP-Greg.
19
+
20
+ === 2.7.9 / 2019-03-05
21
+
22
+ Security fixes:
23
+
24
+ * Fixed following vulnerabilities:
25
+ * CVE-2019-8320: Delete directory using symlink when decompressing tar
26
+ * CVE-2019-8321: Escape sequence injection vulnerability in `verbose`
27
+ * CVE-2019-8322: Escape sequence injection vulnerability in `gem owner`
28
+ * CVE-2019-8323: Escape sequence injection vulnerability in API response handling
29
+ * CVE-2019-8324: Installing a malicious gem may lead to arbitrary code execution
30
+ * CVE-2019-8325: Escape sequence injection vulnerability in errors
31
+
32
+ === 2.7.8 / 2018-11-02
33
+
34
+ Minor enhancements:
35
+
36
+ * [Requirement] Treat requirements with == versions as equal. Pull
37
+ request #2230 by Samuel Giddins.
38
+ * Fix exec_name documentation. Pull request #2239 by Luis Sagastume.
39
+ * [TarHeader] Extract the empty header into a constant. Pull request #2247
40
+ by Samuel Giddins.
41
+ * Simplify the code that lets us call the original, non-monkeypatched
42
+ Kernel#require. Pull request #2267 by Leon Miller-Out.
43
+ * Add install alias documentation. Pull request #2320 by ota42y.
44
+ * [Rakefile] Set bundler build metadata when doing a release. Pull request
45
+ #2335 by Samuel Giddins.
46
+ * Backport commits from ruby core . Pull request #2347 by SHIBATA Hiroshi.
47
+ * Sign in to the correct host before push. Pull request #2366 by Luis
48
+ Sagastume.
49
+ * Bump bundler-1.16.4. Pull request #2381 by SHIBATA Hiroshi.
50
+ * Improve bindir flag description. Pull request #2383 by Luis Sagastume.
51
+ * Update bundler-1.16.6. Pull request #2423 by SHIBATA Hiroshi.
52
+
53
+ Bug fixes:
54
+
55
+ * Fix #1470: generate documentation when --install-dir is present. Pull
56
+ request #2229 by Elias Hernandis.
57
+ * Fix no proxy checking. Pull request #2249 by Luis Sagastume.
58
+ * Validate SPDX license exceptions. Pull request #2257 by Mikit.
59
+ * Retry api specification spec with original platform. Pull request #2275
60
+ by Luis Sagastume.
61
+ * Fix approximate recommendation with prereleases. Pull request #2345 by
62
+ David Rodríguez.
63
+ * Gem::Version should handle nil like it used to before. Pull request
64
+ #2363 by Luis Sagastume.
65
+
66
+ === 2.7.7 / 2018-05-08
67
+
68
+ Minor enhancements:
69
+
70
+ * [RequestSet] Only suggest a gem version with an installable platform.
71
+ Pull request #2175 by Samuel Giddins.
72
+ * Fixed no assignment variables about default gems installation. Pull
73
+ request #2181 by SHIBATA Hiroshi.
74
+ * Backport improvements for test-case from Ruby core. Pull request #2189
75
+ by SHIBATA Hiroshi.
76
+ * Fix ruby warnings in test suite. Pull request #2205 by Colby Swandale.
77
+ * To use Gem::Specification#bindir of bundler instead of hard coded path.
78
+ Pull request #2208 by SHIBATA Hiroshi.
79
+ * Update gem push --help description. Pull request #2215 by Luis
80
+ Sagastume.
81
+ * Backport ruby core commits. Pull request #2264 by SHIBATA Hiroshi.
82
+
83
+ Bug fixes:
84
+
85
+ * Frozen string fix - lib/rubygems/bundler_version_finder.rb. Pull request
86
+ #2115 by MSP-Greg.
87
+ * Fixed tempfile leak for RubyGems 2.7.6. Pull request #2194 by SHIBATA
88
+ Hiroshi.
89
+ * Add missing requires. Pull request #2196 by David Rodríguez.
90
+ * Fix Gem::Version.correct?. Pull request #2203 by Masato Nakamura.
91
+ * Fix verify_entry regex for metadata. Pull request #2212 by Luis
92
+ Sagastume.
93
+ * Fix path checks for case insensitive filesystem. Pull request #2211 by
94
+ Lars Kanis.
95
+
96
+ Compatibility changes:
97
+
98
+ * Deprecate unused code before removing them at #1524. Pull request #2197
99
+ by SHIBATA Hiroshi.
100
+ * Deprecate for rubygems 3. Pull request #2214 by SHIBATA Hiroshi.
101
+ * Mark deprecation to `ubygems.rb` for RubyGems 4. Pull request #2269 by
102
+ SHIBATA Hiroshi.
103
+ * Update bundler-1.16.2. Pull request #2291 by SHIBATA Hiroshi.
104
+
3
105
  === 2.7.6 / 2018-02-16
4
106
 
5
107
  Security fixes:
@@ -19,6 +121,20 @@ Security fixes:
19
121
  * Prevent Path Traversal issue during gem installation.
20
122
  Discovered by nmalkin.
21
123
 
124
+ === 2.7.5
125
+
126
+ Bug fixes:
127
+
128
+ * To use bundler-1.16.1 #2121 by SHIBATA Hiroshi.
129
+ * Fixed leaked FDs. Pull request #2127 by Nobuyoshi Nakada.
130
+ * Support option for `--destdir` with upgrade installer. #2169 by Thibault Jouan.
131
+ * Remove PID from gem index directory. #2155 by SHIBATA Hiroshi.
132
+ * Avoid a #mkdir race condition #2148 by Samuel Giddins.
133
+ * Gem::Util.traverse_parents should not crash on permissions error #2147 by Robert Ulejczyk.
134
+ * Use `File.open` instead of `open`. #2142 by SHIBATA Hiroshi.
135
+ * Set whether bundler is used for gemdeps with an environmental variable #2126 by SHIBATA Hiroshi.
136
+ * Fix undefined method error when printing alert #1884 by Robert Ross.
137
+
22
138
  === 2.7.4
23
139
 
24
140
  Bug fixes:
@@ -247,6 +247,7 @@ bundler/man/bundle-binstubs.ronn
247
247
  bundler/man/bundle-check.ronn
248
248
  bundler/man/bundle-clean.ronn
249
249
  bundler/man/bundle-config.ronn
250
+ bundler/man/bundle-doctor.ronn
250
251
  bundler/man/bundle-exec.ronn
251
252
  bundler/man/bundle-gem.ronn
252
253
  bundler/man/bundle-info.ronn
@@ -432,9 +433,8 @@ lib/rubygems/source_specific_file.rb
432
433
  lib/rubygems/spec_fetcher.rb
433
434
  lib/rubygems/specification.rb
434
435
  lib/rubygems/ssl_certs/.document
435
- lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem
436
- lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem
437
- lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem
436
+ lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem
437
+ lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem
438
438
  lib/rubygems/stub_specification.rb
439
439
  lib/rubygems/syck_hack.rb
440
440
  lib/rubygems/test_case.rb
data/Rakefile CHANGED
@@ -173,9 +173,9 @@ end
173
173
  # --------------------------------------------------------------------
174
174
  # Creating a release
175
175
 
176
- task :prerelease => [:clobber, :check_manifest, :test]
176
+ task :prerelease => %w[clobber check_manifest test bundler:build_metadata]
177
177
 
178
- task :postrelease => %w[upload guides:publish blog:publish]
178
+ task :postrelease => %w[bundler:build_metadata:clean upload guides:publish blog:publish]
179
179
 
180
180
  file "pkg/rubygems-#{v}" => "pkg/rubygems-update-#{v}" do |t|
181
181
  require 'find'
@@ -513,4 +513,14 @@ namespace :bundler do
513
513
  task :checkout do
514
514
  sh "git submodule update --init"
515
515
  end
516
+
517
+ task :build_metadata do
518
+ chdir('bundler') { sh "rake build_metadata" }
519
+ end
520
+
521
+ namespace :build_metadata do
522
+ task :clean do
523
+ chdir('bundler') { sh "rake build_metadata:clean" }
524
+ end
525
+ end
516
526
  end
@@ -1,3 +1,133 @@
1
+ ## 1.16.6 (2018-10-05)
2
+
3
+ Changes:
4
+
5
+ - Add an error message when adding a gem with `bundle add` that's already in the bundle ([#6341](https://github.com/bundler/bundler/issues/6341), @agrim123)
6
+ - Add Homepage, Source Code and Chanagelog URI metadata fields to the `bundle gem` gemspec template (@walf443)
7
+
8
+ Bugfixes:
9
+
10
+ - 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/bundler/bundler/issues/6529), @theflow)
11
+ - Fix some rescue calls that don't specifiy error type (@utilum)
12
+ - Fix an issue when the Lockfile would contain platform-specific gems that it didn't need ([#6491](https://github.com/bundler/bundler/issues/6491), @segiddins)
13
+ - Improve handlding of adding new gems with only a single group to the Gemfile in `bundle add` (@agrim123)
14
+ - Refactor check for OpenSSL in `bundle env` (@voxik)
15
+ - Remove an unnecessary assignment in Metadata (@voxik)
16
+
17
+ Documentation:
18
+
19
+ - Update docs to reflect revised guidance to check in Gemfile.lock into version control for gems ([#5879](https://github.com/bundler/bundler/issues/5879), @arbonap)
20
+ - Add documentation for the `--all` flag in `bundle update` (@agrim123)
21
+ - Update README to use `bundle add` in usage examples (@hdf1986)
22
+
23
+ ## 1.16.5 (2018-09-18)
24
+
25
+ Changes:
26
+
27
+ - Add support for TruffleRuby (@eregon)
28
+
29
+ Bugfixes:
30
+
31
+ - Avoid printing git errors when checking the version on incorrectly packaged versions of Bundler ([#6453](https://github.com/bundler/bundler/issues/6453), @greysteil)
32
+ - Fix issue where Bundler does not check the given class when comparing equality in DepProxy (@ChrisBr)
33
+ - Handle `RangeNotSatisfiable` error in Compact Index (@MaxLap)
34
+ - Check for initialized `search` variable in `LazySpecification` (@voxik)
35
+ - Fix LoadError occurring in nested bundle exec calls ([#6537](https://github.com/bundler/bundler/issues/6537), @colby-swandale)
36
+ - Check that Bundler::Deprecate is not an autoload constant ([#6163](https://github.com/bundler/bundler/issues/6163), @eregon)
37
+ - Prefer non-pre-release versions when performing a `bundle update --patch` ([#6684](https://github.com/bundler/bundler/issues/6684), @segiddins)
38
+
39
+ ## 1.16.4 (2018-08-17)
40
+
41
+ Changes:
42
+
43
+ - Welcome new members to the Bundler core team (@indirect)
44
+ - Don't mutate original error trees when determining version_conflict_message (@greysteil)
45
+ - Update vendored Molinillo to 0.6.6 (@segiddins)
46
+
47
+ Bugfixes:
48
+
49
+ - Reword bundle update regression message to be more clear to the user when a gem's version is downgraded ([#6584](https://github.com/bundler/bundler/issues/6584), @ralphbolo)
50
+ - Respect --conservative flag when updating a dependency group ([#6560](https://github.com/bundler/bundler/issues/6560), @greysteil)
51
+ - Fix issue where a pre-release version was not being selected when it's specified in the Gemfile ([#6449](https://github.com/bundler/bundler/issues/6449), @akihiro17)
52
+ - Fix issue where `Etc` was not loaded when getting the user's home dir ([#6640](https://github.com/bundler/bundler/issues/6640), @colby-swandale)
53
+ - Use UTF-8 for reading files including Gemfile ([#6660](https://github.com/bundler/bundler/issues/6660), @eregon)
54
+ - Remove unnecessary `while` loop in path resolver helper (@ojab)
55
+
56
+ Documentation:
57
+
58
+ - Document that `bundle show [--paths]` sorts results by name (@kemitchell)
59
+
60
+ ## 1.16.3 (2018-07-17)
61
+
62
+ Features:
63
+
64
+ - Support URI::File of Ruby 2.6 (@hsbt)
65
+
66
+ Bugfixes:
67
+
68
+ - Expand symlinks during setup to allow Bundler to load correctly when using symlinks in $GEM_HOME ([#6465](https://github.com/bundler/bundler/issues/6465), @ojab, @indirect)
69
+ - Dont let Bundler create temporary folders for gem installs which are owned by root ([#6258](https://github.com/bundler/bundler/issues/6258), @colby-swandale)
70
+ - Don't fallback to using temporary directories when needed directories already exist ([#6546](https://github.com/bundler/bundler/issues/6546), @brodock)
71
+ - Use SharedHelpers.filesystem_access when reading a Gemfile so friendly error messages can be given to the user ([#6541](https://github.com/bundler/bundler/issues/6541), @segiddins)
72
+ - Check if source responds to `#remotes` before printing gem install error message ([#6211](https://github.com/bundler/bundler/issues/6211), @colby-swandale)
73
+ - Handle Errno::ENOTSUP in the Bundler Process Lock to prevent exceptions when using NFS mounts ([#6566](https://github.com/bundler/bundler/issues/6566), @colby-swandale)
74
+ - Respect encodings when reading gemspecs ([#6598](https://github.com/bundler/bundler/issues/6598), @deivid-rodriguez)
75
+
76
+ Documentation:
77
+
78
+ - Fix links between manual pages (@BanzaiMan)
79
+ - Add warning to Gemfile documentation for the use of the `source` option when declaring gems ([#6280](https://github.com/bundler/bundler/issues/6280), @forestgagnon)
80
+
81
+ ## 1.16.2 (2018-04-20)
82
+
83
+ Changes:
84
+
85
+ - Include the gem's source in the gem install error message when available (@papanikge)
86
+ - Remove unnecessary executable bit from gem template (@voxik)
87
+ - Dont add the timestamp comment with gems added to the Gemfile via `bundle add` ([#6193](https://github.com/bundler/bundler/issues/6193), @cpgo)
88
+ - Improve yanked gem error message (@alyssais)
89
+ - Use `Bundler.rubygems.inflate` instead of the Gem::Util method directly (@segiddins)
90
+ - Remove unused instance variable (@segiddins)
91
+
92
+ Bugfixes:
93
+
94
+ - Only trap INT signal and have Ruby's signal default handler be invoked (@shayonj)
95
+ - Fix warning about the use of `__FILE__` in RubyGems integration testing (@MSP-Greg)
96
+ - Skip the outdated bundler check when MD5 is not available ([#6032](https://github.com/bundler/bundler/issues/6032), @segiddins)
97
+ - Fallback to the original error if the friendly message raises (@segiddins)
98
+ - Rename Bundler.frozen? to avoid Object method conflict ([#6252](https://github.com/bundler/bundler/issues/6252), @segiddins)
99
+ - Ensure the bindir exists before installing gems (@segiddins)
100
+ - Handle gzip corruption errors in the compact index client ([#6261](https://github.com/bundler/bundler/issues/6261), @colby-swandale)
101
+ - Check if the current directory is writeable when writing files in `bundle gem` ([#6219](https://github.com/bundler/bundler/issues/6219), @nilsding)
102
+ - Fix hang when gemspec has incompatible encoding (@deivid-rodriguez)
103
+ - Gracefully handle when the lockfile is missing spec entries for the current platform ([#6079](https://github.com/bundler/bundler/issues/6079), @segiddins)
104
+ - Use Gem::Util.inflate instead of Gem.inflate (@hsbt)
105
+ - Update binstub generator to use new ERB.new arity in Ruby 2.6 (@koic)
106
+ - Fix `source_location` call in rubygems integration (@MSP-Greg)
107
+ - Use `filesystem_access` when copying files in Compact Index Updater ([#6289](https://github.com/bundler/bundler/issues/6289), @segiddins)
108
+ - Fail gracefully when resetting git gems to the given revision fails ([#6324](https://github.com/bundler/bundler/issues/6324), @segiddins)
109
+ - Handle exceptions that do not have a backtrace ([#6342](https://github.com/bundler/bundler/issues/6342), @nesaulov)
110
+ - Check if stderr was closed before writing to it (@shime)
111
+ - Handle updating a specific gem for a non-local platform ([#6350](https://github.com/bundler/bundler/issues/6350), @greysteil)
112
+ - Bump the `bundle_binstub` check-length to 300 characters (@tduffield)
113
+ - Fix specifying alterntive Lockfile with `bundle lock` when default gemfile is present ([#6460](https://github.com/bundler/bundler/issues/6460), @agrim123)
114
+ - Allow installing dependencies when the path is set to `.` ([#6475](https://github.com/bundler/bundler/issues/6475), @segiddins)
115
+ - Support Bundler installing on a readonly filesystem without a home directory ([#6461](https://github.com/bundler/bundler/issues/6461), @grosser)
116
+ - Filter git uri credentials in source description (@segiddins)
117
+
118
+ Documentation:
119
+
120
+ - Correct typos in `bundle binstubs` man page (@erikj, @samueloph)
121
+ - Update links in `bundle gem` command documentation to use https (@KrauseFx)
122
+ - Fix broken links between bundler man pages (@segiddins)
123
+ - Add man page for the `bundle doctor` command ([#6243](https://github.com/bundler/bundler/issues/6243), @nholden)
124
+ - Document `# frozen_string_literal` in `bundle init` Gemfile (@315tky)
125
+ - Explain the gemspec files attribute in `bundle gem` template and print a link to bundler.io guides when running `bundle gem` ([#6246](https://github.com/bundler/bundler/issues/6246), @nesaulov)
126
+ - Small copy tweaks & removed redundant phrasing in the bundler man page (@rubymorillo)
127
+ - Improve the documentation of the settings load order in Bundler (@rubymorillo)
128
+ - Added license info to main README (@rubymorillo)
129
+ - Document parameters and return value of Injector#inject (@tobias-grasse)
130
+
1
131
  ## 1.16.1 (2017-12-12)
2
132
 
3
133
  Bugfixes:
@@ -24,7 +24,7 @@ Bundler is most commonly used to manage your application's dependencies. For exa
24
24
 
25
25
  ```
26
26
  bundle init
27
- echo 'gem "rspec"' >> Gemfile
27
+ bundle add rspec
28
28
  bundle install
29
29
  bundle exec rspec
30
30
  ```
@@ -57,3 +57,7 @@ While some Bundler contributors are compensated by Ruby Together, the project ma
57
57
  ### Code of Conduct
58
58
 
59
59
  Everyone interacting in the Bundler project’s codebases, issue trackers, chat rooms, and mailing lists is expected to follow the [Bundler code of conduct](https://github.com/bundler/bundler/blob/master/CODE_OF_CONDUCT.md).
60
+
61
+ ### License
62
+
63
+ [MIT License](https://github.com/bundler/bundler/blob/master/LICENSE.md)
@@ -9,7 +9,8 @@ Gem::Specification.new do |s|
9
9
  s.version = Bundler::VERSION
10
10
  s.license = "MIT"
11
11
  s.authors = [
12
- "André Arko", "Samuel Giddins", "Chris Morris", "James Wen", "Tim Moore",
12
+ "André Arko", "Samuel Giddins", "Colby Swandale", "Hiroshi Shibata",
13
+ "David Rodríguez", "Grey Baker", "Stephanie Morillo", "Chris Morris", "James Wen", "Tim Moore",
13
14
  "André Medeiros", "Jessica Lynn Suttles", "Terence Lee", "Carl Lerche",
14
15
  "Yehuda Katz"
15
16
  ]
@@ -136,7 +136,7 @@ module Bundler
136
136
  end
137
137
  end
138
138
 
139
- def frozen?
139
+ def frozen_bundle?
140
140
  frozen = settings[:deployment]
141
141
  frozen ||= settings[:frozen] unless feature_flag.deployment_means_frozen?
142
142
  frozen
@@ -159,16 +159,18 @@ module Bundler
159
159
  def user_home
160
160
  @user_home ||= begin
161
161
  home = Bundler.rubygems.user_home
162
+ bundle_home = home ? File.join(home, ".bundle") : nil
162
163
 
163
164
  warning = if home.nil?
164
165
  "Your home directory is not set."
165
166
  elsif !File.directory?(home)
166
167
  "`#{home}` is not a directory."
167
- elsif !File.writable?(home)
168
+ elsif !File.writable?(home) && (!File.directory?(bundle_home) || !File.writable?(bundle_home))
168
169
  "`#{home}` is not writable."
169
170
  end
170
171
 
171
172
  if warning
173
+ Kernel.send(:require, "etc")
172
174
  user_home = tmp_home_path(Etc.getlogin, warning)
173
175
  Bundler.ui.warn "#{warning}\nBundler will use `#{user_home}' as your home directory temporarily.\n"
174
176
  user_home
@@ -189,7 +191,7 @@ module Bundler
189
191
  end
190
192
  tmp_home_path.join(login).tap(&:mkpath)
191
193
  end
192
- rescue => e
194
+ rescue RuntimeError => e
193
195
  raise e.exception("#{warning}\nBundler also failed to create a temporary home directory at `#{path}':\n#{e}")
194
196
  end
195
197
 
@@ -359,8 +361,8 @@ EOF
359
361
  @requires_sudo = settings.allow_sudo? && sudo_present && sudo_needed
360
362
  end
361
363
 
362
- def mkdir_p(path)
363
- if requires_sudo?
364
+ def mkdir_p(path, options = {})
365
+ if requires_sudo? && !options[:no_sudo]
364
366
  sudo "mkdir -p '#{path}'" unless File.exist?(path)
365
367
  else
366
368
  SharedHelpers.filesystem_access(path, :write) do |p|
@@ -407,12 +409,14 @@ EOF
407
409
  end
408
410
 
409
411
  def read_file(file)
410
- File.open(file, "rb", &:read)
412
+ SharedHelpers.filesystem_access(file, :read) do
413
+ File.open(file, "r:UTF-8", &:read)
414
+ end
411
415
  end
412
416
 
413
417
  def load_marshal(data)
414
418
  Marshal.load(data)
415
- rescue => e
419
+ rescue StandardError => e
416
420
  raise MarshalError, "#{e.class}: #{e.message}"
417
421
  end
418
422
 
@@ -427,7 +431,7 @@ EOF
427
431
 
428
432
  def load_gemspec_uncached(file, validate = false)
429
433
  path = Pathname.new(file)
430
- contents = path.read
434
+ contents = read_file(file)
431
435
  spec = if contents.start_with?("---") # YAML header
432
436
  eval_yaml_gemspec(path, contents)
433
437
  else