bundler 2.3.26 → 2.4.13

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 (209) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +228 -1
  3. data/README.md +3 -6
  4. data/bundler.gemspec +2 -2
  5. data/exe/bundle +1 -4
  6. data/lib/bundler/build_metadata.rb +2 -2
  7. data/lib/bundler/cli/add.rb +1 -1
  8. data/lib/bundler/cli/binstubs.rb +5 -1
  9. data/lib/bundler/cli/check.rb +1 -1
  10. data/lib/bundler/cli/common.rb +1 -0
  11. data/lib/bundler/cli/console.rb +2 -2
  12. data/lib/bundler/cli/doctor.rb +4 -6
  13. data/lib/bundler/cli/gem.rb +62 -40
  14. data/lib/bundler/cli/init.rb +2 -2
  15. data/lib/bundler/cli/install.rb +2 -3
  16. data/lib/bundler/cli/lock.rb +8 -5
  17. data/lib/bundler/cli/open.rb +6 -4
  18. data/lib/bundler/cli/outdated.rb +1 -3
  19. data/lib/bundler/cli/viz.rb +1 -1
  20. data/lib/bundler/cli.rb +45 -2
  21. data/lib/bundler/compact_index_client/cache.rb +1 -1
  22. data/lib/bundler/compact_index_client/updater.rb +40 -39
  23. data/lib/bundler/constants.rb +1 -1
  24. data/lib/bundler/current_ruby.rb +2 -0
  25. data/lib/bundler/definition.rb +99 -51
  26. data/lib/bundler/dependency.rb +13 -12
  27. data/lib/bundler/digest.rb +1 -1
  28. data/lib/bundler/dsl.rb +3 -3
  29. data/lib/bundler/endpoint_specification.rb +0 -4
  30. data/lib/bundler/env.rb +1 -1
  31. data/lib/bundler/environment_preserver.rb +3 -2
  32. data/lib/bundler/errors.rb +1 -11
  33. data/lib/bundler/fetcher/compact_index.rb +9 -11
  34. data/lib/bundler/fetcher/dependency.rb +2 -6
  35. data/lib/bundler/fetcher/downloader.rb +2 -5
  36. data/lib/bundler/fetcher.rb +4 -8
  37. data/lib/bundler/force_platform.rb +18 -0
  38. data/lib/bundler/friendly_errors.rb +0 -3
  39. data/lib/bundler/gem_version_promoter.rb +52 -86
  40. data/lib/bundler/graph.rb +3 -3
  41. data/lib/bundler/index.rb +7 -15
  42. data/lib/bundler/injector.rb +2 -2
  43. data/lib/bundler/inline.rb +8 -10
  44. data/lib/bundler/installer/parallel_installer.rb +3 -33
  45. data/lib/bundler/installer/standalone.rb +12 -8
  46. data/lib/bundler/installer.rb +9 -23
  47. data/lib/bundler/lazy_specification.rb +42 -42
  48. data/lib/bundler/lockfile_generator.rb +1 -1
  49. data/lib/bundler/lockfile_parser.rb +16 -16
  50. data/lib/bundler/man/bundle-add.1 +1 -1
  51. data/lib/bundler/man/bundle-binstubs.1 +1 -1
  52. data/lib/bundler/man/bundle-cache.1 +3 -3
  53. data/lib/bundler/man/bundle-cache.1.ronn +2 -2
  54. data/lib/bundler/man/bundle-check.1 +1 -1
  55. data/lib/bundler/man/bundle-clean.1 +1 -1
  56. data/lib/bundler/man/bundle-config.1 +2 -2
  57. data/lib/bundler/man/bundle-config.1.ronn +1 -1
  58. data/lib/bundler/man/bundle-console.1 +1 -1
  59. data/lib/bundler/man/bundle-doctor.1 +1 -1
  60. data/lib/bundler/man/bundle-exec.1 +5 -5
  61. data/lib/bundler/man/bundle-exec.1.ronn +5 -5
  62. data/lib/bundler/man/bundle-gem.1 +27 -37
  63. data/lib/bundler/man/bundle-gem.1.ronn +5 -5
  64. data/lib/bundler/man/bundle-help.1 +1 -1
  65. data/lib/bundler/man/bundle-info.1 +1 -1
  66. data/lib/bundler/man/bundle-init.1 +5 -1
  67. data/lib/bundler/man/bundle-init.1.ronn +2 -0
  68. data/lib/bundler/man/bundle-inject.1 +1 -1
  69. data/lib/bundler/man/bundle-install.1 +1 -30
  70. data/lib/bundler/man/bundle-install.1.ronn +0 -29
  71. data/lib/bundler/man/bundle-list.1 +1 -1
  72. data/lib/bundler/man/bundle-lock.1 +1 -1
  73. data/lib/bundler/man/bundle-open.1 +22 -2
  74. data/lib/bundler/man/bundle-open.1.ronn +9 -1
  75. data/lib/bundler/man/bundle-outdated.1 +1 -1
  76. data/lib/bundler/man/bundle-platform.1 +2 -2
  77. data/lib/bundler/man/bundle-platform.1.ronn +1 -1
  78. data/lib/bundler/man/bundle-plugin.1 +1 -1
  79. data/lib/bundler/man/bundle-pristine.1 +1 -1
  80. data/lib/bundler/man/bundle-remove.1 +1 -1
  81. data/lib/bundler/man/bundle-show.1 +1 -1
  82. data/lib/bundler/man/bundle-update.1 +1 -1
  83. data/lib/bundler/man/bundle-version.1 +1 -1
  84. data/lib/bundler/man/bundle-viz.1 +1 -1
  85. data/lib/bundler/man/bundle.1 +1 -1
  86. data/lib/bundler/man/gemfile.5 +1 -1
  87. data/lib/bundler/mirror.rb +5 -7
  88. data/lib/bundler/plugin/index.rb +4 -4
  89. data/lib/bundler/plugin/installer/rubygems.rb +0 -4
  90. data/lib/bundler/plugin/installer.rb +5 -2
  91. data/lib/bundler/plugin.rb +1 -1
  92. data/lib/bundler/remote_specification.rb +2 -6
  93. data/lib/bundler/resolver/base.rb +72 -15
  94. data/lib/bundler/resolver/candidate.rb +94 -0
  95. data/lib/bundler/resolver/incompatibility.rb +15 -0
  96. data/lib/bundler/resolver/package.rb +72 -0
  97. data/lib/bundler/resolver/root.rb +25 -0
  98. data/lib/bundler/resolver/spec_group.rb +26 -36
  99. data/lib/bundler/resolver.rb +311 -278
  100. data/lib/bundler/ruby_version.rb +1 -1
  101. data/lib/bundler/rubygems_ext.rb +16 -9
  102. data/lib/bundler/rubygems_gem_installer.rb +4 -2
  103. data/lib/bundler/rubygems_integration.rb +10 -14
  104. data/lib/bundler/runtime.rb +1 -5
  105. data/lib/bundler/safe_marshal.rb +31 -0
  106. data/lib/bundler/settings.rb +1 -7
  107. data/lib/bundler/setup.rb +4 -1
  108. data/lib/bundler/shared_helpers.rb +2 -1
  109. data/lib/bundler/source/git/git_proxy.rb +214 -69
  110. data/lib/bundler/source/git.rb +17 -18
  111. data/lib/bundler/source/metadata.rb +0 -1
  112. data/lib/bundler/source/path/installer.rb +1 -22
  113. data/lib/bundler/source/path.rb +6 -6
  114. data/lib/bundler/source/rubygems.rb +19 -77
  115. data/lib/bundler/source_list.rb +8 -2
  116. data/lib/bundler/spec_set.rb +22 -14
  117. data/lib/bundler/templates/Executable +1 -1
  118. data/lib/bundler/templates/Executable.bundler +5 -10
  119. data/lib/bundler/templates/Executable.standalone +2 -0
  120. data/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
  121. data/lib/bundler/templates/newgem/Gemfile.tt +3 -0
  122. data/lib/bundler/templates/newgem/README.md.tt +6 -4
  123. data/lib/bundler/templates/newgem/Rakefile.tt +12 -1
  124. data/lib/bundler/templates/newgem/bin/console.tt +0 -4
  125. data/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
  126. data/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
  127. data/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
  128. data/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
  129. data/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
  130. data/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
  131. data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +10 -0
  132. data/lib/bundler/templates/newgem/gitignore.tt +3 -0
  133. data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +8 -0
  134. data/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -2
  135. data/lib/bundler/ui/shell.rb +35 -12
  136. data/lib/bundler/ui/silent.rb +21 -5
  137. data/lib/bundler/uri_normalizer.rb +23 -0
  138. data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
  139. data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
  140. data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
  141. data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -408
  142. data/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
  143. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  144. data/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
  145. data/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
  146. data/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
  147. data/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
  148. data/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
  149. data/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
  150. data/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
  151. data/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
  152. data/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
  153. data/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
  154. data/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
  155. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
  156. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
  157. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
  158. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +243 -0
  159. data/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
  160. data/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
  161. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
  162. data/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
  163. data/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
  164. data/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
  165. data/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
  166. data/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
  167. data/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
  168. data/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
  169. data/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
  170. data/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
  171. data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +13 -7
  172. data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +10 -5
  173. data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
  174. data/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
  175. data/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
  176. data/lib/bundler/vendor/uri/lib/uri.rb +3 -2
  177. data/lib/bundler/vendored_persistent.rb +1 -33
  178. data/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
  179. data/lib/bundler/version.rb +5 -1
  180. data/lib/bundler/worker.rb +5 -7
  181. data/lib/bundler.rb +17 -69
  182. metadata +35 -33
  183. data/lib/bundler/templates/gems.rb +0 -5
  184. data/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
  185. data/lib/bundler/templates/newgem/travis.yml.tt +0 -6
  186. data/lib/bundler/vendor/molinillo/LICENSE +0 -9
  187. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
  188. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
  189. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
  190. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
  191. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
  192. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
  193. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
  194. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
  195. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
  196. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
  197. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
  198. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
  199. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -149
  200. data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
  201. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
  202. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
  203. data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
  204. data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
  205. data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
  206. data/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
  207. data/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
  208. data/lib/bundler/vendored_molinillo.rb +0 -4
  209. data/lib/bundler/version_ranges.rb +0 -122
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1ecbb775b34e7c64a72d01af5cce8bacbd1a470404845444fda36a2f0e37a1aa
4
- data.tar.gz: 40fbd944cb4094b105e01672961a790730055bd8563632dbbe4ae3738b9d531f
3
+ metadata.gz: 2f398778d3a6ed24418f66d662473b293f06ac7cf5a8eae216e2bb801fc8511b
4
+ data.tar.gz: 16e23bba1bf2d55e0b96c2a36a0407bfe4a2c4d8d858fa717fe491903e2e5e02
5
5
  SHA512:
