bundler 2.1.4 → 2.2.17

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bundler might be problematic. Click here for more details.

Files changed (225) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1774 -1430
  3. data/README.md +6 -8
  4. data/bundler.gemspec +4 -4
  5. data/exe/bundle +3 -0
  6. data/lib/bundler.rb +33 -9
  7. data/lib/bundler/build_metadata.rb +3 -11
  8. data/lib/bundler/cli.rb +59 -23
  9. data/lib/bundler/cli/add.rb +1 -1
  10. data/lib/bundler/cli/binstubs.rb +6 -2
  11. data/lib/bundler/cli/cache.rb +2 -7
  12. data/lib/bundler/cli/clean.rb +1 -1
  13. data/lib/bundler/cli/common.rb +29 -2
  14. data/lib/bundler/cli/console.rb +1 -1
  15. data/lib/bundler/cli/doctor.rb +1 -1
  16. data/lib/bundler/cli/exec.rb +4 -4
  17. data/lib/bundler/cli/fund.rb +36 -0
  18. data/lib/bundler/cli/gem.rb +129 -28
  19. data/lib/bundler/cli/info.rb +15 -4
  20. data/lib/bundler/cli/init.rb +2 -2
  21. data/lib/bundler/cli/inject.rb +1 -1
  22. data/lib/bundler/cli/install.rb +13 -11
  23. data/lib/bundler/cli/issue.rb +2 -2
  24. data/lib/bundler/cli/list.rb +12 -10
  25. data/lib/bundler/cli/outdated.rb +88 -67
  26. data/lib/bundler/cli/plugin.rb +10 -0
  27. data/lib/bundler/cli/pristine.rb +5 -0
  28. data/lib/bundler/cli/show.rb +1 -1
  29. data/lib/bundler/cli/update.rb +3 -1
  30. data/lib/bundler/compact_index_client.rb +1 -1
  31. data/lib/bundler/compact_index_client/cache.rb +6 -14
  32. data/lib/bundler/compact_index_client/gem_parser.rb +28 -0
  33. data/lib/bundler/compact_index_client/updater.rb +13 -17
  34. data/lib/bundler/current_ruby.rb +1 -0
  35. data/lib/bundler/definition.rb +121 -131
  36. data/lib/bundler/dep_proxy.rb +16 -9
  37. data/lib/bundler/dependency.rb +3 -10
  38. data/lib/bundler/dsl.rb +40 -33
  39. data/lib/bundler/endpoint_specification.rb +1 -1
  40. data/lib/bundler/env.rb +1 -1
  41. data/lib/bundler/environment_preserver.rb +26 -2
  42. data/lib/bundler/errors.rb +1 -0
  43. data/lib/bundler/feature_flag.rb +0 -5
  44. data/lib/bundler/fetcher.rb +5 -4
  45. data/lib/bundler/fetcher/base.rb +1 -1
  46. data/lib/bundler/fetcher/compact_index.rb +1 -1
  47. data/lib/bundler/fetcher/downloader.rb +9 -5
  48. data/lib/bundler/fetcher/index.rb +3 -4
  49. data/lib/bundler/friendly_errors.rb +22 -13
  50. data/lib/bundler/gem_helper.rb +51 -18
  51. data/lib/bundler/gem_helpers.rb +36 -25
  52. data/lib/bundler/gem_version_promoter.rb +4 -4
  53. data/lib/bundler/graph.rb +1 -1
  54. data/lib/bundler/index.rb +12 -7
  55. data/lib/bundler/injector.rb +23 -5
  56. data/lib/bundler/inline.rb +3 -2
  57. data/lib/bundler/installer.rb +37 -49
  58. data/lib/bundler/installer/gem_installer.rb +3 -3
  59. data/lib/bundler/installer/parallel_installer.rb +46 -25
  60. data/lib/bundler/installer/standalone.rb +17 -2
  61. data/lib/bundler/lazy_specification.rb +45 -25
  62. data/lib/bundler/lockfile_generator.rb +1 -1
  63. data/lib/bundler/lockfile_parser.rb +4 -14
  64. data/lib/bundler/man/.document +1 -0
  65. data/{man → lib/bundler/man}/bundle-add.1 +1 -1
  66. data/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
  67. data/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
  68. data/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
  69. data/{man → lib/bundler/man}/bundle-cache.1 +1 -1
  70. data/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
  71. data/{man → lib/bundler/man}/bundle-check.1 +1 -1
  72. data/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
  73. data/{man → lib/bundler/man}/bundle-clean.1 +1 -1
  74. data/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
  75. data/{man → lib/bundler/man}/bundle-config.1 +42 -34
  76. data/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +51 -43
  77. data/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
  78. data/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
  79. data/{man → lib/bundler/man}/bundle-exec.1 +1 -1
  80. data/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
  81. data/{man → lib/bundler/man}/bundle-gem.1 +25 -3
  82. data/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
  83. data/{man → lib/bundler/man}/bundle-info.1 +1 -1
  84. data/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
  85. data/{man → lib/bundler/man}/bundle-init.1 +1 -1
  86. data/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
  87. data/{man → lib/bundler/man}/bundle-inject.1 +1 -1
  88. data/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
  89. data/{man → lib/bundler/man}/bundle-install.1 +30 -3
  90. data/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
  91. data/{man → lib/bundler/man}/bundle-list.1 +7 -7
  92. data/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
  93. data/{man → lib/bundler/man}/bundle-lock.1 +1 -1
  94. data/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
  95. data/{man → lib/bundler/man}/bundle-open.1 +1 -1
  96. data/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
  97. data/{man → lib/bundler/man}/bundle-outdated.1 +1 -1
  98. data/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
  99. data/{man → lib/bundler/man}/bundle-platform.1 +1 -1
  100. data/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
  101. data/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
  102. data/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
  103. data/{man → lib/bundler/man}/bundle-remove.1 +1 -1
  104. data/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
  105. data/{man → lib/bundler/man}/bundle-show.1 +1 -1
  106. data/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
  107. data/{man → lib/bundler/man}/bundle-update.1 +1 -1
  108. data/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
  109. data/{man → lib/bundler/man}/bundle-viz.1 +1 -1
  110. data/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
  111. data/{man → lib/bundler/man}/bundle.1 +1 -1
  112. data/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
  113. data/{man → lib/bundler/man}/gemfile.5 +4 -4
  114. data/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
  115. data/{man → lib/bundler/man}/index.txt +0 -0
  116. data/lib/bundler/mirror.rb +2 -2
  117. data/lib/bundler/plugin.rb +33 -7
  118. data/lib/bundler/plugin/api/source.rb +8 -1
  119. data/lib/bundler/plugin/dsl.rb +1 -1
  120. data/lib/bundler/plugin/index.rb +10 -1
  121. data/lib/bundler/plugin/installer.rb +9 -11
  122. data/lib/bundler/plugin/installer/rubygems.rb +1 -1
  123. data/lib/bundler/plugin/source_list.rb +5 -1
  124. data/lib/bundler/psyched_yaml.rb +0 -15
  125. data/lib/bundler/remote_specification.rb +5 -2
  126. data/lib/bundler/resolver.rb +133 -77
  127. data/lib/bundler/resolver/spec_group.rb +75 -48
  128. data/lib/bundler/retry.rb +2 -2
  129. data/lib/bundler/ruby_version.rb +1 -1
  130. data/lib/bundler/rubygems_ext.rb +69 -9
  131. data/lib/bundler/rubygems_gem_installer.rb +50 -9
  132. data/lib/bundler/rubygems_integration.rb +25 -60
  133. data/lib/bundler/runtime.rb +4 -14
  134. data/lib/bundler/settings.rb +107 -54
  135. data/lib/bundler/shared_helpers.rb +3 -3
  136. data/lib/bundler/similarity_detector.rb +1 -1
  137. data/lib/bundler/source.rb +7 -1
  138. data/lib/bundler/source/git.rb +24 -22
  139. data/lib/bundler/source/git/git_proxy.rb +82 -80
  140. data/lib/bundler/source/metadata.rb +0 -4
  141. data/lib/bundler/source/path.rb +10 -4
  142. data/lib/bundler/source/path/installer.rb +10 -10
  143. data/lib/bundler/source/rubygems.rb +45 -24
  144. data/lib/bundler/source/rubygems/remote.rb +1 -1
  145. data/lib/bundler/source_list.rb +31 -26
  146. data/lib/bundler/spec_set.rb +29 -17
  147. data/lib/bundler/stub_specification.rb +25 -7
  148. data/lib/bundler/templates/Gemfile +1 -1
  149. data/lib/bundler/templates/gems.rb +1 -1
  150. data/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
  151. data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
  152. data/lib/bundler/templates/newgem/Gemfile.tt +9 -1
  153. data/lib/bundler/templates/newgem/README.md.tt +6 -5
  154. data/lib/bundler/templates/newgem/Rakefile.tt +19 -5
  155. data/lib/bundler/templates/newgem/bin/console.tt +1 -0
  156. data/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
  157. data/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
  158. data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +16 -0
  159. data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
  160. data/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
  161. data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
  162. data/lib/bundler/templates/newgem/newgem.gemspec.tt +15 -7
  163. data/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
  164. data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
  165. data/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
  166. data/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
  167. data/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
  168. data/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
  169. data/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
  170. data/lib/bundler/ui/shell.rb +5 -5
  171. data/lib/bundler/uri_credentials_filter.rb +3 -1
  172. data/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
  173. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
  174. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -2
  175. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
  176. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
  177. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +3 -3
  178. data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  179. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +12 -1
  180. data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +49 -47
  181. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +82 -189
  182. data/lib/bundler/vendor/thor/lib/thor.rb +5 -13
  183. data/lib/bundler/vendor/thor/lib/thor/actions.rb +1 -1
  184. data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
  185. data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +4 -2
  186. data/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
  187. data/lib/bundler/vendor/thor/lib/thor/error.rb +1 -1
  188. data/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +5 -1
  189. data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +9 -8
  190. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +5 -2
  191. data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
  192. data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  193. data/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
  194. data/lib/bundler/vendored_persistent.rb +0 -7
  195. data/lib/bundler/vendored_tmpdir.rb +4 -0
  196. data/lib/bundler/version.rb +1 -1
  197. data/lib/bundler/worker.rb +1 -1
  198. data/lib/bundler/yaml_serializer.rb +1 -1
  199. metadata +71 -85
  200. data/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
  201. data/man/bundle-add.1.txt +0 -58
  202. data/man/bundle-binstubs.1.txt +0 -48
  203. data/man/bundle-cache.1.txt +0 -78
  204. data/man/bundle-check.1.txt +0 -33
  205. data/man/bundle-clean.1.txt +0 -26
  206. data/man/bundle-config.1.txt +0 -528
  207. data/man/bundle-doctor.1.txt +0 -44
  208. data/man/bundle-exec.1.txt +0 -178
  209. data/man/bundle-gem.1.txt +0 -91
  210. data/man/bundle-info.1.txt +0 -21
  211. data/man/bundle-init.1.txt +0 -34
  212. data/man/bundle-inject.1.txt +0 -32
  213. data/man/bundle-install.1.txt +0 -401
  214. data/man/bundle-list.1.txt +0 -43
  215. data/man/bundle-lock.1.txt +0 -93
  216. data/man/bundle-open.1.txt +0 -29
  217. data/man/bundle-outdated.1.txt +0 -131
  218. data/man/bundle-platform.1.txt +0 -57
  219. data/man/bundle-pristine.1.txt +0 -44
  220. data/man/bundle-remove.1.txt +0 -34
  221. data/man/bundle-show.1.txt +0 -27
  222. data/man/bundle-update.1.txt +0 -390
  223. data/man/bundle-viz.1.txt +0 -39
  224. data/man/bundle.1.txt +0 -116
  225. data/man/gemfile.5.txt +0 -649
