bundler 1.15.1 → 1.17.3

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 (294) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +320 -0
  3. data/README.md +17 -8
  4. data/bundler.gemspec +25 -9
  5. data/exe/bundle +1 -6
  6. data/exe/bundle_ruby +4 -3
  7. data/lib/bundler/build_metadata.rb +53 -0
  8. data/lib/bundler/capistrano.rb +5 -0
  9. data/lib/bundler/cli/add.rb +15 -6
  10. data/lib/bundler/cli/binstubs.rb +17 -9
  11. data/lib/bundler/cli/cache.rb +5 -4
  12. data/lib/bundler/cli/check.rb +3 -5
  13. data/lib/bundler/cli/clean.rb +5 -6
  14. data/lib/bundler/cli/common.rb +11 -2
  15. data/lib/bundler/cli/config.rb +2 -1
  16. data/lib/bundler/cli/console.rb +2 -1
  17. data/lib/bundler/cli/doctor.rb +48 -1
  18. data/lib/bundler/cli/exec.rb +6 -5
  19. data/lib/bundler/cli/gem.rb +13 -8
  20. data/lib/bundler/cli/info.rb +0 -1
  21. data/lib/bundler/cli/init.rb +18 -6
  22. data/lib/bundler/cli/inject.rb +1 -0
  23. data/lib/bundler/cli/install.rb +64 -77
  24. data/lib/bundler/cli/issue.rb +1 -1
  25. data/lib/bundler/cli/list.rb +58 -0
  26. data/lib/bundler/cli/lock.rb +0 -1
  27. data/lib/bundler/cli/open.rb +2 -2
  28. data/lib/bundler/cli/outdated.rb +20 -9
  29. data/lib/bundler/cli/package.rb +9 -6
  30. data/lib/bundler/cli/platform.rb +1 -0
  31. data/lib/bundler/cli/plugin.rb +1 -0
  32. data/lib/bundler/cli/pristine.rb +20 -6
  33. data/lib/bundler/cli/remove.rb +18 -0
  34. data/lib/bundler/cli/show.rb +0 -1
  35. data/lib/bundler/cli/update.rb +35 -7
  36. data/lib/bundler/cli/viz.rb +4 -0
  37. data/lib/bundler/cli.rb +234 -90
  38. data/lib/bundler/compact_index_client/cache.rb +1 -2
  39. data/lib/bundler/compact_index_client/updater.rb +35 -7
  40. data/lib/bundler/compact_index_client.rb +1 -0
  41. data/lib/bundler/compatibility_guard.rb +14 -0
  42. data/lib/bundler/constants.rb +1 -0
  43. data/lib/bundler/current_ruby.rb +13 -5
  44. data/lib/bundler/definition.rb +192 -139
  45. data/lib/bundler/dep_proxy.rb +3 -1
  46. data/lib/bundler/dependency.rb +9 -9
  47. data/lib/bundler/deployment.rb +1 -1
  48. data/lib/bundler/deprecate.rb +15 -3
  49. data/lib/bundler/dsl.rb +115 -64
  50. data/lib/bundler/endpoint_specification.rb +10 -1
  51. data/lib/bundler/env.rb +90 -29
  52. data/lib/bundler/environment_preserver.rb +27 -6
  53. data/lib/bundler/errors.rb +1 -0
  54. data/lib/bundler/feature_flag.rb +46 -4
  55. data/lib/bundler/fetcher/base.rb +1 -0
  56. data/lib/bundler/fetcher/compact_index.rb +2 -11
  57. data/lib/bundler/fetcher/dependency.rb +2 -1
  58. data/lib/bundler/fetcher/downloader.rb +11 -5
  59. data/lib/bundler/fetcher/index.rb +3 -2
  60. data/lib/bundler/fetcher.rb +18 -11
  61. data/lib/bundler/friendly_errors.rb +6 -1
  62. data/lib/bundler/gem_helper.rb +19 -10
  63. data/lib/bundler/gem_helpers.rb +1 -0
  64. data/lib/bundler/gem_remote_fetcher.rb +1 -0
  65. data/lib/bundler/gem_tasks.rb +1 -0
  66. data/lib/bundler/gem_version_promoter.rb +17 -2
  67. data/lib/bundler/gemdeps.rb +1 -0
  68. data/lib/bundler/graph.rb +1 -0
  69. data/lib/bundler/index.rb +8 -8
  70. data/lib/bundler/injector.rb +192 -30
  71. data/lib/bundler/inline.rb +10 -10
  72. data/lib/bundler/installer/gem_installer.rb +12 -2
  73. data/lib/bundler/installer/parallel_installer.rb +78 -42
  74. data/lib/bundler/installer/standalone.rb +1 -0
  75. data/lib/bundler/installer.rb +138 -53
  76. data/lib/bundler/lazy_specification.rb +3 -2
  77. data/lib/bundler/lockfile_generator.rb +95 -0
  78. data/lib/bundler/lockfile_parser.rb +10 -4
  79. data/lib/bundler/match_platform.rb +1 -0
  80. data/lib/bundler/mirror.rb +8 -5
  81. data/lib/bundler/plugin/api/source.rb +9 -2
  82. data/lib/bundler/plugin/events.rb +61 -0
  83. data/lib/bundler/plugin/index.rb +7 -2
  84. data/lib/bundler/plugin/installer.rb +7 -6
  85. data/lib/bundler/plugin/source_list.rb +7 -8
  86. data/lib/bundler/plugin.rb +13 -5
  87. data/lib/bundler/process_lock.rb +24 -0
  88. data/lib/bundler/psyched_yaml.rb +10 -0
  89. data/lib/bundler/remote_specification.rb +10 -1
  90. data/lib/bundler/resolver/spec_group.rb +106 -0
  91. data/lib/bundler/resolver.rb +158 -195
  92. data/lib/bundler/retry.rb +1 -0
  93. data/lib/bundler/ruby_dsl.rb +1 -0
  94. data/lib/bundler/ruby_version.rb +2 -1
  95. data/lib/bundler/rubygems_ext.rb +5 -4
  96. data/lib/bundler/rubygems_gem_installer.rb +31 -1
  97. data/lib/bundler/rubygems_integration.rb +71 -32
  98. data/lib/bundler/runtime.rb +11 -9
  99. data/lib/bundler/settings/validator.rb +102 -0
  100. data/lib/bundler/settings.rb +213 -86
  101. data/lib/bundler/setup.rb +4 -7
  102. data/lib/bundler/shared_helpers.rb +131 -26
  103. data/lib/bundler/similarity_detector.rb +1 -0
  104. data/lib/bundler/source/gemspec.rb +1 -0
  105. data/lib/bundler/source/git/git_proxy.rb +21 -11
  106. data/lib/bundler/source/git.rb +24 -19
  107. data/lib/bundler/source/metadata.rb +62 -0
  108. data/lib/bundler/source/path/installer.rb +2 -0
  109. data/lib/bundler/source/path.rb +11 -7
  110. data/lib/bundler/source/rubygems/remote.rb +8 -2
  111. data/lib/bundler/source/rubygems.rb +161 -84
  112. data/lib/bundler/source.rb +36 -0
  113. data/lib/bundler/source_list.rb +75 -15
  114. data/lib/bundler/spec_set.rb +12 -6
  115. data/lib/bundler/ssl_certs/certificate_manager.rb +2 -1
  116. data/lib/bundler/stub_specification.rb +1 -0
  117. data/lib/bundler/templates/.document +1 -0
  118. data/lib/bundler/templates/Executable +12 -0
  119. data/lib/bundler/templates/Executable.bundler +105 -0
  120. data/lib/bundler/templates/Gemfile +3 -0
  121. data/lib/bundler/templates/gems.rb +8 -0
  122. data/lib/bundler/templates/newgem/Gemfile.tt +2 -0
  123. data/lib/bundler/templates/newgem/README.md.tt +1 -1
  124. data/lib/bundler/templates/newgem/gitignore.tt +0 -1
  125. data/lib/bundler/templates/newgem/lib/newgem.rb.tt +1 -0
  126. data/lib/bundler/templates/newgem/newgem.gemspec.tt +12 -3
  127. data/lib/bundler/templates/newgem/rspec.tt +1 -0
  128. data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +0 -2
  129. data/lib/bundler/templates/newgem/{.travis.yml.tt → travis.yml.tt} +2 -0
  130. data/lib/bundler/ui/rg_proxy.rb +1 -0
  131. data/lib/bundler/ui/shell.rb +17 -4
  132. data/lib/bundler/ui/silent.rb +1 -0
  133. data/lib/bundler/ui.rb +1 -0
  134. data/lib/bundler/uri_credentials_filter.rb +1 -0
  135. data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1638 -0
  136. data/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +26 -0
  137. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
  138. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
  139. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
  140. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -0
  141. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -0
  142. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -0
  143. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -0
  144. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +1 -0
  145. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -0
  146. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -0
  147. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +15 -4
  148. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +3 -2
  149. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +75 -7
  150. data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  151. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
  152. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +3 -1
  153. data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +491 -148
  154. data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +1 -0
  155. data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +8 -4
  156. data/lib/bundler/vendor/molinillo/lib/molinillo.rb +2 -0
  157. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +3 -1
  158. data/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -0
  159. data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +1 -0
  160. data/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +9 -1
  161. data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +45 -8
  162. data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +9 -3
  163. data/lib/bundler/vendor/thor/lib/thor/actions.rb +6 -3
  164. data/lib/bundler/vendor/thor/lib/thor/base.rb +27 -4
  165. data/lib/bundler/vendor/thor/lib/thor/command.rb +9 -7
  166. data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +12 -0
  167. data/lib/bundler/vendor/thor/lib/thor/group.rb +1 -1
  168. data/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +2 -0
  169. data/lib/bundler/vendor/thor/lib/thor/parser/option.rb +5 -5
  170. data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +6 -5
  171. data/lib/bundler/vendor/thor/lib/thor/runner.rb +6 -4
  172. data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +10 -9
  173. data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
  174. data/lib/bundler/vendor/thor/lib/thor.rb +25 -8
  175. data/lib/bundler/vendored_fileutils.rb +9 -0
  176. data/lib/bundler/vendored_molinillo.rb +1 -0
  177. data/lib/bundler/vendored_persistent.rb +35 -0
  178. data/lib/bundler/vendored_thor.rb +1 -0
  179. data/lib/bundler/version.rb +6 -2
  180. data/lib/bundler/version_ranges.rb +1 -0
  181. data/lib/bundler/vlad.rb +5 -0
  182. data/lib/bundler/worker.rb +1 -0
  183. data/lib/bundler/yaml_serializer.rb +3 -3
  184. data/lib/bundler.rb +86 -52
  185. data/man/bundle-add.1 +18 -3
  186. data/man/bundle-add.1.txt +26 -14
  187. data/man/bundle-add.ronn +13 -2
  188. data/man/bundle-binstubs.1 +11 -1
  189. data/man/bundle-binstubs.1.txt +33 -18
  190. data/man/bundle-binstubs.ronn +15 -1
  191. data/man/bundle-check.1 +4 -4
  192. data/man/bundle-check.1.txt +15 -14
  193. data/man/bundle-check.ronn +3 -3
  194. data/man/bundle-clean.1 +1 -1
  195. data/man/bundle-clean.1.txt +10 -10
  196. data/man/bundle-config.1 +129 -29
  197. data/man/bundle-config.1.txt +285 -174
  198. data/man/bundle-config.ronn +167 -88
  199. data/man/bundle-doctor.1 +44 -0
  200. data/man/bundle-doctor.1.txt +44 -0
  201. data/man/bundle-doctor.ronn +33 -0
  202. data/man/bundle-exec.1 +6 -3
  203. data/man/bundle-exec.1.txt +78 -71
  204. data/man/bundle-exec.ronn +10 -3
  205. data/man/bundle-gem.1 +4 -4
  206. data/man/bundle-gem.1.txt +41 -40
  207. data/man/bundle-gem.ronn +3 -2
  208. data/man/bundle-info.1 +1 -1
  209. data/man/bundle-info.1.txt +8 -8
  210. data/man/bundle-init.1 +9 -4
  211. data/man/bundle-init.1.txt +23 -13
  212. data/man/bundle-init.ronn +15 -4
  213. data/man/bundle-inject.1 +4 -4
  214. data/man/bundle-inject.1.txt +10 -10
  215. data/man/bundle-inject.ronn +3 -3
  216. data/man/bundle-install.1 +31 -28
  217. data/man/bundle-install.1.txt +205 -194
  218. data/man/bundle-install.ronn +44 -35
  219. data/man/bundle-list.1 +50 -0
  220. data/man/bundle-list.1.txt +43 -0
  221. data/man/bundle-list.ronn +33 -0
  222. data/man/bundle-lock.1 +1 -1
  223. data/man/bundle-lock.1.txt +47 -47
  224. data/man/bundle-lock.ronn +1 -1
  225. data/man/bundle-open.1 +1 -1
  226. data/man/bundle-open.1.txt +7 -7
  227. data/man/bundle-outdated.1 +7 -3
  228. data/man/bundle-outdated.1.txt +40 -36
  229. data/man/bundle-outdated.ronn +6 -2
  230. data/man/bundle-package.1 +6 -3
  231. data/man/bundle-package.1.txt +44 -39
  232. data/man/bundle-package.ronn +7 -2
  233. data/man/bundle-platform.1 +1 -1
  234. data/man/bundle-platform.1.txt +13 -13
  235. data/man/bundle-pristine.1 +21 -3
  236. data/man/bundle-pristine.1.txt +33 -10
  237. data/man/bundle-pristine.ronn +24 -3
  238. data/man/bundle-remove.1 +31 -0
  239. data/man/bundle-remove.1.txt +34 -0
  240. data/man/bundle-remove.ronn +23 -0
  241. data/man/bundle-show.1 +3 -3
  242. data/man/bundle-show.1.txt +14 -12
  243. data/man/bundle-show.ronn +3 -2
  244. data/man/bundle-update.1 +13 -9
  245. data/man/bundle-update.1.txt +133 -130
  246. data/man/bundle-update.ronn +21 -17
  247. data/man/bundle-viz.1 +7 -7
  248. data/man/bundle-viz.1.txt +17 -15
  249. data/man/bundle-viz.ronn +6 -6
  250. data/man/bundle.1 +31 -32
  251. data/man/bundle.1.txt +63 -75
  252. data/man/bundle.ronn +35 -47
  253. data/man/gemfile.5 +44 -8
  254. data/man/gemfile.5.ronn +54 -8
  255. data/man/gemfile.5.txt +218 -165
  256. data/man/index.txt +25 -15
  257. metadata +36 -44
  258. data/.codeclimate.yml +0 -25
  259. data/.gitignore +0 -18
  260. data/.rspec +0 -3
  261. data/.rubocop.yml +0 -131
  262. data/.rubocop_todo.yml +0 -418
  263. data/.travis.yml +0 -122
  264. data/CODE_OF_CONDUCT.md +0 -42
  265. data/CONTRIBUTING.md +0 -17
  266. data/Rakefile +0 -346
  267. data/bin/rake +0 -19
  268. data/bin/rspec +0 -15
  269. data/bin/rubocop +0 -17
  270. data/bin/with_rubygems +0 -39
  271. data/doc/README.md +0 -30
  272. data/doc/TROUBLESHOOTING.md +0 -64
  273. data/doc/contributing/BUG_TRIAGE.md +0 -36
  274. data/doc/contributing/COMMUNITY.md +0 -13
  275. data/doc/contributing/GETTING_HELP.md +0 -11
  276. data/doc/contributing/HOW_YOU_CAN_HELP.md +0 -27
  277. data/doc/contributing/ISSUES.md +0 -51
  278. data/doc/contributing/README.md +0 -38
  279. data/doc/development/NEW_FEATURES.md +0 -10
  280. data/doc/development/PULL_REQUESTS.md +0 -40
  281. data/doc/development/README.md +0 -19
  282. data/doc/development/RELEASING.md +0 -9
  283. data/doc/development/SETUP.md +0 -29
  284. data/doc/documentation/README.md +0 -29
  285. data/doc/documentation/VISION.md +0 -26
  286. data/doc/documentation/WRITING.md +0 -54
  287. data/lib/bundler/postit_trampoline.rb +0 -73
  288. data/lib/bundler/vendor/postit/lib/postit/environment.rb +0 -44
  289. data/lib/bundler/vendor/postit/lib/postit/installer.rb +0 -28
  290. data/lib/bundler/vendor/postit/lib/postit/parser.rb +0 -21
  291. data/lib/bundler/vendor/postit/lib/postit/setup.rb +0 -12
  292. data/lib/bundler/vendor/postit/lib/postit/version.rb +0 -3
  293. data/lib/bundler/vendor/postit/lib/postit.rb +0 -15
  294. data/task/release.rake +0 -116