6
- metadata.gz: 1a2e39b4aa05271b042c17f35ac0376306d509221d91c13480eb40da97fda0fbe811fd59951a550a455232428b41856f04a63ea474b4dc88553eb6ae3b5e149e
7
- data.tar.gz: 3ccf4c9906a118084bdcd4e8a124dab5f96310ac8ac09bea0ed7de8be6019c1fae3fc58e2b421406e0d2d9de19518869e0beaf1faeae7f8148388724521d3a65
6
+ metadata.gz: d70332cfa48c7c7cb48cbb0eb0003b6b943f29bdb6be3d795f466027aa429069879a67d2a46ca82df7f7e22723f486875b65782c8cce656d10993e1671549ddb
7
+ data.tar.gz: a3989657de73245ac7dae1ab62de41f02a2ef3bdcac5f3f66ec74c08e99e64d351b5e2bba483fd0a6bdb26921c0c08694ff1e5454090f4b5e9ec0eee94ef837c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,230 @@
1
+ # 2.4.13 (May 9, 2023)
2
+
3
+ ## Bug fixes:
4
+
5
+ - Fix unexpected fallbacks to full index by adding FalseClass and Time to the SafeMarshal list [#6655](https://github.com/rubygems/rubygems/pull/6655)
6
+
7
+ ## Documentation:
8
+
9
+ - Fix broken hyperlinks in bundle cache documentation [#6606](https://github.com/rubygems/rubygems/pull/6606)
10
+
11
+ # 2.4.12 (April 11, 2023)
12
+
13
+ ## Enhancements:
14
+
15
+ - Remove reference to `pry` gem from generated `bin/console` file [#6515](https://github.com/rubygems/rubygems/pull/6515)
16
+
17
+ # 2.4.11 (April 10, 2023)
18
+
19
+ ## Security:
20
+
21
+ - Use URI-0.12.1 (safe against CVE-2023-28755 ReDoS vulnerability) [#6558](https://github.com/rubygems/rubygems/pull/6558)
22
+
23
+ ## Enhancements:
24
+
25
+ - Remove one fallback to full indexes on big gemfiles [#6578](https://github.com/rubygems/rubygems/pull/6578)
26
+ - Generate native gems with `-fvisibility=hidden` [#6541](https://github.com/rubygems/rubygems/pull/6541)
27
+
28
+ ## Bug fixes:
29
+
30
+ - Fix resolver hangs when dealing with an incomplete lockfile [#6552](https://github.com/rubygems/rubygems/pull/6552)
31
+ - Fix prereleases not being considered by gem version promoter when there's no lockfile [#6537](https://github.com/rubygems/rubygems/pull/6537)
32
+
33
+ # 2.4.10 (March 27, 2023)
34
+
35
+ ## Bug fixes:
36
+
37
+ - Fix some unnecessary top level dependency downgrades [#6535](https://github.com/rubygems/rubygems/pull/6535)
38
+ - Fix incorrect ruby platform removal from lockfile when adding Gemfile dependencies [#6540](https://github.com/rubygems/rubygems/pull/6540)
39
+ - Fix installing plugins in frozen mode [#6543](https://github.com/rubygems/rubygems/pull/6543)
40
+ - Restore "enumerability" of `SpecSet` [#6532](https://github.com/rubygems/rubygems/pull/6532)
41
+
42
+ # 2.4.9 (March 20, 2023)
43
+
44
+ ## Security:
45
+
46
+ - Don't recommend `--full-index` on errors [#6493](https://github.com/rubygems/rubygems/pull/6493)
47
+
48
+ ## Enhancements:
49
+
50
+ - Fix duplicated specs in some error messages [#6475](https://github.com/rubygems/rubygems/pull/6475)
51
+ - When running `bundle lock --update <name>`, checkout locked revision of unrelated git sources directly [#6459](https://github.com/rubygems/rubygems/pull/6459)
52
+ - Avoid expiring git sources when unnecessary [#6458](https://github.com/rubygems/rubygems/pull/6458)
53
+ - Use `RbSys::ExtensionTask` when creating new rust gems [#6352](https://github.com/rubygems/rubygems/pull/6352)
54
+ - Don't ignore pre-releases when there's only one candidate [#6441](https://github.com/rubygems/rubygems/pull/6441)
55
+
56
+ ## Bug fixes:
57
+
58
+ - Fix incorrect removal of ruby platform when auto-healing corrupted lockfiles [#6495](https://github.com/rubygems/rubygems/pull/6495)
59
+ - Don't consider platform specific candidates when `force_ruby_platform` set [#6442](https://github.com/rubygems/rubygems/pull/6442)
60
+ - Better deal with circular dependencies [#6330](https://github.com/rubygems/rubygems/pull/6330)
61
+
62
+ ## Documentation:
63
+
64
+ - Add debugging docs [#6387](https://github.com/rubygems/rubygems/pull/6387)
65
+ - Document our current release policy [#6450](https://github.com/rubygems/rubygems/pull/6450)
66
+
67
+ # 2.4.8 (March 8, 2023)
68
+
69
+ ## Security:
70
+
71
+ - Safe load all marshaled data [#6384](https://github.com/rubygems/rubygems/pull/6384)
72
+
73
+ ## Enhancements:
74
+
75
+ - Better suggestion when `bundler/setup` fails due to missing gems and Gemfile is not the default [#6428](https://github.com/rubygems/rubygems/pull/6428)
76
+ - Simplify the gem package file filter in the gemspec template [#6344](https://github.com/rubygems/rubygems/pull/6344)
77
+ - Auto-heal corrupted `Gemfile.lock` with no specs [#6423](https://github.com/rubygems/rubygems/pull/6423)
78
+ - Auto-heal on corrupted lockfile with missing deps [#6400](https://github.com/rubygems/rubygems/pull/6400)
79
+ - Give a better message when Gemfile branch does not exist [#6383](https://github.com/rubygems/rubygems/pull/6383)
80
+
81
+ ## Bug fixes:
82
+
83
+ - Respect --no-install option for git: sources [#6088](https://github.com/rubygems/rubygems/pull/6088)
84
+ - Fix `gems.rb` lockfile for bundler version lookup in template [#6413](https://github.com/rubygems/rubygems/pull/6413)
85
+
86
+ ## Documentation:
87
+
88
+ - Switch supporting explanations to all Ruby Central [#6419](https://github.com/rubygems/rubygems/pull/6419)
89
+
90
+ # 2.4.7 (February 15, 2023)
91
+
92
+ ## Enhancements:
93
+
94
+ - Add `--gemfile` flag to `bundle init` to configure gemfile name to generate [#6046](https://github.com/rubygems/rubygems/pull/6046)
95
+ - Improve solve failure explanations by using better wording [#6366](https://github.com/rubygems/rubygems/pull/6366)
96
+ - Restore better error message when locked ref does not exist [#6356](https://github.com/rubygems/rubygems/pull/6356)
97
+ - Avoid crashing when installing from a corrupted lockfile [#6355](https://github.com/rubygems/rubygems/pull/6355)
98
+ - Improve wording of unmet dependencies warning [#6357](https://github.com/rubygems/rubygems/pull/6357)
99
+ - Add Ruby 3.2 and 3.3 platforms to Gemfile DSL [#6346](https://github.com/rubygems/rubygems/pull/6346)
100
+
101
+ ## Bug fixes:
102
+
103
+ - Fix crash in pub grub involving empty ranges [#6365](https://github.com/rubygems/rubygems/pull/6365)
104
+ - Make gemspec file generated by `bundle gem` properly exclude itself from packaged gem [#6339](https://github.com/rubygems/rubygems/pull/6339)
105
+ - Preserve relative path sources in standalone setup [#6327](https://github.com/rubygems/rubygems/pull/6327)
106
+
107
+ # 2.4.6 (January 31, 2023)
108
+
109
+ ## Enhancements:
110
+
111
+ - Don't warn on `bundle binstubs --standalone --all` [#6312](https://github.com/rubygems/rubygems/pull/6312)
112
+
113
+ ## Bug fixes:
114
+
115
+ - Don't undo require decorations made by other gems [#6308](https://github.com/rubygems/rubygems/pull/6308)
116
+ - Fix `bundler/inline` not properly installing gems with extensions when used more than once [#6306](https://github.com/rubygems/rubygems/pull/6306)
117
+ - Fix `bundler/inline` not skipping installation when gems already there, when used more than once [#6305](https://github.com/rubygems/rubygems/pull/6305)
118
+
119
+ # 2.4.5 (January 21, 2023)
120
+
121
+ ## Bug fixes:
122
+
123
+ - Fix `bundler/inline` not resolving properly if gems not preinstalled [#6282](https://github.com/rubygems/rubygems/pull/6282)
124
+ - Fix packages for external platforms being introduced in lockfile when Bundler retries resolution [#6285](https://github.com/rubygems/rubygems/pull/6285)
125
+
126
+ ## Documentation:
127
+
128
+ - Update bundle-exec man page to not use deprecated `Bundler.with_clean_env` [#6284](https://github.com/rubygems/rubygems/pull/6284)
129
+
130
+ # 2.4.4 (January 16, 2023)
131
+
132
+ ## Bug fixes:
133
+
134
+ - Fix platform specific gems removed from the lockfile [#6266](https://github.com/rubygems/rubygems/pull/6266)
135
+ - Properly handle incompatibilities on platform specific gems [#6270](https://github.com/rubygems/rubygems/pull/6270)
136
+ - Optimistically exclude prereleases from initial resolution [#6246](https://github.com/rubygems/rubygems/pull/6246)
137
+ - Fix another case of not properly falling back to ruby variant when materializing [#6261](https://github.com/rubygems/rubygems/pull/6261)
138
+ - Skip setting `BUNDLER_SETUP` on Ruby 2.6 [#6252](https://github.com/rubygems/rubygems/pull/6252)
139
+ - Let resolver deal with legacy gems with equivalent version and different dependencies [#6219](https://github.com/rubygems/rubygems/pull/6219)
140
+
141
+ # 2.4.3 (January 6, 2023)
142
+
143
+ ## Enhancements:
144
+
145
+ - Enhance `bundle open` command to allow opening subdir/file of gem [#6146](https://github.com/rubygems/rubygems/pull/6146)
146
+
147
+ ## Bug fixes:
148
+
149
+ - Fix pointing GitHub sources to PRs [#6241](https://github.com/rubygems/rubygems/pull/6241)
150
+ - Fix version ranges incorrectly handling platforms [#6240](https://github.com/rubygems/rubygems/pull/6240)
151
+ - Cleanup unnecessary gems when removing lockfile platforms [#6234](https://github.com/rubygems/rubygems/pull/6234)
152
+ - When auto-removing RUBY platform don't add specific platform if not needed [#6233](https://github.com/rubygems/rubygems/pull/6233)
153
+ - Fallback to selecting installable candidates if possible when materializing specs [#6225](https://github.com/rubygems/rubygems/pull/6225)
154
+
155
+ ## Documentation:
156
+
157
+ - Fix several typos [#6224](https://github.com/rubygems/rubygems/pull/6224)
158
+
159
+ # 2.4.2 (January 1, 2023)
160
+
161
+ ## Performance:
162
+
163
+ - Speed up resolution by properly merging incompatibility ranges [#6215](https://github.com/rubygems/rubygems/pull/6215)
164
+
165
+ ## Documentation:
166
+
167
+ - Remove stray word in `bundle config` man page [#6220](https://github.com/rubygems/rubygems/pull/6220)
168
+
169
+ # 2.4.1 (December 24, 2022)
170
+
171
+ ## Enhancements:
172
+
173
+ - Allow Bundler to run on old RubyGems + Ruby 2.7 without warnings [#6187](https://github.com/rubygems/rubygems/pull/6187)
174
+
175
+ ## Bug fixes:
176
+
177
+ - Fix dependencies scoped to other platforms making resolver fail [#6189](https://github.com/rubygems/rubygems/pull/6189)
178
+ - Restore annotated git tag support [#6186](https://github.com/rubygems/rubygems/pull/6186)
179
+
180
+ # 2.4.0 (December 24, 2022)
181
+
182
+ ## Security:
183
+
184
+ - In README generated by `bundle gem`, do not fill rubygems.org install commands with the gem name automatically [#6093](https://github.com/rubygems/rubygems/pull/6093)
185
+ - Use safe Marshal deserialization for dependency API response [#6141](https://github.com/rubygems/rubygems/pull/6141)
186
+
187
+ ## Breaking changes:
188
+
189
+ - Remove Travis CI from gem skeleton [#6150](https://github.com/rubygems/rubygems/pull/6150)
190
+ - Drop support for Ruby 2.3, 2.4, 2.5 and RubyGems 2.5, 2.6, 2.7 [#6107](https://github.com/rubygems/rubygems/pull/6107)
191
+ - Completely remove "auto-sudo" feature [#5888](https://github.com/rubygems/rubygems/pull/5888)
192
+
193
+ ## Deprecations:
194
+
195
+ - Turn `--ext` option of `bundle gem` into string. Deprecate usage without explicit value [#6144](https://github.com/rubygems/rubygems/pull/6144)
196
+
197
+ ## Features:
198
+
199
+ - Add `--ext=rust` support to `bundle gem` for creating simple gems with Rust extensions [#6149](https://github.com/rubygems/rubygems/pull/6149)
200
+ - Migrate our resolver engine to PubGrub [#5960](https://github.com/rubygems/rubygems/pull/5960)
201
+
202
+ ## Performance:
203
+
204
+ - Make cloning git repos faster [#4475](https://github.com/rubygems/rubygems/pull/4475)
205
+
206
+ ## Enhancements:
207
+
208
+ - Add `bundle lock --update --bundler` [#6134](https://github.com/rubygems/rubygems/pull/6134)
209
+ - Support for pre flag in `bundle update`/`bundle lock` [#5258](https://github.com/rubygems/rubygems/pull/5258)
210
+ - Improve error message when changing Gemfile to a mistyped git ref [#6130](https://github.com/rubygems/rubygems/pull/6130)
211
+ - Remove special handling of some `LoadError` and `NoMethodError` [#6115](https://github.com/rubygems/rubygems/pull/6115)
212
+
213
+ ## Bug fixes:
214
+
215
+ - Don't unlock dependencies of a gemspec when its version changes [#6184](https://github.com/rubygems/rubygems/pull/6184)
216
+ - Fix platform specific version for libv8-node and other allowlisted gems not being chosen in Truffleruby [#6169](https://github.com/rubygems/rubygems/pull/6169)
217
+ - Fix `bundle outdated` with both `--groups` and `--parseable` flags [#6148](https://github.com/rubygems/rubygems/pull/6148)
218
+ - Auto-heal lockfile when it's missing specs [#6132](https://github.com/rubygems/rubygems/pull/6132)
219
+ - Fix unintentional downgrades when gemspec DSL is used [#6131](https://github.com/rubygems/rubygems/pull/6131)
220
+ - Fix display of previous gem version when previously downloaded already [#6110](https://github.com/rubygems/rubygems/pull/6110)
221
+ - Fix hang when a lockfile gem does not resolve on the current platform [#6070](https://github.com/rubygems/rubygems/pull/6070)
222
+
223
+ ## Documentation:
224
+
225
+ - Improve Bundler setup docs for development [#6154](https://github.com/rubygems/rubygems/pull/6154)
226
+ - Fx link in bundle-platform man page [#6071](https://github.com/rubygems/rubygems/pull/6071)
227
+
1
228
  # 2.3.26 (November 16, 2022)
2
229
 
3
230
  ## Enhancements:
@@ -1449,7 +1676,7 @@ Changes
1449
1676
 
1450
1677
  - avoid new RubyGems warning about unsafe YAML loading (to keep output consistent) (@segiddins)
1451
1678
  - load digest subclasses in a thread-safe manner (@segiddins, @colby-swandale)
1452
- - avoid unusued variable warnings under ruby 2.5 (@amatsuda)
1679
+ - avoid unused variable warnings under ruby 2.5 (@amatsuda)
1453
1680
  - fix printing the same message twice in verbose mode ([#6028](https://github.com/rubygems/bundler/issues/6028), @akhramov)
1454
1681
  - allow `SignalException`s to bubble up to the interpreter during `bundle exec` ([#6090](https://github.com/rubygems/bundler/issues/6090), @dekellum)
1455
1682
  - avoid activating stdlib digest under Ruby 2.5 (@segiddins)
data/README.md CHANGED
@@ -38,20 +38,17 @@ Still stuck? Try [filing an issue](https://github.com/rubygems/rubygems/issues/n
38
38
 
39
39
  To see what has changed in recent versions of Bundler, see the [CHANGELOG](CHANGELOG.md).
40
40
 
41
- To get in touch with the Bundler core team and other Bundler users, please see [getting help](doc/contributing/GETTING_HELP.md).
41
+ To get in touch with the Bundler core team and other Bundler users, please join [the Bundler slack](https://slack.bundler.io).
42
42
 
43
43
  ### Contributing
44
44
 
45
45
  If you'd like to contribute to Bundler, that's awesome, and we <3 you. We've put together [the Bundler contributor guide](https://github.com/rubygems/rubygems/blob/master/bundler/doc/contributing/README.md) with all of the information you need to get started.
46
46
 
47
- If you'd like to request a substantial change to Bundler or its documentation, refer to the [Bundler RFC process](https://github.com/bundler/rfcs) for more information.
48
-
49
- While some Bundler contributors are compensated by Ruby Together, the project maintainers make decisions independent of Ruby Together. As a project, we welcome contributions regardless of the author's affiliation with Ruby Together.
47
+ If you'd like to request a substantial change to Bundler or its documentation, refer to the [Bundler RFC process](https://github.com/rubygems/rfcs) for more information.
50
48
 
51
49
  ### Supporting
52
50
 
53
- <a href="https://rubytogether.org/"><img src="https://rubytogether.org/images/rubies.svg" width="150"></a><br>
54
- <a href="https://rubytogether.org/">Ruby Together</a> pays some Bundler maintainers for their ongoing work. As a grassroots initiative committed to supporting the critical Ruby infrastructure you rely on, Ruby Together is funded entirely by the Ruby community. Contribute today <a href="https://rubytogether.org/developers">as an individual</a> or (better yet) <a href="https://rubytogether.org/companies">as a company</a> to ensure that Bundler, RubyGems, and other shared tooling is around for years to come.
51
+ RubyGems is managed by [Ruby Central](https://rubycentral.org), a non-profit organization that supports the Ruby community through projects like this one, as well as [RubyConf](https://rubyconf.org), [RailsConf](https://railsconf.org), and [RubyGems.org](https://rubygems.org). You can support Ruby Central by attending or [sponsoring](sponsors@rubycentral.org) a conference, or by [joining as a supporting member](https://rubycentral.org/#/portal/signup).
55
52
 
56
53
  ### Code of Conduct
57
54
 
data/bundler.gemspec CHANGED
@@ -29,8 +29,8 @@ Gem::Specification.new do |s|
29
29
  "source_code_uri" => "https://github.com/rubygems/rubygems/tree/master/bundler",
30
30
  }
31
31
 
32
- s.required_ruby_version = ">= 2.3.0"
33
- s.required_rubygems_version = ">= 2.5.2"
32
+ s.required_ruby_version = ">= 2.6.0"
33
+ s.required_rubygems_version = ">= 3.0.1"
34
34
 
35
35
  s.files = Dir.glob("lib/bundler{.rb,/**/*}", File::FNM_DOTMATCH).reject {|f| File.directory?(f) }
36
36
 
data/exe/bundle CHANGED
@@ -15,10 +15,7 @@ else
15
15
  require "bundler"
16
16
  end
17
17
 
18
- # Workaround for non-activated bundler spec due to missing https://github.com/rubygems/rubygems/commit/4e306d7bcdee924b8d80ca9db6125aa59ee4e5a3
19
- gem "bundler", Bundler::VERSION if Gem.rubygems_version < Gem::Version.new("2.6.2")
20
-
21
- if Gem.rubygems_version < Gem::Version.new("3.2.3") && Gem.ruby_version < Gem::Version.new("2.6.a") && !ENV["BUNDLER_NO_OLD_RUBYGEMS_WARNING"]
18
+ if Gem.rubygems_version < Gem::Version.new("3.2.3") && Gem.ruby_version < Gem::Version.new("2.7.a") && !ENV["BUNDLER_NO_OLD_RUBYGEMS_WARNING"]
22
19
  Bundler.ui.warn \
23
20
  "Your RubyGems version (#{Gem::VERSION}) has a bug that prevents " \
24
21
  "`required_ruby_version` from working for Bundler. Any scripts that use " \
@@ -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 = "2022-11-17".freeze
8
- @git_commit_sha = "23ec5b8501".freeze
7
+ @built_at = "2023-05-10".freeze
8
+ @git_commit_sha = "26eb456c6c".freeze
9
9
  @release = true
10
10
  # end ivars
11
11
 
@@ -40,7 +40,7 @@ module Bundler
40
40
  raise InvalidOption, "Please specify gems to add." if gems.empty?
41
41
 
42
42
  version.to_a.each do |v|
43
- raise InvalidOption, "Invalid gem requirement pattern '#{v}'" unless Gem::Requirement::PATTERN =~ v.to_s
43
+ raise InvalidOption, "Invalid gem requirement pattern '#{v}'" unless Gem::Requirement::PATTERN.match?(v.to_s)
44
44
  end
45
45
  end
46
46
  end
@@ -40,7 +40,11 @@ module Bundler
40
40
  end
41
41
 
42
42
  if options[:standalone]
43
- next Bundler.ui.warn("Sorry, Bundler can only be run via RubyGems.") if gem_name == "bundler"
43
+ if gem_name == "bundler"
44
+ Bundler.ui.warn("Sorry, Bundler can only be run via RubyGems.") unless options[:all]
45
+ next
46
+ end
47
+
44
48
  Bundler.settings.temporary(:path => (Bundler.settings[:path] || Bundler.root)) do
45
49
  installer.generate_standalone_bundler_executable_stubs(spec, installer_opts)
46
50
  end
@@ -17,7 +17,7 @@ module Bundler
17
17
  begin
18
18
  definition.resolve_only_locally!
19
19
  not_installed = definition.missing_specs
20
- rescue GemNotFound, VersionConflict
20
+ rescue GemNotFound, SolveFailure
21
21
  Bundler.ui.error "Bundler can't satisfy your Gemfile's dependencies."
22
22
  Bundler.ui.warn "Install missing gems with `bundle install`."
23
23
  exit 1
@@ -111,6 +111,7 @@ module Bundler
111
111
  definition.gem_version_promoter.tap do |gvp|
112
112
  gvp.level = patch_level.first || :major
113
113
  gvp.strict = options[:strict] || options["filter-strict"]
114
+ gvp.pre = options[:pre]
114
115
  end
115
116
  end
116
117
 
@@ -30,9 +30,9 @@ module Bundler
30
30
 
31
31
  def get_constant(name)
32
32
  const_name = {
33
- "pry" => :Pry,
33
+ "pry" => :Pry,
34
34
  "ripl" => :Ripl,
35
- "irb" => :IRB,
35
+ "irb" => :IRB,
36
36
  }[name]
37
37
  Object.const_get(const_name)
38
38
  rescue NameError
@@ -73,12 +73,10 @@ module Bundler
73
73
  definition.specs.each do |spec|
74
74
  bundles_for_gem(spec).each do |bundle|
75
75
  bad_paths = dylibs(bundle).select do |f|
76
- begin
77
- Fiddle.dlopen(f)
78
- false
79
- rescue Fiddle::DLError
80
- true
81
- end
76
+ Fiddle.dlopen(f)
77
+ false
78
+ rescue Fiddle::DLError
79
+ true
82
80
  end
83
81
  if bad_paths.any?
84
82
  broken_links[spec] ||= []
@@ -15,7 +15,7 @@ module Bundler
15
15
  "test-unit" => "3.0",
16
16
  }.freeze
17
17
 
18
- attr_reader :options, :gem_name, :thor, :name, :target
18
+ attr_reader :options, :gem_name, :thor, :name, :target, :extension
19
19
 
20
20
  def initialize(options, gem_name, thor)
21
21
  @options = options
@@ -28,7 +28,11 @@ module Bundler
28
28
  @name = @gem_name
29
29
  @target = SharedHelpers.pwd.join(gem_name)
30
30
 
31
- validate_ext_name if options[:ext]
31
+ @extension = options[:ext]
32
+
33
+ validate_ext_name if @extension
34
+ validate_rust_builder_rubygems_version if @extension == "rust"
35
+ travis_removal_info
32
36
  end
33
37
 
34
38
  def run
@@ -55,21 +59,22 @@ module Bundler
55
59
  end
56
60
 
57
61
  config = {
58
- :name => name,
62
+ :name => name,
59
63
  :underscored_name => underscored_name,
60
- :namespaced_path => namespaced_path,
61
- :makefile_path => "#{underscored_name}/#{underscored_name}",
62
- :constant_name => constant_name,
63
- :constant_array => constant_array,
64
- :author => git_author_name.empty? ? "TODO: Write your name" : git_author_name,
65
- :email => git_user_email.empty? ? "TODO: Write your email address" : git_user_email,
66
- :test => options[:test],
67
- :ext => options[:ext],
68
- :exe => options[:exe],
69
- :bundler_version => bundler_dependency_version,
70
- :git => use_git,
71
- :github_username => github_username.empty? ? "[USERNAME]" : github_username,
64
+ :namespaced_path => namespaced_path,
65
+ :makefile_path => "#{underscored_name}/#{underscored_name}",
66
+ :constant_name => constant_name,
67
+ :constant_array => constant_array,
68
+ :author => git_author_name.empty? ? "TODO: Write your name" : git_author_name,
69
+ :email => git_user_email.empty? ? "TODO: Write your email address" : git_user_email,
70
+ :test => options[:test],
71
+ :ext => extension,
72
+ :exe => options[:exe],
73
+ :bundler_version => bundler_dependency_version,
74
+ :git => use_git,
75
+ :github_username => github_username.empty? ? "[USERNAME]" : github_username,
72
76
  :required_ruby_version => required_ruby_version,
77
+ :rust_builder_required_rubygems_version => rust_builder_required_rubygems_version,
73
78
  :minitest_constant_name => minitest_constant_name,
74
79
  }
75
80
  ensure_safe_gem_name(name, constant_array)
@@ -132,8 +137,6 @@ module Bundler
132
137
  case config[:ci]
133
138
  when "github"
134
139
  templates.merge!("github/workflows/main.yml.tt" => ".github/workflows/main.yml")
135
- when "travis"
136
- templates.merge!("travis.yml.tt" => ".travis.yml")
137
140
  when "gitlab"
138
141
  templates.merge!("gitlab-ci.yml.tt" => ".gitlab-ci.yml")
139
142
  when "circle"
@@ -188,14 +191,23 @@ module Bundler
188
191
 
189
192
  templates.merge!("exe/newgem.tt" => "exe/#{name}") if config[:exe]
190
193
 
191
- if options[:ext]
194
+ if extension == "c"
192
195
  templates.merge!(
193
- "ext/newgem/extconf.rb.tt" => "ext/#{name}/extconf.rb",
196
+ "ext/newgem/extconf-c.rb.tt" => "ext/#{name}/extconf.rb",
194
197
  "ext/newgem/newgem.h.tt" => "ext/#{name}/#{underscored_name}.h",
195
198
  "ext/newgem/newgem.c.tt" => "ext/#{name}/#{underscored_name}.c"
196
199
  )
197
200
  end
198
201
 
202
+ if extension == "rust"
203
+ templates.merge!(
204
+ "Cargo.toml.tt" => "Cargo.toml",
205
+ "ext/newgem/Cargo.toml.tt" => "ext/#{name}/Cargo.toml",
206
+ "ext/newgem/extconf-rust.rb.tt" => "ext/#{name}/extconf.rb",
207
+ "ext/newgem/src/lib.rs.tt" => "ext/#{name}/src/lib.rs",
208
+ )
209
+ end
210
+
199
211
  if target.exist? && !target.directory?
200
212
  Bundler.ui.error "Couldn't create a new gem named `#{gem_name}` because there's an existing file named `#{gem_name}`."
201
213
  exit Bundler::BundlerError.all_errors[Bundler::GenericSystemCallError]
@@ -270,7 +282,7 @@ module Bundler
270
282
  Bundler.ui.info hint_text("test")
271
283
 
272
284
  result = Bundler.ui.ask "Enter a test framework. rspec/minitest/test-unit/(none):"
273
- if result =~ /rspec|minitest|test-unit/
285
+ if /rspec|minitest|test-unit/.match?(result)
274
286
  test_framework = result
275
287
  else
276
288
  test_framework = false
@@ -306,12 +318,11 @@ module Bundler
306
318
  "* CircleCI: https://circleci.com/\n" \
307
319
  "* GitHub Actions: https://github.com/features/actions\n" \
308
320
  "* GitLab CI: https://docs.gitlab.com/ee/ci/\n" \
309
- "* Travis CI: https://travis-ci.org/\n" \
310
321
  "\n"
311
322
  Bundler.ui.info hint_text("ci")
312
323
 
313
- result = Bundler.ui.ask "Enter a CI service. github/travis/gitlab/circle/(none):"
314
- if result =~ /github|travis|gitlab|circle/
324
+ result = Bundler.ui.ask "Enter a CI service. github/gitlab/circle/(none):"
325
+ if /github|gitlab|circle/.match?(result)
315
326
  ci_template = result
316
327
  else
317
328
  ci_template = false
@@ -342,7 +353,7 @@ module Bundler
342
353
  Bundler.ui.info hint_text("linter")
343
354
 
344
355
  result = Bundler.ui.ask "Enter a linter. rubocop/standard/(none):"
345
- if result =~ /rubocop|standard/
356
+ if /rubocop|standard/.match?(result)
346
357
  linter_template = result
347
358
  else
348
359
  linter_template = false
@@ -389,7 +400,7 @@ module Bundler
389
400
  end
390
401
 
391
402
  def ensure_safe_gem_name(name, constant_array)
392
- if name =~ /^\d/
403
+ if /^\d/.match?(name)
393
404
  Bundler.ui.error "Invalid gem name #{name} Please give a name which does not start with numbers."
394
405
  exit 1
395
406
  end
@@ -415,28 +426,39 @@ module Bundler
415
426
  thor.run(%(#{editor} "#{file}"))
416
427
  end
417
428
 
429
+ def rust_builder_required_rubygems_version
430
+ "3.3.11"
431
+ end
432
+
418
433
  def required_ruby_version
419
- if Gem.ruby_version < Gem::Version.new("2.4.a") then "2.3.0"
420
- elsif Gem.ruby_version < Gem::Version.new("2.5.a") then "2.4.0"
421
- elsif Gem.ruby_version < Gem::Version.new("2.6.a") then "2.5.0"
422
- else
423
- "2.6.0"
424
- end
434
+ "2.6.0"
425
435
  end
426
436
 
427
437
  def rubocop_version
428
- if Gem.ruby_version < Gem::Version.new("2.4.a") then "0.81.0"
429
- elsif Gem.ruby_version < Gem::Version.new("2.5.a") then "1.12"
430
- else
431
- "1.21"
432
- end
438
+ "1.21"
433
439
  end
434
440
 
435
441
  def standard_version
436
- if Gem.ruby_version < Gem::Version.new("2.4.a") then "0.2.5"
437
- elsif Gem.ruby_version < Gem::Version.new("2.5.a") then "1.0"
438
- else
439
- "1.3"
442
+ "1.3"
443
+ end
444
+
445
+ # TODO: remove at next minor release
446
+ def travis_removal_info
447
+ if options[:ci] == "travis"
448
+ Bundler.ui.error "Support for Travis CI was removed from gem skeleton generator."
449
+ exit 1
450
+ end
451
+
452
+ if Bundler.settings["gem.ci"] == "travis"
453
+ Bundler.ui.error "Support for Travis CI was removed from gem skeleton generator, but it is present in bundle config. Please configure another provider using `bundle config set gem.ci SERVICE` (where SERVICE is one of github/gitlab/circle) or unset configuration using `bundle config unset gem.ci`."
454
+ exit 1
455
+ end
456
+ end
457
+
458
+ def validate_rust_builder_rubygems_version
459
+ if Gem::Version.new(rust_builder_required_rubygems_version) > Gem.rubygems_version
460
+ Bundler.ui.error "Your RubyGems version (#{Gem.rubygems_version}) is too old to build Rust extension. Please update your RubyGems using `gem update --system` or any other way and try again."
461
+ exit 1
440
462
  end
441
463
  end
442
464
  end
@@ -32,7 +32,7 @@ module Bundler
32
32
  file << spec.to_gemfile
33
33
  end
34
34
  else
35
- File.open(File.expand_path("../templates/#{gemfile}", __dir__), "r") do |template|
35
+ File.open(File.expand_path("../templates/Gemfile", __dir__), "r") do |template|
36
36
  File.open(gemfile, "wb") do |destination|
37
37
  IO.copy_stream(template, destination)
38
38
  end
@@ -45,7 +45,7 @@ module Bundler
45
45
  private
46
46
 
47
47
  def gemfile
48
- @gemfile ||= Bundler.preferred_gemfile_name
48
+ @gemfile ||= options[:gemfile] || Bundler.preferred_gemfile_name
49
49
  end
50
50
  end
51
51
  end
@@ -94,9 +94,8 @@ module Bundler
94
94
 
95
95
  def warn_if_root
96
96
  return if Bundler.settings[:silence_root_warning] || Gem.win_platform? || !Process.uid.zero?
97
- Bundler.ui.warn "Don't run Bundler as root. Bundler can ask for sudo " \
98
- "if it is needed, and installing your bundle as root will break this " \
99
- "application for all non-root users on this machine.", :wrap => true
97
+ Bundler.ui.warn "Don't run Bundler as root. Installing your bundle as root " \
98
+ "will break this application for all non-root users on this machine.", :wrap => true
100
99
  end
101
100
 
102
101
  def dependencies_count_for(definition)
@@ -15,19 +15,22 @@ module Bundler
15
15
  end
16
16
 
17
17
  print = options[:print]
18
- ui = Bundler.ui
19
- Bundler.ui = UI::Silent.new if print
18
+ previous_ui_level = Bundler.ui.level
19
+ Bundler.ui.level = "silent" if print
20
20
 
21
21
  Bundler::Fetcher.disable_endpoint = options["full-index"]
22
22
 
23
23
  update = options[:update]
24
24
  conservative = options[:conservative]
25
+ bundler = options[:bundler]
25
26
 
26
27
  if update.is_a?(Array) # unlocking specific gems
27
28
  Bundler::CLI::Common.ensure_all_gems_in_lockfile!(update)
28
29
  update = { :gems => update, :conservative => conservative }
29
- elsif update
30
- update = { :conservative => conservative } if conservative
30
+ elsif update && conservative
31
+ update = { :conservative => conservative }
32
+ elsif update && bundler
33
+ update = { :bundler => bundler }
31
34
  end
32
35
  definition = Bundler.definition(update)
33
36
 
@@ -61,7 +64,7 @@ module Bundler
61
64
  definition.lock(file)
62
65
  end
63
66
 
64
- Bundler.ui = ui
67
+ Bundler.ui.level = previous_ui_level
65
68
  end
66
69
  end
67
70
  end