@@ -25,7 +25,7 @@ module Bundler
25
25
  out
26
26
  end
27
27
 
28
- private
28
+ private
29
29
 
30
30
  def add_sources
31
31
  definition.send(:sources).lock_sources.each_with_index do |source, idx|
@@ -64,8 +64,6 @@ module Bundler
64
64
  @state = nil
65
65
  @specs = {}
66
66
 
67
- @rubygems_aggregate = Source::Rubygems.new
68
-
69
67
  if lockfile.match(/<<<<<<<|=======|>>>>>>>|\|\|\|\|\|\|\|/)
70
68
  raise LockfileError, "Your #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)} contains merge conflicts.\n" \
71
69
  "Run `git checkout HEAD -- #{Bundler.default_lockfile.relative_path_from(SharedHelpers.pwd)}` first to get a clean lock."
@@ -89,7 +87,6 @@ module Bundler
89
87
  send("parse_#{@state}", line)
90
88
  end
91
89
  end
92
- @sources << @rubygems_aggregate unless Bundler.feature_flag.disable_multisource?
93
90
  @specs = @specs.values.sort_by(&:identifier)
94
91
  warn_for_outdated_bundler_version
95
92
  rescue ArgumentError => e
@@ -109,7 +106,7 @@ module Bundler
109
106
  "bundler:#{bundler_version}#{prerelease_text}`.\n"