data/Rakefile DELETED
@@ -1,346 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- # frozen_string_literal: true
3
- $:.unshift File.expand_path("../lib", __FILE__)
4
- require "shellwords"
5
- require "benchmark"
6
-
7
- RUBYGEMS_REPO = if `cd .. && git remote --verbose 2>/dev/null` =~ /rubygems/i
8
- File.expand_path("..")
9
- else
10
- File.expand_path("tmp/rubygems")
11
- end
12
-
13
- BUNDLER_SPEC = Gem::Specification.load("bundler.gemspec")
14
-
15
- def safe_task(&block)
16
- yield
17
- true
18
- rescue
19
- false
20
- end
21
-
22
- # Benchmark task execution
23
- module Rake
24
- class Task
25
- alias_method :real_invoke, :invoke
26
-
27
- def invoke(*args)
28
- time = Benchmark.measure(@name) do
29
- real_invoke(*args)
30
- end
31
- puts "#{@name} ran for #{time}"
32
- end
33
- end
34
- end
35
-
36
- namespace :spec do
37
- desc "Ensure spec dependencies are installed"
38
- task :deps do
39
- deps = Hash[BUNDLER_SPEC.development_dependencies.map do |d|
40
- [d.name, d.requirement.to_s]
41
- end]
42
- deps["rubocop"] ||= "= 0.48.0" if RUBY_VERSION >= "2.0.0" # can't go in the gemspec because of the ruby version requirement
43
-
44
- # JRuby can't build ronn or rdiscount, so we skip that
45
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
46
- deps.delete("ronn")
47
- deps.delete("rdiscount")
48
- end
49
-
50
- gem_install_command = "install --no-ri --no-rdoc --conservative " + deps.sort_by {|name, _| name }.map do |name, version|
51
- "'#{name}:#{version}'"
52
- end.join(" ")
53
- sh %(#{Gem.ruby} -S gem #{gem_install_command})
54
-
55
- # Download and install gems used inside tests
56
- $LOAD_PATH.unshift("./spec")
57
- require "support/rubygems_ext"
58
- Spec::Rubygems.setup
59
- end
60
-
61
- namespace :travis do
62
- task :deps do
63
- # Give the travis user a name so that git won't fatally error
64
- system "sudo sed -i 's/1000::/1000:Travis:/g' /etc/passwd"
65
- # Strip secure_path so that RVM paths transmit through sudo -E
66
- system "sudo sed -i '/secure_path/d' /etc/sudoers"
67
- # Install groff so ronn can generate man/help pages
68
- sh "sudo apt-get install groff-base -y"
69
- # Install graphviz so that the viz specs can run
70
- sh "sudo apt-get install graphviz -y 2>&1 | tail -n 2"
71
-
72
- # Install the gems with a consistent version of RubyGems
73
- sh "gem update --system 2.6.11"
74
-
75
- $LOAD_PATH.unshift("./spec")
76
- require "support/rubygems_ext"
77
- Spec::Rubygems::DEPS["codeclimate-test-reporter"] = "~> 0.6.0" if RUBY_VERSION >= "2.2.0"
78
-
79
- # Install the other gem deps, etc
80
- Rake::Task["spec:deps"].invoke
81
- end
82
- end
83
- end
84
-
85
- begin
86
- rspec = BUNDLER_SPEC.development_dependencies.find {|d| d.name == "rspec" }
87
- gem "rspec", rspec.requirement.to_s
88
- require "rspec/core/rake_task"
89
-
90
- desc "Run specs"
91
- RSpec::Core::RakeTask.new
92
- task :spec => "man:build"
93
-
94
- if RUBY_VERSION >= "2.0.0"
95
- # can't go in the gemspec because of the ruby version requirement
96
- gem "rubocop", "= 0.48.0"
97
- require "rubocop/rake_task"
98
- RuboCop::RakeTask.new
99
- end
100
-
101
- namespace :spec do
102
- task :clean do
103
- rm_rf "tmp"
104
- end
105
-
106
- desc "Run the real-world spec suite (requires internet)"
107
- task :realworld => %w(set_realworld spec)
108
-
109
- task :set_realworld do
110
- ENV["BUNDLER_REALWORLD_TESTS"] = "1"
111
- end
112
-
113
- desc "Run the spec suite with the sudo tests"
114
- task :sudo => %w(set_sudo spec clean_sudo)
115
-
116
- task :set_sudo do
117
- ENV["BUNDLER_SUDO_TESTS"] = "1"
118
- end
119
-
120
- task :clean_sudo do
121
- puts "Cleaning up sudo test files..."
122
- system "sudo rm -rf #{File.expand_path("../tmp/sudo_gem_home", __FILE__)}"
123
- end
124
-
125
- # Rubygems specs by version
126
- namespace :rubygems do
127
- rubyopt = ENV["RUBYOPT"]
128
- # When editing this list, also edit .travis.yml!
129
- branches = %w(master)
130
- releases = %w(v1.3.6 v1.3.7 v1.4.2 v1.5.3 v1.6.2 v1.7.2 v1.8.29 v2.0.14 v2.1.11 v2.2.5 v2.4.8 v2.5.2 v2.6.8)
131
- (branches + releases).each do |rg|
132
- desc "Run specs with Rubygems #{rg}"
133
- RSpec::Core::RakeTask.new(rg) do |t|
134
- t.rspec_opts = %w(--format progress --color)
135
- t.ruby_opts = %w(-w)
136
- end
137
-
138
- # Create tasks like spec:rubygems:v1.8.3:sudo to run the sudo specs
139
- namespace rg do
140
- task :sudo => ["set_sudo", rg, "clean_sudo"]
141
- task :realworld => ["set_realworld", rg]
142
- end
143
-
144
- task "clone_rubygems_#{rg}" do
145
- unless File.directory?(RUBYGEMS_REPO)
146
- system("git clone https://github.com/rubygems/rubygems.git tmp/rubygems")
147
- end
148
- hash = nil
149
-
150
- if RUBYGEMS_REPO.start_with?(Dir.pwd)
151
- Dir.chdir(RUBYGEMS_REPO) do
152
- system("git remote update")
153
- if rg == "master"
154
- system("git checkout origin/master")
155
- else
156
- system("git checkout #{rg}") || raise("Unknown Rubygems ref #{rg}")
157
- end
158
- hash = `git rev-parse HEAD`.chomp
159
- end
160
- elsif rg != "master"
161
- raise "need to be running against master with bundler as a submodule"
162
- end
163
-
164
- puts "Checked out rubygems '#{rg}' at #{hash}"
165
- ENV["RUBYOPT"] = "-I#{File.join(RUBYGEMS_REPO, "lib")} #{rubyopt}"
166
- puts "RUBYOPT=#{ENV["RUBYOPT"]}"
167
- end
168
-
169
- task rg => ["man:build", "clone_rubygems_#{rg}"]
170
- task "rubygems:all" => rg
171
- end
172
-
173
- desc "Run specs under a Rubygems checkout (set RG=path)"
174
- RSpec::Core::RakeTask.new("co") do |t|
175
- t.rspec_opts = %w(--format documentation --color)
176
- t.ruby_opts = %w(-w)
177
- end
178
-
179
- task "setup_co" do
180
- rg = File.expand_path ENV["RG"]
181
- puts "Running specs against Rubygems in #{rg}..."
182
- ENV["RUBYOPT"] = "-I#{rg} #{rubyopt}"
183
- end
184
-
185
- task "co" => "setup_co"
186
- task "rubygems:all" => "co"
187
- end
188
-
189
- desc "Run the tests on Travis CI against a rubygem version (using ENV['RGV'])"
190
- task :travis do
191
- rg = ENV["RGV"] || raise("Rubygems version is required on Travis!")
192
-
193
- if RUBY_VERSION >= "2.0.0"
194
- puts "\n\e[1;33m[Travis CI] Running bundler linter\e[m\n\n"
195
- Rake::Task["rubocop"].invoke
196
- end
197
-
198
- puts "\n\e[1;33m[Travis CI] Running bundler specs against rubygems #{rg}\e[m\n\n"
199
- specs = safe_task { Rake::Task["spec:rubygems:#{rg}"].invoke }
200
-
201
- Rake::Task["spec:rubygems:#{rg}"].reenable
202
-
203
- puts "\n\e[1;33m[Travis CI] Running bundler sudo specs against rubygems #{rg}\e[m\n\n"
204
- sudos = system("sudo -E rake spec:rubygems:#{rg}:sudo")
205
- # clean up by chowning the newly root-owned tmp directory back to the travis user
206
- system("sudo chown -R #{ENV["USER"]} #{File.join(File.dirname(__FILE__), "tmp")}")
207
-
208
- Rake::Task["spec:rubygems:#{rg}"].reenable
209
-
210
- puts "\n\e[1;33m[Travis CI] Running bundler real world specs against rubygems #{rg}\e[m\n\n"
211
- realworld = safe_task { Rake::Task["spec:rubygems:#{rg}:realworld"].invoke }
212
-
213
- { "specs" => specs, "sudo" => sudos, "realworld" => realworld }.each do |name, passed|
214
- if passed
215
- puts "\e[0;32m[Travis CI] #{name} passed\e[m"
216
- else
217
- puts "\e[0;31m[Travis CI] #{name} failed\e[m"
218
- end
219
- end
220
-
221
- unless specs && sudos && realworld
222
- raise "Spec run failed, please review the log for more information"
223
- end
224
- end
225
- end
226
-
227
- rescue LoadError
228
- task :spec do
229
- abort "Run `rake spec:deps` to be able to run the specs"
230
- end
231
-
232
- task :rubocop do
233
- abort "Run `rake spec:deps` to be able to run rubocop"
234
- end
235
- end
236
-
237
- begin
238
- require "ronn"
239
-
240
- namespace :man do
241
- directory "man"
242
-
243
- sources = Dir["man/*.ronn"].map {|f| File.basename(f, ".ronn") }
244
- sources.map do |basename|
245
- ronn = "man/#{basename}.ronn"
246
- manual_section = ".1" unless basename =~ /.*(\d+)\Z/
247
- roff = "man/#{basename}#{manual_section}"
248
-
249
- file roff => ["man", ronn] do
250
- sh "#{Gem.ruby} -S ronn --roff --pipe #{ronn} > #{roff}"
251
- end
252
-
253
- file "#{roff}.txt" => roff do
254
- sh "groff -Wall -mtty-char -mandoc -Tascii #{roff} | col -b > #{roff}.txt"
255
- end
256
-
257
- task :build_all_pages => "#{roff}.txt"
258
- end
259
-
260
- task :clean do
261
- leftovers = Dir["man/*"].reject do |f|
262
- File.extname(f) == ".ronn" || f == "man/index.txt"
263
- end
264
- rm leftovers if leftovers.any?
265
- end
266
-
267
- desc "Build the man pages"
268
- task :build => ["man:clean", "man:build_all_pages"]
269
-
270
- desc "Remove all built man pages"
271
- task :clobber do
272
- rm_rf "lib/bundler/man"
273
- end
274
-
275
- task(:require) {}
276
- end
277
-
278
- rescue LoadError
279
- namespace :man do
280
- task(:require) { abort "Install the ronn gem to be able to release!" }
281
- task(:build) { warn "Install the ronn gem to build the help pages" }
282
- end
283
- end
284
-
285
- begin
286
- require "automatiek"
287
-
288
- Automatiek::RakeTask.new("molinillo") do |lib|
289
- lib.download = { :github => "https://github.com/CocoaPods/Molinillo" }
290
- lib.namespace = "Molinillo"
291
- lib.prefix = "Bundler"
292
- lib.vendor_lib = "lib/bundler/vendor/molinillo"
293
- end
294
-
295
- Automatiek::RakeTask.new("thor") do |lib|
296
- lib.download = { :github => "https://github.com/erikhuda/thor" }
297
- lib.namespace = "Thor"
298
- lib.prefix = "Bundler"
299
- lib.vendor_lib = "lib/bundler/vendor/thor"
300
- end
301
-
302
- Automatiek::RakeTask.new("postit") do |lib|
303
- lib.download = { :github => "https://github.com/bundler/postit" }
304
- lib.namespace = "PostIt"
305
- lib.prefix = "BundlerVendoredPostIt"
306
- lib.vendor_lib = "lib/bundler/vendor/postit"
307
- end
308
-
309
- Automatiek::RakeTask.new("net-http-persistent") do |lib|
310
- lib.download = { :github => "https://github.com/drbrain/net-http-persistent" }
311
- lib.namespace = "Net::HTTP::Persistent"
312
- lib.prefix = "Bundler::Persistent"
313
- lib.vendor_lib = "lib/bundler/vendor/net-http-persistent"
314
-
315
- mixin = Module.new do
316
- def namespace_files
317
- super
318
- require_target = vendor_lib.sub(%r{^(.+?/)?lib/}, "") << "/lib"
319
- relative_files = files.map {|f| Pathname.new(f).relative_path_from(Pathname.new(vendor_lib) / "lib").sub_ext("").to_s }
320
- process_files(/require (['"])(#{Regexp.union(relative_files)})/, "require \\1#{require_target}/\\2")
321
- end
322
- end
323
- lib.send(:extend, mixin)
324
- end
325
- rescue LoadError
326
- namespace :vendor do
327
- task(:molinillo) { abort "Install the automatiek gem to be able to vendor gems." }
328
- task(:thor) { abort "Install the automatiek gem to be able to vendor gems." }
329
- task(:postit) { abort "Install the automatiek gem to be able to vendor gems." }
330
- task("net-http-persistent") { abort "Install the automatiek gem to be able to vendor gems." }
331
- end
332
- end
333
-
334
- desc "Update vendored SSL certs to match the certs vendored by Rubygems"
335
- task :update_certs => "spec:rubygems:clone_rubygems_master" do
336
- require "bundler/ssl_certs/certificate_manager"
337
- Bundler::SSLCerts::CertificateManager.update_from!(RUBYGEMS_REPO)
338
- end
339
-
340
- require "bundler/gem_tasks"
341
- task :build => ["man:build"]
342
- task :release => ["man:require", "man:build"]
343
-
344
- task :default => :spec
345
-
346
- Dir["task/*.{rb,rake}"].each(&method(:load))
data/bin/rake DELETED
@@ -1,19 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- load File.expand_path("../with_rubygems", __FILE__) if ENV["RGV"]
5
-
6
- require "rubygems"
7
-
8
- bundler_spec = Gem::Specification.load(File.expand_path("../../bundler.gemspec", __FILE__))
9
- bundler_spec.dependencies.each do |dep|
10
- begin
11
- gem dep.name, dep.requirement
12
- rescue Gem::LoadError => e
13
- $stderr.puts "#{e.message} (#{e.class})"
14
- end
15
- end
16
-
17
- Gem.finish_resolve if Gem.respond_to?(:finish_resolve)
18
-
19
- load Gem.bin_path("rake", "rake")
data/bin/rspec DELETED
@@ -1,15 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- load File.expand_path("../with_rubygems", __FILE__) if ENV["RGV"]
5
-
6
- require "rubygems"
7
-
8
- bundler_spec = Gem::Specification.load(File.expand_path("../../bundler.gemspec", __FILE__))
9
- bundler_spec.dependencies.each do |dep|
10
- gem dep.name, dep.requirement
11
- end
12
-
13
- Gem.finish_resolve if Gem.respond_to?(:finish_resolve)
14
-
15
- load Gem.bin_path("rspec-core", "rspec")
data/bin/rubocop DELETED
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- load File.expand_path("../with_rubygems", __FILE__) if ENV["RGV"]
5
-
6
- require "rubygems"
7
-
8
- bundler_spec = Gem::Specification.load(File.expand_path("../../bundler.gemspec", __FILE__))
9
- bundler_spec.dependencies.each do |dep|
10
- gem dep.name, dep.requirement
11
- end
12
-
13
- gem "rubocop", "= 0.48.0"
14
-
15
- Gem.finish_resolve if Gem.respond_to?(:finish_resolve)
16
-
17
- load Gem.bin_path("rubocop", "rubocop")
data/bin/with_rubygems DELETED
@@ -1,39 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require "pathname"
5
-
6
- def run(*cmd)
7
- return if system(*cmd)
8
- raise "Running `#{cmd.join(" ")}` failed"
9
- end
10
-
11
- version = ENV.delete("RGV")
12
- rubygems_path = Pathname.new(__FILE__).join("../../tmp/rubygems").expand_path
13
- unless rubygems_path.directory?
14
- rubygems_path.parent.mkpath unless rubygems_path.directory?
15
- run("git", "clone", "https://github.com/rubygems/rubygems.git", rubygems_path.to_s)
16
- end
17
- Dir.chdir(rubygems_path) do
18
- version = "v#{version}" if version =~ /\A\d/
19
- run("git", "checkout", version, "--quiet")
20
- end if version
21
-
22
- rubygems_lib = rubygems_path + "lib"
23
- ENV["RUBYOPT"] = %(-I#{rubygems_lib} #{ENV["RUBYOPT"]})
24
-
25
- if $0 != __FILE__
26
- ARGV.unshift($0)
27
- elsif cmd = ARGV.first
28
- possible_dirs = [
29
- Pathname.new(__FILE__) + "..",
30
- Pathname.new(__FILE__) + "../../exe",
31
- rubygems_path + "bin",
32
- ]
33
- cmd = possible_dirs.map do |dir|
34
- dir.join(cmd).expand_path
35
- end.find(&:file?)
36
- ARGV[0] = cmd.to_s if cmd
37
- end
38
-
39
- exec(*ARGV)
data/doc/README.md DELETED
@@ -1,30 +0,0 @@
1
- # Docs: Contributing and developing Bundler
2
-
3
- _If you're looking for documentation on how to use Bundler: visit [bundler.io](http://bundler.io/), or run `bundle help` from the command line. You may also be interested in [troubleshooting common issues](TROUBLESHOOTING.md) found when using Bundler._
4
-
5
- Bundler welcomes contributions from *everyone*. While contributing, please follow the project [code of conduct](http://bundler.io/conduct.html), so that everyone can be included.
6
-
7
- If you'd like to help make Bundler better, you totally rock! Thanks for helping us make Bundler better.
8
-
9
- ## Contributing
10
-
11
- * [Overview & getting started](contributing/README.md)
12
- * [How you can help: your first contributions!](contributing/HOW_YOU_CAN_HELP.md)
13
- * [Bug triage](contributing/BUG_TRIAGE.md)
14
- * [Getting help](contributing/GETTING_HELP.md)
15
- * [Filing issues](contributing/ISSUES.md)
16
- * [Community](contributing/COMMUNITY.md)
17
-
18
- ## Development
19
-
20
- * [Overview](development/README.md)
21
- * [Development setup](development/SETUP.md)
22
- * [Submitting pull requests](development/PULL_REQUESTS.md)
23
- * [Adding new features](development/NEW_FEATURES.md)
24
- * [Releasing Bundler](development/RELEASING.md)
25
-
26
- ## Documentation
27
-
28
- * [Overview](documentation/README.md)
29
- * [Writing docs for man pages](documentation/WRITING.md)
30
- * [Documentation vision](documentation/VISION.md)
@@ -1,64 +0,0 @@
1
- # Troubleshooting common issues
2
-
3
- Stuck using Bundler? Browse these common issues before [filing a new issue](contributing/ISSUES.md).
4
-
5
- ## Permission denied when installing bundler
6
-
7
- Certain operating systems such as MacOS and Ubuntu have versions of Ruby that require elevated privileges to install gems.
8
-
9
- ERROR: While executing gem ... (Gem::FilePermissionError)
10
- You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
11
-
12
- There are multiple ways to solve this issue. You can install bundler with elevated privilges using `sudo` or `su`.
13
-
14
- sudo gem install bundler
15
-
16
- If you cannot elevated your privileges or do not want to globally install Bundler, you can use the `--user-install` option.
17
-
18
- gem install bundler --user-install
19
-
20
- This will install Bundler into your home directory. Note that you will need to append `~/.gem/ruby/<ruby version>/bin` to your `$PATH` variable to use `bundle`.
21
-
22
- ## Heroku errors
23
-
24
- Please open a ticket with [Heroku](https://www.heroku.com) if you're having trouble deploying. They have a professional support team who can help you resolve Heroku issues far better than the Bundler team can. If the problem that you are having turns out to be a bug in Bundler itself, [Heroku support](https://www.heroku.com/support) can get the exact details to us.
25
-
26
- ## Other problems
27
-
28
- First, figure out exactly what it is that you're trying to do (see [XY Problem](http://xyproblem.info/)). Then, go to the [Bundler documentation website](http://bundler.io) and see if we have instructions on how to do that.
29
-
30
- Second, check [the compatibility
31
- list](http://bundler.io/compatibility.html), and make sure that the version of Bundler that you are using works with the versions of Ruby and Rubygems that you are using. To see your versions:
32
-
33
- # Bundler version
34
- bundle -v
35
-
36
- # Ruby version
37
- ruby -v
38
-
39
- # Rubygems version
40
- gem -v
41
-
42
- If these instructions don't work, or you can't find any appropriate instructions, you can try these troubleshooting steps:
43
-
44
- # Remove user-specific gems and git repos
45
- rm -rf ~/.bundle/ ~/.gem/bundler/ ~/.gems/cache/bundler/
46
-
47
- # Remove system-wide git repos and git checkouts
48
- rm -rf $GEM_HOME/bundler/ $GEM_HOME/cache/bundler/
49
-
50
- # Remove project-specific settings
51
- rm -rf .bundle/
52
-
53
- # Remove project-specific cached gems and repos
54
- rm -rf vendor/cache/
55
-
56
- # Remove the saved resolve of the Gemfile
57
- rm -rf Gemfile.lock
58
-
59
- # Uninstall the rubygems-bundler and open_gem gems
60
- rvm gemset use global # if using rvm
61
- gem uninstall rubygems-bundler open_gem
62
-
63
- # Try to install one more time
64
- bundle install
@@ -1,36 +0,0 @@
1
- # Bug triage
2
-
3
- Triaging is the work of processing tickets that have been opened by users. Common tasks include verifying bugs, categorizing tickets, and ensuring there's enough information to reproduce the bug for anyone who wants to try to fix it.
4
-
5
- We've created an [issues guide](ISSUES.md) to walk users through the process of how to report an issue with the Bundler project. We also have a [troubleshooting guide](../TROUBLESHOOTING.md) to diagnose common problems.
6
-
7
- Not every ticket will be a bug in Bundler's code, but open tickets usually mean that the there is something we could improve to help that user. Sometimes that means writing additional documentation or making error messages clearer.
8
-
9
- ## Triaging existing issues
10
-
11
- When you're looking at a ticket, here are the main questions to ask:
12
-
13
- * Can I reproduce this bug myself?
14
- * Are the steps to reproduce the bug clearly documented in the ticket?
15
- * Which versions of Bundler (1.1.x, 1.2.x, git, etc.) manifest this bug?
16
- * Which operating systems (OS X, Windows, Ubuntu, CentOS, etc.) manifest this bug?
17
- * Which rubies (MRI, JRuby, Rubinius, etc.) and which versions (1.8.7, 1.9.3, etc.) have this bug?
18
-
19
- If you can't reproduce the issue, chances are good that the bug has been fixed already (hurrah!). That's a good time to post to the ticket explaining what you did and how it worked.
20
-
21
- If you can reproduce an issue, you're well on your way to fixing it. :)
22
-
23
- ## Fixing your triaged bug
24
-
25
- Everyone is welcome and encouraged to fix any open bug, improve an error message or add documentation. If you have a fix or an improvement to a ticket that you would like to contribute, we have a small guide to help:
26
-
27
- 1. Discuss the fix on the existing issue. Coordinating with everyone else saves duplicate work and serves as a great way to get suggestions and ideas if you need any.
28
- 2. Base your commits on the correct branch. Bugfixes for 1.x versions of Bundler should be based on the matching 1-x-stable branch.
29
- 3. Review the [pull request guide](../development/PULL_REQUESTS.md).
30
- 4. Commit the code with at least one test covering your changes to a named branch in your fork.
31
- 5. Put a line in the [CHANGELOG](../../CHANGELOG.md) summarizing your changes under the next release under the “Bugfixes” heading.
32
- 6. Send us a [pull request](https://help.github.com/articles/using-pull-requests) from your bugfix branch.
33
-
34
- ## Duplicates!
35
-
36
- Finally, the ticket may be a duplicate of another older ticket. If you notice a ticket is a duplicate, simply comment on the ticket noting the original ticket’s number. For example, you could say “This is a duplicate of issue #42, and can be closed”.
@@ -1,13 +0,0 @@
1
- # Community
2
-
3
- Community is an important part of all we do. If you’d like to be part of the Bundler community, you can jump right in and start helping make Bundler better for everyone who uses it.
4
-
5
- It would be tremendously helpful to have more people answering questions about Bundler (and often simply about [Rubygems](https://github.com/rubygems/rubygems) or Ruby itself) in our [issue tracker](https://github.com/bundler/bundler/issues) or on [Stack Overflow](http://stackoverflow.com/questions/tagged/bundler).
6
-
7
- Additional documentation and explanation is always helpful, too. If you have any suggestions for the Bundler website [bundler.io](http://bundler.io), we would absolutely love it if you opened an issue or pull request on the [bundler-site](https://github.com/bundler/bundler-site) repository.
8
-
9
- Sharing your experiences and discoveries by writing them up is a valuable way to help others who have similar problems or experiences in the future. You can write a blog post, create an example and commit it to GitHub, take screenshots, or make videos.
10
-
11
- Publishing examples of how Bundler is used helps everyone, and we’ve discovered that people already use it in ways that we never imagined when we were writing it. If you’re still not sure what to write about, there are also several projects doing interesting things based on Bundler. They could probably use publicity too.
12
-
13
- Finally, all contributors to the Bundler project must agree to the contributor [code of conduct](http://bundler.io/conduct.html). By participating in this project you agree to abide by its terms.
@@ -1,11 +0,0 @@
1
- # Getting help
2
-
3
- If you have any questions after reading the documentation for contributing, please feel free to contact either [@indirect](https://github.com/indirect), [@segiddins](https://github.com/segiddins), or [@RochesterinNYC](https://github.com/RochesterinNYC). They are all happy to provide help working through your first bug fix or thinking through the problem you’re trying to resolve.
4
-
5
- The best ways to get in touch are:
6
-
7
- * [Bundler Slack](https://bundler.slack.com).
8
- * Not a member of the Slack? Join the Bundler team slack [here](http://slack.bundler.io/)!
9
- * [Bundler mailing list](http://groups.google.com/group/ruby-bundler)
10
-
11
- You may also find our guide on [filing issues](ISSUES.md) to be helpful as well!
@@ -1,27 +0,0 @@
1
- # How you can help: your first commits!
2
-
3
- If you’re interested in contributing to Bundler, that’s awesome! We’d love your help.
4
-
5
- If at any point you get stuck, here's how to [get in touch with the Bundler team for help](GETTING_HELP.md).
6
-
7
- ## First contribution suggestions
8
-
9
- We track [small bugs and features](https://github.com/bundler/bundler/labels/contribution%3A%20small) so that anyone who wants to help can start with something that's not too overwhelming.
10
-
11
- Generally, great ways to get started helping out with Bundler are:
12
-
13
- - using prerelease versions (run `gem install bundler --pre`)
14
- - [reporting bugs you encounter or suggesting new features](https://github.com/bundler/bundler/issues/new)
15
- - see our [issues guide](ISSUES.md) for help on filing issues
16
- - see the [new features documentation](../development/NEW_FEATURES.md) for more
17
- - adding to or editing [the Bundler documentation website](http://bundler.io) and [Bundler man pages](http://bundler.io/man/bundle.1.html)
18
- - [checking issues for completeness](BUG_TRIAGE.md)
19
- - closing issues that are not complete
20
- - adding a failing test for reproducible [reported bugs](https://github.com/bundler/bundler/issues)
21
- - reviewing [pull requests](https://github.com/bundler/bundler/pulls) and suggesting improvements
22
- - improving existing code, including suggestions from [PullReview](https://www.pullreview.com/github/bundler/bundler/reviews/master) or [CodeClimate](https://codeclimate.com/github/bundler/bundler)
23
- - writing code (no patch is too small! fix typos or bad whitespace)
24
- - get started setting up your dev environment with [these instructions](../development/DEVELOPMENT_SETUP.md)
25
- - backfilling [unit tests](https://github.com/bundler/bundler/tree/master/spec/bundler) for modules that lack [coverage](https://codeclimate.com/github/bundler/bundler/coverage)
26
-
27
- If nothing on those lists looks good, [talk to us](http://slack.bundler.io/), and we'll figure out what you can help with. We can absolutely use your help, no matter what level of programming skill you have at the moment.