110
107
  end
111
108
 
112
- private
109
+ private
113
110
 
114
111
  TYPES = {
115
112
  GIT => Bundler::Source::Git,
@@ -134,16 +131,9 @@ module Bundler
134
131
  @sources << @current_source
135
132
  end
136
133
  when GEM
137
- if Bundler.feature_flag.disable_multisource?
138
- @opts["remotes"] = @opts.delete("remote")
139
- @current_source = TYPES[@type].from_lock(@opts)
140
- @sources << @current_source
141
- else
142
- Array(@opts["remote"]).each do |url|
143
- @rubygems_aggregate.add_remote(url)
144
- end
145
- @current_source = @rubygems_aggregate
146
- end
134
+ @opts["remotes"] = Array(@opts.delete("remote")).reverse
135
+ @current_source = TYPES[@type].from_lock(@opts)
136
+ @sources << @current_source
147
137
  when PLUGIN
148
138
  @current_source = Plugin.source_from_lock(@opts)
149
139
  @sources << @current_source
@@ -0,0 +1 @@
1
+ # Ignore all files in this directory
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-ADD" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-ADD" "1" "April 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-add\fR \- Add gem to the Gemfile and run bundle install
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-BINSTUBS" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-BINSTUBS" "1" "April 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-binstubs\fR \- Install the binstubs of the listed gems
@@ -36,5 +36,7 @@ Makes binstubs that can work without depending on Rubygems or Bundler at runtime
36
36
  \fB\-\-shebang\fR
37
37
  Specify a different shebang executable name than the default (default \'ruby\')
38
38
  .
39
- .SH "BUNDLE INSTALL \-\-BINSTUBS"
40
- To create binstubs for all the gems in the bundle you can use the \fB\-\-binstubs\fR flag in bundle install(1) \fIbundle\-install\.1\.html\fR\.
39
+ .TP
40
+ \fB\-\-all\fR
41
+ Create binstubs for all gems in the bundle\.
42
+
@@ -37,7 +37,5 @@ Calling binstubs with [GEM [GEM]] will create binstubs for all given gems.
37
37
  * `--shebang`:
38
38
  Specify a different shebang executable name than the default (default 'ruby')
39
39
 
40
- ## BUNDLE INSTALL --BINSTUBS
41
-
42
- To create binstubs for all the gems in the bundle you can use the `--binstubs`
43
- flag in [bundle install(1)](bundle-install.1.html).
40
+ * `--all`:
41
+ Create binstubs for all gems in the bundle.
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CACHE" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-CACHE" "1" "April 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-cache\fR \- Package your needed \fB\.gem\fR files into your application
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CHECK" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-CHECK" "1" "April 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-check\fR \- Verifies if dependencies are satisfied by installed gems
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CLEAN" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-CLEAN" "1" "April 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-clean\fR \- Cleans up unused gems in your bundler directory
@@ -1,7 +1,7 @@
1
1
  .\" generated with Ronn/v0.7.3
2
2
  .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
3
  .
4
- .TH "BUNDLE\-CONFIG" "1" "January 2020" "" ""
4
+ .TH "BUNDLE\-CONFIG" "1" "April 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-config\fR \- Set bundler configuration options
@@ -16,7 +16,7 @@ This command allows you to interact with Bundler\'s configuration system\.
16
16
  Bundler loads configuration settings in this order:
17
17
  .
18
18
  .IP "1." 4
19
- Local config (\fBapp/\.bundle/config\fR)
19
+ Local config (\fB<project_root>/\.bundle/config\fR or \fB$BUNDLE_APP_CONFIG/config\fR)
20
20
  .
21
21
  .IP "2." 4
22
22
  Environmental variables (\fBENV\fR)
@@ -42,7 +42,7 @@ Executing \fBbundle config set <name> <value>\fR will set that configuration to
42
42
  Executing \fBbundle config set \-\-global <name> <value>\fR works the same as above\.
43
43
  .
44
44
  .P
45
- Executing \fBbundle config set \-\-local <name> <value>\fR will set that configuration to the local application\. The configuration will be stored in \fBapp/\.bundle/config\fR\.
45
+ Executing \fBbundle config set \-\-local <name> <value>\fR will set that configuration in the directory for the local application\. The configuration will be stored in \fB<project_root>/\.bundle/config\fR\. If \fBBUNDLE_APP_CONFIG\fR is set, the configuration will be stored in \fB$BUNDLE_APP_CONFIG/config\fR\.
46
46
  .
47
47
  .P
48
48
  Executing \fBbundle config unset <name>\fR will delete the configuration in both local and global sources\.
@@ -57,13 +57,13 @@ Executing \fBbundle config unset \-\-local <name> <value>\fR will delete the con
57
57
  Executing bundle with the \fBBUNDLE_IGNORE_CONFIG\fR environment variable set will cause it to ignore all configuration\.
58
58
  .
59
59
  .P
60
- Executing \fBbundle config set disable_multisource true\fR upgrades the warning about the Gemfile containing multiple primary sources to an error\. Executing \fBbundle config unset disable_multisource\fR downgrades this error to a warning\.
60
+ Executing \fBbundle config set \-\-local disable_multisource true\fR upgrades the warning about the Gemfile containing multiple primary sources to an error\. Executing \fBbundle config unset disable_multisource\fR downgrades this error to a warning\.
61
61
  .
62
62
  .SH "REMEMBERING OPTIONS"
63
63
  Flags passed to \fBbundle install\fR or the Bundler runtime, such as \fB\-\-path foo\fR or \fB\-\-without production\fR, are remembered between commands and saved to your local application\'s configuration (normally, \fB\./\.bundle/config\fR)\.
64
64
  .
65
65
  .P
66
- However, this will be changed in bundler 3, so it\'s better not to rely on this behavior\. If these options must be remembered, it\'s better to set them using \fBbundle config\fR (e\.g\., \fBbundle config set path foo\fR)\.
66
+ However, this will be changed in bundler 3, so it\'s better not to rely on this behavior\. If these options must be remembered, it\'s better to set them using \fBbundle config\fR (e\.g\., \fBbundle config set \-\-local path foo\fR)\.
67
67
  .
68
68
  .P
69
69
  The options that can be configured are:
@@ -111,7 +111,7 @@ Since the specific location of that executable can change from machine to machin
111
111
  .
112
112
  .nf
113
113
 
114
- bundle config set build\.mysql \-\-with\-mysql\-config=/usr/local/mysql/bin/mysql_config
114
+ bundle config set \-\-global build\.mysql \-\-with\-mysql\-config=/usr/local/mysql/bin/mysql_config
115
115
  .
116
116
  .fi
117
117
  .
@@ -136,9 +136,6 @@ Any periods in the configuration keys must be replaced with two underscores when
136
136
  The following is a list of all configuration keys and their purpose\. You can learn more about their operation in bundle install(1) \fIbundle\-install\.1\.html\fR\.
137
137
  .
138
138
  .IP "\(bu" 4
139
- \fBallow_bundler_dependency_conflicts\fR (\fBBUNDLE_ALLOW_BUNDLER_DEPENDENCY_CONFLICTS\fR): Allow resolving to specifications that have dependencies on \fBbundler\fR that are incompatible with the running Bundler version\.
140
- .
141
- .IP "\(bu" 4
142
139
  \fBallow_deployment_source_credential_changes\fR (\fBBUNDLE_ALLOW_DEPLOYMENT_SOURCE_CREDENTIAL_CHANGES\fR): When in deployment mode, allow changing the credentials to a gem\'s source\. Ex: \fBhttps://some\.host\.com/gems/path/\fR \-> \fBhttps://user_name:password@some\.host\.com/gems/path\fR
143
140
  .
144
141
  .IP "\(bu" 4
@@ -154,7 +151,7 @@ The following is a list of all configuration keys and their purpose\. You can le
154
151
  \fBbin\fR (\fBBUNDLE_BIN\fR): Install executables from gems in the bundle to the specified directory\. Defaults to \fBfalse\fR\.
155
152
  .
156
153
  .IP "\(bu" 4
157
- \fBcache_all\fR (\fBBUNDLE_CACHE_ALL\fR): Cache all gems, including path and git gems\.
154
+ \fBcache_all\fR (\fBBUNDLE_CACHE_ALL\fR): Cache all gems, including path and git gems\. This needs to be explicitly configured on bundler 1 and bundler 2, but will be the default on bundler 3\.
158
155
  .
159
156
  .IP "\(bu" 4
160
157
  \fBcache_all_platforms\fR (\fBBUNDLE_CACHE_ALL_PLATFORMS\fR): Cache gems for all platforms\.
@@ -184,10 +181,10 @@ The following is a list of all configuration keys and their purpose\. You can le
184
181
  \fBdisable_local_branch_check\fR (\fBBUNDLE_DISABLE_LOCAL_BRANCH_CHECK\fR): Allow Bundler to use a local git override without a branch specified in the Gemfile\.
185
182
  .
186
183
  .IP "\(bu" 4
187
- \fBdisable_multisource\fR (\fBBUNDLE_DISABLE_MULTISOURCE\fR): When set, Gemfiles containing multiple sources will produce errors instead of warnings\. Use \fBbundle config unset disable_multisource\fR to unset\.
184
+ \fBdisable_local_revision_check\fR (\fBBUNDLE_DISABLE_LOCAL_REVISION_CHECK\fR): Allow Bundler to use a local git override without checking if the revision present in the lockfile is present in the repository\.
188
185
  .
189
186
  .IP "\(bu" 4
190
- \fBdisable_platform_warnings\fR (\fBBUNDLE_DISABLE_PLATFORM_WARNINGS\fR): Disable warnings during bundle install when a dependency is unused on the current platform\.
187
+ \fBdisable_multisource\fR (\fBBUNDLE_DISABLE_MULTISOURCE\fR): When set, Gemfiles containing multiple sources will produce errors instead of warnings\. Use \fBbundle config unset disable_multisource\fR to unset\.
191
188
  .
192
189
  .IP "\(bu" 4
193
190
  \fBdisable_shared_gems\fR (\fBBUNDLE_DISABLE_SHARED_GEMS\fR): Stop Bundler from accessing gems installed to RubyGems\' normal location\.
@@ -202,6 +199,9 @@ The following is a list of all configuration keys and their purpose\. You can le
202
199
  \fBfrozen\fR (\fBBUNDLE_FROZEN\fR): Disallow changes to the \fBGemfile\fR\. When the \fBGemfile\fR is changed and the lockfile has not been updated, running Bundler commands will be blocked\. Defaults to \fBtrue\fR when \fB\-\-deployment\fR is used\.
203
200
  .
204
201
  .IP "\(bu" 4
202
+ \fBgem\.github_username\fR (\fBBUNDLE_GEM__GITHUB_USERNAME\fR): Sets a GitHub username or organization to be used in \fBREADME\fR file when you create a new gem via \fBbundle gem\fR command\. It can be overridden by passing an explicit \fB\-\-github\-username\fR flag to \fBbundle gem\fR\.
203
+ .
204
+ .IP "\(bu" 4
205
205
  \fBgem\.push_key\fR (\fBBUNDLE_GEM__PUSH_KEY\fR): Sets the \fB\-\-key\fR parameter for \fBgem push\fR when using the \fBrake release\fR command with a private gemstash server\.
206
206
  .
207
207
  .IP "\(bu" 4
@@ -214,10 +214,10 @@ The following is a list of all configuration keys and their purpose\. You can le
214
214
  \fBignore_messages\fR (\fBBUNDLE_IGNORE_MESSAGES\fR): When set, no post install messages will be printed\. To silence a single gem, use dot notation like \fBignore_messages\.httparty true\fR\.
215
215
  .
216
216
  .IP "\(bu" 4
217
- \fBinit_gems_rb\fR (\fBBUNDLE_INIT_GEMS_RB\fR) Generate a \fBgems\.rb\fR instead of a \fBGemfile\fR when running \fBbundle init\fR\.
217
+ \fBinit_gems_rb\fR (\fBBUNDLE_INIT_GEMS_RB\fR): Generate a \fBgems\.rb\fR instead of a \fBGemfile\fR when running \fBbundle init\fR\.
218
218
  .
219
219
  .IP "\(bu" 4
220
- \fBjobs\fR (\fBBUNDLE_JOBS\fR): The number of gems Bundler can install in parallel\. Defaults to 1\.
220
+ \fBjobs\fR (\fBBUNDLE_JOBS\fR): The number of gems Bundler can install in parallel\. Defaults to 1 on Windows, and to the the number of processors on other platforms\.
221
221
  .
222
222
  .IP "\(bu" 4
223
223
  \fBno_install\fR (\fBBUNDLE_NO_INSTALL\fR): Whether \fBbundle package\fR should skip installing gems\.
@@ -226,9 +226,6 @@ The following is a list of all configuration keys and their purpose\. You can le
226
226
  \fBno_prune\fR (\fBBUNDLE_NO_PRUNE\fR): Whether Bundler should leave outdated gems unpruned when caching\.
227
227
  .
228
228
  .IP "\(bu" 4
229
- \fBonly_update_to_newer_versions\fR (\fBBUNDLE_ONLY_UPDATE_TO_NEWER_VERSIONS\fR): During \fBbundle update\fR, only resolve to newer versions of the gems in the lockfile\.
230
- .
231
- .IP "\(bu" 4
232
229
  \fBpath\fR (\fBBUNDLE_PATH\fR): The location on disk where all gems in your bundle will be located regardless of \fB$GEM_HOME\fR or \fB$GEM_PATH\fR values\. Bundle gems not found in this location will be installed by \fBbundle install\fR\. Defaults to \fBGem\.dir\fR\. When \-\-deployment is used, defaults to vendor/bundle\.
233
230
  .
234
231
  .IP "\(bu" 4
@@ -244,7 +241,7 @@ The following is a list of all configuration keys and their purpose\. You can le
244
241
  \fBprefer_patch\fR (BUNDLE_PREFER_PATCH): Prefer updating only to next patch version during updates\. Makes \fBbundle update\fR calls equivalent to \fBbundler update \-\-patch\fR\.
245
242
  .
246
243
  .IP "\(bu" 4
247
- \fBprint_only_version_number\fR (\fBBUNDLE_PRINT_ONLY_VERSION_NUMBER\fR) Print only version number from \fBbundler \-\-version\fR\.
244
+ \fBprint_only_version_number\fR (\fBBUNDLE_PRINT_ONLY_VERSION_NUMBER\fR): Print only version number from \fBbundler \-\-version\fR\.
248
245
  .
249
246
  .IP "\(bu" 4
250
247
  \fBredirect\fR (\fBBUNDLE_REDIRECT\fR): The number of redirects allowed for network requests\. Defaults to \fB5\fR\.
@@ -265,12 +262,6 @@ The following is a list of all configuration keys and their purpose\. You can le
265
262
  \fBsilence_root_warning\fR (\fBBUNDLE_SILENCE_ROOT_WARNING\fR): Silence the warning Bundler prints when installing gems as root\.
266
263
  .
267
264
  .IP "\(bu" 4
268
- \fBskip_default_git_sources\fR (\fBBUNDLE_SKIP_DEFAULT_GIT_SOURCES\fR): Whether Bundler should skip adding default git source shortcuts to the Gemfile DSL\.
269
- .
270
- .IP "\(bu" 4
271
- \fBspecific_platform\fR (\fBBUNDLE_SPECIFIC_PLATFORM\fR): Allow bundler to resolve for the specific running platform and store it in the lockfile, instead of only using a generic platform\. A specific platform is the exact platform triple reported by \fBGem::Platform\.local\fR, such as \fBx86_64\-darwin\-16\fR or \fBuniversal\-java\-1\.8\fR\. On the other hand, generic platforms are those such as \fBruby\fR, \fBmswin\fR, or \fBjava\fR\. In this example, \fBx86_64\-darwin\-16\fR would map to \fBruby\fR and \fBuniversal\-java\-1\.8\fR to \fBjava\fR\.
272
- .
273
- .IP "\(bu" 4
274
265
  \fBssl_ca_cert\fR (\fBBUNDLE_SSL_CA_CERT\fR): Path to a designated CA certificate file or folder containing multiple certificates for trusted CAs in PEM format\.
275
266
  .
276
267
  .IP "\(bu" 4
@@ -292,7 +283,7 @@ The following is a list of all configuration keys and their purpose\. You can le
292
283
  \fBunlock_source_unlocks_spec\fR (\fBBUNDLE_UNLOCK_SOURCE_UNLOCKS_SPEC\fR): Whether running \fBbundle update \-\-source NAME\fR unlocks a gem with the given name\. Defaults to \fBtrue\fR\.
293
284
  .
294
285
  .IP "\(bu" 4
295
- \fBupdate_requires_all_flag\fR (\fBBUNDLE_UPDATE_REQUIRES_ALL_FLAG\fR) Require passing \fB\-\-all\fR to \fBbundle update\fR when everything should be updated, and disallow passing no options to \fBbundle update\fR\.
286
+ \fBupdate_requires_all_flag\fR (\fBBUNDLE_UPDATE_REQUIRES_ALL_FLAG\fR): Require passing \fB\-\-all\fR to \fBbundle update\fR when everything should be updated, and disallow passing no options to \fBbundle update\fR\.
296
287
  .
297
288
  .IP "\(bu" 4
298
289
  \fBuser_agent\fR (\fBBUNDLE_USER_AGENT\fR): The custom user agent fragment Bundler includes in API requests\.
@@ -318,7 +309,7 @@ Bundler also allows you to work against a git repository locally instead of usin
318
309
  .
319
310
  .nf
320
311
 
321
- bundle config set local\.GEM_NAME /path/to/local/git/repository
312
+ bundle config set \-\-local local\.GEM_NAME /path/to/local/git/repository
322
313
  .
323
314
  .fi
324
315
  .
@@ -331,7 +322,7 @@ For example, in order to use a local Rack repository, a developer could call:
331
322
  .
332
323
  .nf
333
324
 
334
- bundle config set local\.rack ~/Work/git/rack
325
+ bundle config set \-\-local local\.rack ~/Work/git/rack
335
326
  .
336
327
  .fi
337
328
  .
@@ -353,7 +344,7 @@ Bundler supports overriding gem sources with mirrors\. This allows you to config
353
344
  .
354
345
  .nf
355
346
 
356
- bundle config set mirror\.SOURCE_URL MIRROR_URL
347
+ bundle config set \-\-global mirror\.SOURCE_URL MIRROR_URL
357
348
  .
358
349
  .fi
359
350
  .
@@ -366,7 +357,7 @@ For example, to use a mirror of rubygems\.org hosted at rubygems\-mirror\.org:
366
357
  .
367
358
  .nf
368
359
 
369
- bundle config set mirror\.http://rubygems\.org http://rubygems\-mirror\.org
360
+ bundle config set \-\-global mirror\.http://rubygems\.org http://rubygems\-mirror\.org
370
361
  .
371
362
  .fi
372
363
  .
@@ -379,7 +370,7 @@ Each mirror also provides a fallback timeout setting\. If the mirror does not re
379
370
  .
380
371
  .nf
381
372
 
382
- bundle config set mirror\.SOURCE_URL\.fallback_timeout TIMEOUT
373
+ bundle config set \-\-global mirror\.SOURCE_URL\.fallback_timeout TIMEOUT
383
374
  .
384
375
  .fi
385
376
  .
@@ -392,7 +383,7 @@ For example, to fall back to rubygems\.org after 3 seconds:
392
383
  .
393
384
  .nf
394
385
 
395
- bundle config set mirror\.https://rubygems\.org\.fallback_timeout 3
386
+ bundle config set \-\-global mirror\.https://rubygems\.org\.fallback_timeout 3
396
387
  .
397
388
  .fi
398
389
  .
@@ -408,7 +399,7 @@ Bundler allows you to configure credentials for any gem source, which allows you
408
399
  .
409
400
  .nf
410
401
 
411
- bundle config set SOURCE_HOSTNAME USERNAME:PASSWORD
402
+ bundle config set \-\-global SOURCE_HOSTNAME USERNAME:PASSWORD
412
403
  .
413
404
  .fi
414
405
  .
@@ -421,7 +412,7 @@ For example, to save the credentials of user \fBclaudette\fR for the gem source
421
412
  .
422
413
  .nf
423
414
 
424
- bundle config set gems\.longerous\.com claudette:s00pers3krit
415
+ bundle config set \-\-global gems\.longerous\.com claudette:s00pers3krit
425
416
  .
426
417
  .fi
427
418
  .
@@ -447,7 +438,7 @@ For gems with a git source with HTTP(S) URL you can specify credentials like so:
447
438
  .
448
439
  .nf
449
440
 
450
- bundle config set https://github\.com/bundler/bundler\.git username:password
441
+ bundle config set \-\-global https://github\.com/rubygems/rubygems\.git username:password
451
442
  .
452
443
  .fi
453
444
  .
@@ -479,6 +470,23 @@ export BUNDLE_GITHUB__COM=abcd0123generatedtoken:x\-oauth\-basic
479
470
  .
480
471
  .IP "" 0
481
472
  .
473
+ .P
474
+ Note that any configured credentials will be redacted by informative commands such as \fBbundle config list\fR or \fBbundle config get\fR, unless you use the \fB\-\-parseable\fR flag\. This is to avoid unintentially leaking credentials when copy\-pasting bundler output\.
475
+ .
476
+ .P
477
+ Also note that to guarantee a sane mapping between valid environment variable names and valid host names, bundler makes the following transformations:
478
+ .
479
+ .IP "\(bu" 4
480
+ Any \fB\-\fR characters in a host name are mapped to a triple dash (\fB___\fR) in the corresponding enviroment variable\.
481
+ .
482
+ .IP "\(bu" 4
483
+ Any \fB\.\fR characters in a host name are mapped to a double dash (\fB__\fR) in the corresponding environment variable\.
484
+ .
485
+ .IP "" 0
486
+ .
487
+ .P
488
+ This means that if you have a gem server named \fBmy\.gem\-host\.com\fR, you\'ll need to use the \fBBUNDLE_MY__GEM___HOST__COM\fR variable to configure credentials for it through ENV\.
489
+ .
482
490
  .SH "CONFIGURE BUNDLER DIRECTORIES"
483
491
  Bundler\'s home, config, cache and plugin directories are able to be configured through environment variables\. The default location for Bundler\'s home directory is \fB~/\.bundle\fR, which all directories inherit from by default\. The following outlines the available environment variables and their default values
484
492
  .
@@ -11,7 +11,7 @@ This command allows you to interact with Bundler's configuration system.
11
11
 
12
12
  Bundler loads configuration settings in this order:
13
13
 
14
- 1. Local config (`app/.bundle/config`)
14
+ 1. Local config (`<project_root>/.bundle/config` or `$BUNDLE_APP_CONFIG/config`)
15
15
  2. Environmental variables (`ENV`)
16
16
  3. Global config (`~/.bundle/config`)
17
17
  4. Bundler default config
@@ -30,8 +30,10 @@ overridden and user will be warned.
30
30
 
31
31
  Executing `bundle config set --global <name> <value>` works the same as above.
32
32
 
33
- Executing `bundle config set --local <name> <value>` will set that configuration to
34
- the local application. The configuration will be stored in `app/.bundle/config`.
33
+ Executing `bundle config set --local <name> <value>` will set that configuration
34
+ in the directory for the local application. The configuration will be stored in
35
+ `<project_root>/.bundle/config`. If `BUNDLE_APP_CONFIG` is set, the configuration
36
+ will be stored in `$BUNDLE_APP_CONFIG/config`.
35
37
 
36
38
  Executing `bundle config unset <name>` will delete the configuration in both
37
39
  local and global sources.
@@ -45,7 +47,7 @@ configuration only from the local application.
45
47
  Executing bundle with the `BUNDLE_IGNORE_CONFIG` environment variable set will
46
48
  cause it to ignore all configuration.
47
49
 
48
- Executing `bundle config set disable_multisource true` upgrades the warning about
50
+ Executing `bundle config set --local disable_multisource true` upgrades the warning about
49
51
  the Gemfile containing multiple primary sources to an error. Executing `bundle
50
52
  config unset disable_multisource` downgrades this error to a warning.
51
53
 
@@ -57,7 +59,7 @@ application's configuration (normally, `./.bundle/config`).
57
59
 
58
60
  However, this will be changed in bundler 3, so it's better not to rely on this
59
61
  behavior. If these options must be remembered, it's better to set them using
60
- `bundle config` (e.g., `bundle config set path foo`).
62
+ `bundle config` (e.g., `bundle config set --local path foo`).
61
63
 
62
64
  The options that can be configured are:
63
65
 
@@ -101,7 +103,7 @@ pass configuration flags to `gem install` to specify where to find the
101
103
  Since the specific location of that executable can change from machine
102
104
  to machine, you can specify these flags on a per-machine basis.
103
105
 
104
- bundle config set build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
106
+ bundle config set --global build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
105
107
 
106
108
  After running this command, every time bundler needs to install the
107
109
  `mysql` gem, it will pass along the flags you specified.
@@ -131,9 +133,6 @@ the environment variable `BUNDLE_LOCAL__RACK`.
131
133
  The following is a list of all configuration keys and their purpose. You can
132
134
  learn more about their operation in [bundle install(1)](bundle-install.1.html).
133
135
 
134
- * `allow_bundler_dependency_conflicts` (`BUNDLE_ALLOW_BUNDLER_DEPENDENCY_CONFLICTS`):
135
- Allow resolving to specifications that have dependencies on `bundler` that
136
- are incompatible with the running Bundler version.
137
136
  * `allow_deployment_source_credential_changes` (`BUNDLE_ALLOW_DEPLOYMENT_SOURCE_CREDENTIAL_CHANGES`):
138
137
  When in deployment mode, allow changing the credentials to a gem's source.
139
138
  Ex: `https://some.host.com/gems/path/` -> `https://user_name:password@some.host.com/gems/path`
@@ -148,7 +147,8 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
148
147
  Install executables from gems in the bundle to the specified directory.
149
148
  Defaults to `false`.
150
149
  * `cache_all` (`BUNDLE_CACHE_ALL`):
151
- Cache all gems, including path and git gems.
150
+ Cache all gems, including path and git gems. This needs to be explicitly
151
+ configured on bundler 1 and bundler 2, but will be the default on bundler 3.
152
152
  * `cache_all_platforms` (`BUNDLE_CACHE_ALL_PLATFORMS`):
153
153
  Cache gems for all platforms.
154
154
  * `cache_path` (`BUNDLE_CACHE_PATH`):
@@ -175,12 +175,13 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
175
175
  * `disable_local_branch_check` (`BUNDLE_DISABLE_LOCAL_BRANCH_CHECK`):
176
176
  Allow Bundler to use a local git override without a branch specified in the
177
177
  Gemfile.
178
+ * `disable_local_revision_check` (`BUNDLE_DISABLE_LOCAL_REVISION_CHECK`):
179
+ Allow Bundler to use a local git override without checking if the revision
180
+ present in the lockfile is present in the repository.
178
181
  * `disable_multisource` (`BUNDLE_DISABLE_MULTISOURCE`):
179
182
  When set, Gemfiles containing multiple sources will produce errors
180
183
  instead of warnings.
181
184
  Use `bundle config unset disable_multisource` to unset.
182
- * `disable_platform_warnings` (`BUNDLE_DISABLE_PLATFORM_WARNINGS`):
183
- Disable warnings during bundle install when a dependency is unused on the current platform.
184
185
  * `disable_shared_gems` (`BUNDLE_DISABLE_SHARED_GEMS`):
185
186
  Stop Bundler from accessing gems installed to RubyGems' normal location.
186
187
  * `disable_version_check` (`BUNDLE_DISABLE_VERSION_CHECK`):
@@ -193,6 +194,10 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
193
194
  Disallow changes to the `Gemfile`. When the `Gemfile` is changed and the
194
195
  lockfile has not been updated, running Bundler commands will be blocked.
195
196
  Defaults to `true` when `--deployment` is used.
197
+ * `gem.github_username` (`BUNDLE_GEM__GITHUB_USERNAME`):
198
+ Sets a GitHub username or organization to be used in `README` file when you
199
+ create a new gem via `bundle gem` command. It can be overridden by passing an
200
+ explicit `--github-username` flag to `bundle gem`.
196
201
  * `gem.push_key` (`BUNDLE_GEM__PUSH_KEY`):
197
202
  Sets the `--key` parameter for `gem push` when using the `rake release`
198
203
  command with a private gemstash server.
@@ -205,20 +210,18 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
205
210
  * `global_gem_cache` (`BUNDLE_GLOBAL_GEM_CACHE`):
206
211
  Whether Bundler should cache all gems globally, rather than locally to the
207
212
  installing Ruby installation.
208
- * `ignore_messages` (`BUNDLE_IGNORE_MESSAGES`): When set, no post install
209
- messages will be printed. To silence a single gem, use dot notation like
210
- `ignore_messages.httparty true`.
211
- * `init_gems_rb` (`BUNDLE_INIT_GEMS_RB`)
213
+ * `ignore_messages` (`BUNDLE_IGNORE_MESSAGES`):
214
+ When set, no post install messages will be printed. To silence a single gem,
215
+ use dot notation like `ignore_messages.httparty true`.
216
+ * `init_gems_rb` (`BUNDLE_INIT_GEMS_RB`):
212
217
  Generate a `gems.rb` instead of a `Gemfile` when running `bundle init`.
213
218
  * `jobs` (`BUNDLE_JOBS`):
214
- The number of gems Bundler can install in parallel. Defaults to 1.
219
+ The number of gems Bundler can install in parallel. Defaults to 1 on Windows,
220
+ and to the the number of processors on other platforms.
215
221
  * `no_install` (`BUNDLE_NO_INSTALL`):
216
222
  Whether `bundle package` should skip installing gems.
217
223
  * `no_prune` (`BUNDLE_NO_PRUNE`):
218
224
  Whether Bundler should leave outdated gems unpruned when caching.
219
- * `only_update_to_newer_versions` (`BUNDLE_ONLY_UPDATE_TO_NEWER_VERSIONS`):
220
- During `bundle update`, only resolve to newer versions of the gems in the
221
- lockfile.
222
225
  * `path` (`BUNDLE_PATH`):
223
226
  The location on disk where all gems in your bundle will be located regardless
224
227
  of `$GEM_HOME` or `$GEM_PATH` values. Bundle gems not found in this location
@@ -232,7 +235,7 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
232
235
  Enable Bundler's experimental plugin system.
233
236
  * `prefer_patch` (BUNDLE_PREFER_PATCH):
234
237
  Prefer updating only to next patch version during updates. Makes `bundle update` calls equivalent to `bundler update --patch`.
235
- * `print_only_version_number` (`BUNDLE_PRINT_ONLY_VERSION_NUMBER`)
238
+ * `print_only_version_number` (`BUNDLE_PRINT_ONLY_VERSION_NUMBER`):
236
239
  Print only version number from `bundler --version`.
237
240
  * `redirect` (`BUNDLE_REDIRECT`):
238
241
  The number of redirects allowed for network requests. Defaults to `5`.
@@ -249,17 +252,6 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
249
252
  be changed in the next major version.
250
253
  * `silence_root_warning` (`BUNDLE_SILENCE_ROOT_WARNING`):
251
254
  Silence the warning Bundler prints when installing gems as root.
252
- * `skip_default_git_sources` (`BUNDLE_SKIP_DEFAULT_GIT_SOURCES`):
253
- Whether Bundler should skip adding default git source shortcuts to the
254
- Gemfile DSL.
255
- * `specific_platform` (`BUNDLE_SPECIFIC_PLATFORM`):
256
- Allow bundler to resolve for the specific running platform and store it in
257
- the lockfile, instead of only using a generic platform.
258
- A specific platform is the exact platform triple reported by
259
- `Gem::Platform.local`, such as `x86_64-darwin-16` or `universal-java-1.8`.
260
- On the other hand, generic platforms are those such as `ruby`, `mswin`, or
261
- `java`. In this example, `x86_64-darwin-16` would map to `ruby` and
262
- `universal-java-1.8` to `java`.
263
255
  * `ssl_ca_cert` (`BUNDLE_SSL_CA_CERT`):
264
256
  Path to a designated CA certificate file or folder containing multiple
265
257
  certificates for trusted CAs in PEM format.
@@ -279,7 +271,7 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
279
271
  * `unlock_source_unlocks_spec` (`BUNDLE_UNLOCK_SOURCE_UNLOCKS_SPEC`):
280
272
  Whether running `bundle update --source NAME` unlocks a gem with the given
281
273
  name. Defaults to `true`.
282
- * `update_requires_all_flag` (`BUNDLE_UPDATE_REQUIRES_ALL_FLAG`)
274
+ * `update_requires_all_flag` (`BUNDLE_UPDATE_REQUIRES_ALL_FLAG`):
283
275
  Require passing `--all` to `bundle update` when everything should be updated,
284
276
  and disallow passing no options to `bundle update`.
285
277
  * `user_agent` (`BUNDLE_USER_AGENT`):
@@ -302,11 +294,11 @@ Bundler also allows you to work against a git repository locally
302
294
  instead of using the remote version. This can be achieved by setting
303
295
  up a local override:
304
296
 
305
- bundle config set local.GEM_NAME /path/to/local/git/repository
297
+ bundle config set --local local.GEM_NAME /path/to/local/git/repository
306
298
 
307
299
  For example, in order to use a local Rack repository, a developer could call:
308
300
 
309
- bundle config set local.rack ~/Work/git/rack
301
+ bundle config set --local local.rack ~/Work/git/rack
310
302
 
311
303
  Now instead of checking out the remote git repository, the local
312
304
  override will be used. Similar to a path source, every time the local
@@ -336,21 +328,21 @@ Bundler supports overriding gem sources with mirrors. This allows you to
336
328
  configure rubygems.org as the gem source in your Gemfile while still using your
337
329
  mirror to fetch gems.
338
330
 
339
- bundle config set mirror.SOURCE_URL MIRROR_URL
331
+ bundle config set --global mirror.SOURCE_URL MIRROR_URL
340
332
 
341
333
  For example, to use a mirror of rubygems.org hosted at rubygems-mirror.org:
342
334
 
343
- bundle config set mirror.http://rubygems.org http://rubygems-mirror.org
335
+ bundle config set --global mirror.http://rubygems.org http://rubygems-mirror.org
344
336
 
345
337
  Each mirror also provides a fallback timeout setting. If the mirror does not
346
338
  respond within the fallback timeout, Bundler will try to use the original
347
339
  server instead of the mirror.
348
340
 
349
- bundle config set mirror.SOURCE_URL.fallback_timeout TIMEOUT
341
+ bundle config set --global mirror.SOURCE_URL.fallback_timeout TIMEOUT
350
342
 
351
343
  For example, to fall back to rubygems.org after 3 seconds:
352
344
 
353
- bundle config set mirror.https://rubygems.org.fallback_timeout 3
345
+ bundle config set --global mirror.https://rubygems.org.fallback_timeout 3
354
346
 
355
347
  The default fallback timeout is 0.1 seconds, but the setting can currently
356
348
  only accept whole seconds (for example, 1, 15, or 30).
@@ -360,12 +352,12 @@ only accept whole seconds (for example, 1, 15, or 30).
360
352
  Bundler allows you to configure credentials for any gem source, which allows
361
353
  you to avoid putting secrets into your Gemfile.
362
354
 
363
- bundle config set SOURCE_HOSTNAME USERNAME:PASSWORD
355
+ bundle config set --global SOURCE_HOSTNAME USERNAME:PASSWORD
364
356
 
365
357
  For example, to save the credentials of user `claudette` for the gem source at
366
358
  `gems.longerous.com`, you would run:
367
359
 
368
- bundle config set gems.longerous.com claudette:s00pers3krit
360
+ bundle config set --global gems.longerous.com claudette:s00pers3krit
369
361
 
370
362
  Or you can set the credentials as an environment variable like this:
371
363
 
@@ -373,7 +365,7 @@ Or you can set the credentials as an environment variable like this:
373
365
 
374
366
  For gems with a git source with HTTP(S) URL you can specify credentials like so:
375
367
 
376
- bundle config set https://github.com/bundler/bundler.git username:password
368
+ bundle config set --global https://github.com/rubygems/rubygems.git username:password
377
369
 
378
370
  Or you can set the credentials as an environment variable like so:
379
371
 
@@ -384,6 +376,23 @@ where you can use personal OAuth tokens:
384
376
 
385
377
  export BUNDLE_GITHUB__COM=abcd0123generatedtoken:x-oauth-basic
386
378
 
379
+ Note that any configured credentials will be redacted by informative commands
380
+ such as `bundle config list` or `bundle config get`, unless you use the
381
+ `--parseable` flag. This is to avoid unintentially leaking credentials when
382
+ copy-pasting bundler output.
383
+
384
+ Also note that to guarantee a sane mapping between valid environment variable
385
+ names and valid host names, bundler makes the following transformations:
386
+
387
+ * Any `-` characters in a host name are mapped to a triple dash (`___`) in the
388
+ corresponding enviroment variable.
389
+
390
+ * Any `.` characters in a host name are mapped to a double dash (`__`) in the
391
+ corresponding environment variable.
392
+
393
+ This means that if you have a gem server named `my.gem-host.com`, you'll need to
394
+ use the `BUNDLE_MY__GEM___HOST__COM` variable to configure credentials for it
395
+ through ENV.
387
396
 
388
397
  ## CONFIGURE BUNDLER DIRECTORIES
389
398
 
@@ -396,4 +405,3 @@ outlines the available environment variables and their default values
396
405
  BUNDLE_USER_CACHE : $BUNDLE_USER_HOME/cache
397
406
  BUNDLE_USER_CONFIG : $BUNDLE_USER_HOME/config
398
407
  BUNDLE_USER_PLUGIN : $BUNDLE_USER_HOME/plugin
399
-