bundler 1.15.4 → 1.16.0.pre.1

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 (251) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +43 -0
  3. data/README.md +12 -7
  4. data/exe/bundle +1 -1
  5. data/exe/bundle_ruby +4 -3
  6. data/lib/bundler.rb +47 -37
  7. data/lib/bundler/build_metadata.rb +38 -0
  8. data/lib/bundler/capistrano.rb +5 -0
  9. data/lib/bundler/cli.rb +155 -67
  10. data/lib/bundler/cli/add.rb +0 -1
  11. data/lib/bundler/cli/binstubs.rb +9 -7
  12. data/lib/bundler/cli/cache.rb +5 -4
  13. data/lib/bundler/cli/check.rb +3 -5
  14. data/lib/bundler/cli/clean.rb +5 -6
  15. data/lib/bundler/cli/common.rb +11 -2
  16. data/lib/bundler/cli/config.rb +2 -1
  17. data/lib/bundler/cli/console.rb +2 -1
  18. data/lib/bundler/cli/doctor.rb +1 -0
  19. data/lib/bundler/cli/exec.rb +2 -1
  20. data/lib/bundler/cli/gem.rb +3 -2
  21. data/lib/bundler/cli/info.rb +0 -1
  22. data/lib/bundler/cli/init.rb +17 -6
  23. data/lib/bundler/cli/inject.rb +1 -0
  24. data/lib/bundler/cli/install.rb +61 -61
  25. data/lib/bundler/cli/issue.rb +1 -1
  26. data/lib/bundler/cli/list.rb +22 -0
  27. data/lib/bundler/cli/lock.rb +0 -1
  28. data/lib/bundler/cli/open.rb +2 -2
  29. data/lib/bundler/cli/outdated.rb +13 -8
  30. data/lib/bundler/cli/package.rb +9 -6
  31. data/lib/bundler/cli/platform.rb +1 -0
  32. data/lib/bundler/cli/plugin.rb +1 -0
  33. data/lib/bundler/cli/pristine.rb +9 -2
  34. data/lib/bundler/cli/show.rb +0 -1
  35. data/lib/bundler/cli/update.rb +31 -5
  36. data/lib/bundler/cli/viz.rb +1 -0
  37. data/lib/bundler/compact_index_client.rb +1 -0
  38. data/lib/bundler/compact_index_client/cache.rb +1 -0
  39. data/lib/bundler/compact_index_client/updater.rb +3 -2
  40. data/lib/bundler/compatibility_guard.rb +14 -0
  41. data/lib/bundler/constants.rb +1 -0
  42. data/lib/bundler/current_ruby.rb +5 -4
  43. data/lib/bundler/definition.rb +140 -95
  44. data/lib/bundler/dep_proxy.rb +2 -0
  45. data/lib/bundler/dependency.rb +6 -7
  46. data/lib/bundler/deployment.rb +1 -1
  47. data/lib/bundler/deprecate.rb +1 -0
  48. data/lib/bundler/dsl.rb +97 -62
  49. data/lib/bundler/endpoint_specification.rb +9 -0
  50. data/lib/bundler/env.rb +63 -27
  51. data/lib/bundler/environment_preserver.rb +26 -6
  52. data/lib/bundler/errors.rb +1 -0
  53. data/lib/bundler/feature_flag.rb +39 -4
  54. data/lib/bundler/fetcher.rb +15 -8
  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 +1 -0
  58. data/lib/bundler/fetcher/downloader.rb +1 -0
  59. data/lib/bundler/fetcher/index.rb +1 -0
  60. data/lib/bundler/friendly_errors.rb +2 -1
  61. data/lib/bundler/gem_helper.rb +14 -9
  62. data/lib/bundler/gem_helpers.rb +1 -0
  63. data/lib/bundler/gem_remote_fetcher.rb +1 -0
  64. data/lib/bundler/gem_tasks.rb +1 -0
  65. data/lib/bundler/gem_version_promoter.rb +1 -0
  66. data/lib/bundler/gemdeps.rb +1 -0
  67. data/lib/bundler/graph.rb +1 -0
  68. data/lib/bundler/index.rb +15 -8
  69. data/lib/bundler/injector.rb +25 -22
  70. data/lib/bundler/inline.rb +5 -7
  71. data/lib/bundler/installer.rb +93 -45
  72. data/lib/bundler/installer/gem_installer.rb +2 -0
  73. data/lib/bundler/installer/parallel_installer.rb +73 -42
  74. data/lib/bundler/installer/standalone.rb +1 -0
  75. data/lib/bundler/lazy_specification.rb +2 -1
  76. data/lib/bundler/lockfile_generator.rb +95 -0
  77. data/lib/bundler/lockfile_parser.rb +10 -4
  78. data/lib/bundler/match_platform.rb +1 -0
  79. data/lib/bundler/mirror.rb +6 -3
  80. data/lib/bundler/plugin.rb +1 -0
  81. data/lib/bundler/plugin/api/source.rb +8 -0
  82. data/lib/bundler/plugin/installer.rb +7 -6
  83. data/lib/bundler/plugin/source_list.rb +7 -8
  84. data/lib/bundler/process_lock.rb +24 -0
  85. data/lib/bundler/psyched_yaml.rb +1 -0
  86. data/lib/bundler/remote_specification.rb +1 -0
  87. data/lib/bundler/resolver.rb +138 -191
  88. data/lib/bundler/resolver/spec_group.rb +111 -0
  89. data/lib/bundler/retry.rb +1 -0
  90. data/lib/bundler/ruby_dsl.rb +1 -0
  91. data/lib/bundler/ruby_version.rb +1 -0
  92. data/lib/bundler/rubygems_ext.rb +5 -4
  93. data/lib/bundler/rubygems_gem_installer.rb +23 -0
  94. data/lib/bundler/rubygems_integration.rb +56 -27
  95. data/lib/bundler/runtime.rb +3 -5
  96. data/lib/bundler/settings.rb +177 -76
  97. data/lib/bundler/settings/validator.rb +79 -0
  98. data/lib/bundler/setup.rb +1 -0
  99. data/lib/bundler/shared_helpers.rb +86 -26
  100. data/lib/bundler/similarity_detector.rb +1 -0
  101. data/lib/bundler/source.rb +32 -0
  102. data/lib/bundler/source/gemspec.rb +1 -0
  103. data/lib/bundler/source/git.rb +21 -16
  104. data/lib/bundler/source/git/git_proxy.rb +14 -10
  105. data/lib/bundler/source/metadata.rb +63 -0
  106. data/lib/bundler/source/path.rb +8 -8
  107. data/lib/bundler/source/path/installer.rb +2 -0
  108. data/lib/bundler/source/rubygems.rb +131 -84
  109. data/lib/bundler/source/rubygems/remote.rb +3 -0
  110. data/lib/bundler/source_list.rb +75 -15
  111. data/lib/bundler/spec_set.rb +2 -1
  112. data/lib/bundler/ssl_certs/certificate_manager.rb +2 -1
  113. data/lib/bundler/stub_specification.rb +1 -0
  114. data/lib/bundler/templates/Executable +4 -0
  115. data/lib/bundler/templates/Executable.bundler +105 -0
  116. data/lib/bundler/templates/Gemfile +1 -0
  117. data/lib/bundler/templates/gems.rb +8 -0
  118. data/lib/bundler/templates/newgem/README.md.tt +1 -1
  119. data/lib/bundler/templates/newgem/gitignore.tt +0 -1
  120. data/lib/bundler/templates/newgem/newgem.gemspec.tt +4 -1
  121. data/lib/bundler/templates/newgem/rspec.tt +1 -0
  122. data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +0 -2
  123. data/lib/bundler/ui.rb +1 -0
  124. data/lib/bundler/ui/rg_proxy.rb +1 -0
  125. data/lib/bundler/ui/shell.rb +15 -4
  126. data/lib/bundler/ui/silent.rb +1 -0
  127. data/lib/bundler/uri_credentials_filter.rb +1 -0
  128. data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1638 -0
  129. data/lib/bundler/vendor/molinillo/lib/molinillo.rb +2 -0
  130. data/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +26 -0
  131. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
  132. data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
  133. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +3 -2
  134. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
  135. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -0
  136. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -0
  137. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -0
  138. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -0
  139. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +1 -0
  140. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -0
  141. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -0
  142. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +3 -2
  143. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +69 -6
  144. data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +2 -1
  145. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
  146. data/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +3 -1
  147. data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +487 -148
  148. data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +1 -0
  149. data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +8 -4
  150. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
  151. data/lib/bundler/vendored_fileutils.rb +9 -0
  152. data/lib/bundler/vendored_molinillo.rb +1 -0
  153. data/lib/bundler/vendored_persistent.rb +34 -0
  154. data/lib/bundler/vendored_thor.rb +1 -0
  155. data/lib/bundler/version.rb +6 -2
  156. data/lib/bundler/version_ranges.rb +1 -0
  157. data/lib/bundler/vlad.rb +5 -0
  158. data/lib/bundler/worker.rb +1 -0
  159. data/lib/bundler/yaml_serializer.rb +3 -3
  160. data/man/bundle-add.1 +43 -0
  161. data/man/bundle-add.1.txt +40 -0
  162. data/man/bundle-binstubs.1 +40 -0
  163. data/man/bundle-binstubs.1.txt +48 -0
  164. data/man/bundle-binstubs.ronn +14 -0
  165. data/man/bundle-check.1 +31 -0
  166. data/man/bundle-check.1.txt +32 -0
  167. data/man/bundle-clean.1 +24 -0
  168. data/man/bundle-clean.1.txt +26 -0
  169. data/man/bundle-config.1 +455 -0
  170. data/man/bundle-config.1.txt +491 -0
  171. data/man/bundle-config.ronn +133 -79
  172. data/man/bundle-exec.1 +165 -0
  173. data/man/bundle-exec.1.txt +178 -0
  174. data/man/bundle-exec.ronn +7 -0
  175. data/man/bundle-gem.1 +80 -0
  176. data/man/bundle-gem.1.txt +91 -0
  177. data/man/bundle-gem.ronn +2 -1
  178. data/man/bundle-info.1 +20 -0
  179. data/man/bundle-info.1.txt +21 -0
  180. data/man/bundle-init.1 +20 -0
  181. data/man/bundle-init.1.txt +24 -0
  182. data/man/bundle-inject.1 +33 -0
  183. data/man/bundle-inject.1.txt +32 -0
  184. data/man/bundle-install.1 +305 -0
  185. data/man/bundle-install.1.txt +385 -0
  186. data/man/bundle-install.ronn +32 -32
  187. data/man/bundle-list.1 +20 -0
  188. data/man/bundle-list.1.txt +21 -0
  189. data/man/bundle-list.ronn +15 -0
  190. data/man/bundle-lock.1 +84 -0
  191. data/man/bundle-lock.1.txt +93 -0
  192. data/man/bundle-open.1 +32 -0
  193. data/man/bundle-open.1.txt +29 -0
  194. data/man/bundle-outdated.1 +151 -0
  195. data/man/bundle-outdated.1.txt +127 -0
  196. data/man/bundle-outdated.ronn +1 -1
  197. data/man/bundle-package.1 +55 -0
  198. data/man/bundle-package.1.txt +79 -0
  199. data/man/bundle-package.ronn +5 -0
  200. data/man/bundle-platform.1 +61 -0
  201. data/man/bundle-platform.1.txt +57 -0
  202. data/man/bundle-pristine.1 +34 -0
  203. data/man/bundle-pristine.1.txt +44 -0
  204. data/man/bundle-pristine.ronn +24 -3
  205. data/man/bundle-show.1 +23 -0
  206. data/man/bundle-show.1.txt +25 -0
  207. data/man/bundle-update.1 +390 -0
  208. data/man/bundle-update.1.txt +386 -0
  209. data/man/bundle-update.ronn +2 -2
  210. data/man/bundle-viz.1 +39 -0
  211. data/man/bundle-viz.1.txt +38 -0
  212. data/man/bundle-viz.ronn +5 -5
  213. data/man/bundle.1 +132 -0
  214. data/man/bundle.1.txt +113 -0
  215. data/man/bundle.ronn +5 -2
  216. data/man/gemfile.5 +679 -0
  217. data/man/gemfile.5.ronn +31 -0
  218. data/man/gemfile.5.txt +636 -0
  219. data/man/index.txt +23 -0
  220. metadata +21 -36
  221. data/.codeclimate.yml +0 -25
  222. data/.gitignore +0 -18
  223. data/.rspec +0 -3
  224. data/.rubocop.yml +0 -131
  225. data/.rubocop_todo.yml +0 -418
  226. data/.travis.yml +0 -122
  227. data/CODE_OF_CONDUCT.md +0 -42
  228. data/CONTRIBUTING.md +0 -17
  229. data/Rakefile +0 -338
  230. data/bin/rake +0 -19
  231. data/bin/rspec +0 -15
  232. data/bin/rubocop +0 -17
  233. data/bin/with_rubygems +0 -39
  234. data/bundler.gemspec +0 -48
  235. data/doc/README.md +0 -30
  236. data/doc/TROUBLESHOOTING.md +0 -64
  237. data/doc/contributing/BUG_TRIAGE.md +0 -36
  238. data/doc/contributing/COMMUNITY.md +0 -13
  239. data/doc/contributing/GETTING_HELP.md +0 -11
  240. data/doc/contributing/HOW_YOU_CAN_HELP.md +0 -27
  241. data/doc/contributing/ISSUES.md +0 -51
  242. data/doc/contributing/README.md +0 -38
  243. data/doc/development/NEW_FEATURES.md +0 -10
  244. data/doc/development/PULL_REQUESTS.md +0 -40
  245. data/doc/development/README.md +0 -19
  246. data/doc/development/RELEASING.md +0 -9
  247. data/doc/development/SETUP.md +0 -27
  248. data/doc/documentation/README.md +0 -29
  249. data/doc/documentation/VISION.md +0 -26
  250. data/doc/documentation/WRITING.md +0 -54
  251. data/task/release.rake +0 -116
@@ -1,122 +0,0 @@
1
- language: ruby
2
- script: rake spec:travis
3
- before_script:
4
- - travis_retry rake spec:travis:deps
5
- - travis_retry rake man:build
6
- - travis_retry rake spec:rubygems:clone_rubygems_$RGV
7
-
8
- branches:
9
- only:
10
- - master
11
- - auto
12
- - /.+-dev$/
13
- - /.+-stable$/
14
-
15
- notifications:
16
- slack:
17
- on_success: change
18
- on_failure: always
19
- rooms:
20
- - secure: JxBi7DDJGkIF/7f/FSN/HUHpvV4EKfQccZHTPd1b2pNJn3GXo6u+tNVbAw2WjxYzPyPQI3ZcYBCU9SEXp/i7VmG8uMzh8Kyildw+miSKYKVb90uYqcsXWzbxwyNBgJLvyDkzST45H5lgnyAicee3WkFes/WDZikIajbH7ztdb04=
21
-
22
- addons:
23
- code_climate:
24
- repo_token:
25
- secure: "TrzIv116JLGUxm6PAUskCYrv8KTDguncKROVwbnjVPKTGDAgoDderd8JUdDEXrKoZ9qGLD2TPYKExt9/QDl71E+qHdWnVqWv4HKCUk2P9z/VLKzHuggOUBkCXiJUhjywUieCJhI3N92bfq2EjSBbu2/OFHqWOjLQ+QCooTEBjv8="
26
-
27
- rvm:
28
- - 2.4.1
29
- - 2.3.4
30
- - 2.2.7
31
- - 2.1.10
32
- - 2.0.0
33
- - 1.9.3
34
- - 1.8.7
35
-
36
- # Rubygems versions MUST be available as rake tasks
37
- # see Rakefile:125 for the list of possible RGV values
38
- env:
39
- # We need to know if changes to rubygems will break bundler on release
40
- - RGV=master
41
- # Test the latest rubygems release with all of our supported rubies
42
- - RGV=v2.6.8
43
-
44
- matrix:
45
- include:
46
- # Ruby 2.4, Rubygems 2.6.8 and up
47
- # Ruby 2.3, Rubygems 2.5.1 and up
48
- - rvm: 2.2.6
49
- env: RGV=v2.5.2
50
- # Ruby 2.2, Rubygems 2.4.5 and up
51
- - rvm: 2.2.6
52
- env: RGV=v2.4.8
53
- # Ruby 2.1, Rubygems 2.2.2 and up
54
- - rvm: 2.1.10
55
- env: RGV=v2.2.5
56
- # Ruby 2.0.0, Rubygems 2.0.0 and up
57
- - rvm: 2.0.0
58
- env: RGV=v2.2.5
59
- - rvm: 2.0.0
60
- env: RGV=v2.1.11
61
- - rvm: 2.0.0
62
- env: RGV=v2.0.14
63
- # Ruby 1.9.3, Rubygems 1.5.3 and up
64
- - rvm: 1.9.3
65
- env: RGV=v2.2.5
66
- - rvm: 1.9.3
67
- env: RGV=v2.1.11
68
- - rvm: 1.9.3
69
- env: RGV=v2.0.14
70
- - rvm: 1.9.3
71
- env: RGV=v1.8.29
72
- - rvm: 1.9.3
73
- env: RGV=v1.7.2
74
- - rvm: 1.9.3
75
- env: RGV=v1.6.2
76
- - rvm: 1.9.3
77
- env: RGV=v1.5.3
78
-
79
- # Ruby 1.8.7, Rubygems 1.3.6 and up
80
- - rvm: 1.8.7
81
- env: RGV=v2.2.5
82
- # ALLOWED FAILURES
83
- # since the great Travis image outage, frequent random segfaults :'(
84
- - rvm: 1.8.7
85
- env: RGV=v2.0.14
86
- - rvm: 1.8.7
87
- env: RGV=v1.8.29
88
- - rvm: 1.8.7
89
- env: RGV=v1.7.2
90
- - rvm: 1.8.7
91
- env: RGV=v1.6.2
92
- - rvm: 1.8.7
93
- env: RGV=v1.5.3
94
- - rvm: 1.8.7
95
- env: RGV=v1.4.2
96
- - rvm: 1.8.7
97
- env: RGV=v1.3.7
98
- - rvm: 1.8.7
99
- env: RGV=v1.3.6
100
- # Ruby-head (we want to know how we're doing, but not fail the build)
101
- - rvm: ruby-head
102
- env: RGV=master
103
-
104
- allow_failures:
105
- - rvm: 1.8.7
106
- env: RGV=v2.0.14
107
- - rvm: 1.8.7
108
- env: RGV=v1.8.29
109
- - rvm: 1.8.7
110
- env: RGV=v1.7.2
111
- - rvm: 1.8.7
112
- env: RGV=v1.6.2
113
- - rvm: 1.8.7
114
- env: RGV=v1.5.3
115
- - rvm: 1.8.7
116
- env: RGV=v1.4.2
117
- - rvm: 1.8.7
118
- env: RGV=v1.3.7
119
- - rvm: 1.8.7
120
- env: RGV=v1.3.6
121
- - rvm: ruby-head
122
- env: RGV=master
@@ -1,42 +0,0 @@
1
- # Bundler Code of Conduct
2
-
3
- The Bundler project strongly values contributors from anywhere, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, physical appearance, body size, race, ethnicity, age, religion, or nationality. As a result, the Bundler team has agreed to and enforces this code of conduct in order to provide a harassment-free experience for everyone who participates in the development of Bundler.
4
-
5
- ### Summary
6
-
7
- Harassment in code and discussion or violation of physical boundaries is completely unacceptable anywhere in the Bundler project’s codebases, issue trackers, chat rooms, mailing lists, meetups, and any other events. Violators will be warned and then blocked or banned by the core team at or before the 3rd violation.
8
-
9
- ### In detail
10
-
11
- Harassment includes offensive verbal comments related to level of experience, gender, gender identity and expression, sexual orientation, disability, physical appearance, body size, race, ethnicity, age, religion, nationality, the use of sexualized language or imagery, deliberate intimidation, stalking, sustained disruption, and unwelcome sexual attention.
12
-
13
- Individuals asked to stop any harassing behavior are expected to comply immediately.
14
-
15
- Maintainers, including the core team, are also subject to the anti-harassment policy.
16
-
17
- If anyone engages in abusive, harassing, or otherwise unacceptable behavior, including maintainers, we may take appropriate action, up to and including warning the offender, deletion of comments, removal from the project’s codebase and communication systems, and escalation to GitHub support.
18
-
19
- If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of [the core team](http://bundler.io/contributors.html) or [email the core team](mailto:team@bundler.io) immediately.
20
-
21
- We expect everyone to follow these rules anywhere in the Bundler project’s codebases, issue trackers, IRC channel, group chat, and mailing lists.
22
-
23
- This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.
24
-
25
- Finally, don't forget that it is human to make mistakes! We all do. Let’s work together to help each other, resolve issues, and learn from the mistakes that we will all inevitably make from time to time.
26
-
27
-
28
- ### Thanks
29
-
30
- Thanks to the [JSConf Code of Conduct](http://jsconf.com/codeofconduct.html) and [Fedora Code of Conduct](http://fedoraproject.org/code-of-conduct) for inspiration and ideas. Additional thanks to [Contributor Covenant](http://contributor-covenant.org) for the [default code of conduct](https://github.com/bundler/bundler/blob/master/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt) included in generated gems.
31
-
32
-
33
- ### License
34
-
35
- <p class="license" xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#">
36
- To the extent possible under law, <a rel="dct:publisher" href="http://bundler.io">The Bundler Team</a> has waived all copyright and related or neighboring rights to the <span property="dct:title">Bundler Code of Conduct</span>. This work is published from the <span property="vcard:Country" datatype="dct:ISO3166" content="US" about="http://bundler.io">United States.</span>
37
- <br>
38
- <br>
39
- <a rel="license" href="http://creativecommons.org/publicdomain/zero/1.0/">
40
- <img src="http://i.creativecommons.org/p/zero/1.0/88x31.png" style="border-style: none;" alt="CC0">
41
- </a>
42
- </p>
@@ -1,17 +0,0 @@
1
- # Contributing to Bundler
2
-
3
- Welcome to Bundler! We are so happy that you're here. We know it can be daunting to joining a new open source project, so here's a quick overview of what you can expect from this documentation.
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
- ## Quick start
8
-
9
- Some guides you might find useful:
10
-
11
- * [Submitting pull requests](doc/development/PULL_REQUESTS.md)
12
- * [Filing an issue](doc/contributing/ISSUES.md)
13
- * [Bug triage](doc/contributing/BUG_TRIAGE.md)
14
-
15
- ## Comprehensive guides
16
-
17
- Not finding what you're looking for? More comprehensive guides are [available here](doc/README.md).
data/Rakefile DELETED
@@ -1,338 +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("net-http-persistent") do |lib|
303
- lib.download = { :github => "https://github.com/drbrain/net-http-persistent" }
304
- lib.namespace = "Net::HTTP::Persistent"
305
- lib.prefix = "Bundler::Persistent"
306
- lib.vendor_lib = "lib/bundler/vendor/net-http-persistent"
307
-
308
- mixin = Module.new do
309
- def namespace_files
310
- super
311
- require_target = vendor_lib.sub(%r{^(.+?/)?lib/}, "") << "/lib"
312
- relative_files = files.map {|f| Pathname.new(f).relative_path_from(Pathname.new(vendor_lib) / "lib").sub_ext("").to_s }
313
- process_files(/require (['"])(#{Regexp.union(relative_files)})/, "require \\1#{require_target}/\\2")
314
- end
315
- end
316
- lib.send(:extend, mixin)
317
- end
318
- rescue LoadError
319
- namespace :vendor do
320
- task(:molinillo) { abort "Install the automatiek gem to be able to vendor gems." }
321
- task(:thor) { abort "Install the automatiek gem to be able to vendor gems." }
322
- task("net-http-persistent") { abort "Install the automatiek gem to be able to vendor gems." }
323
- end
324
- end
325
-
326
- desc "Update vendored SSL certs to match the certs vendored by Rubygems"
327
- task :update_certs => "spec:rubygems:clone_rubygems_master" do
328
- require "bundler/ssl_certs/certificate_manager"
329
- Bundler::SSLCerts::CertificateManager.update_from!(RUBYGEMS_REPO)
330
- end
331
-
332
- require "bundler/gem_tasks"
333
- task :build => ["man:build"]
334
- task :release => ["man:require", "man:build"]
335
-
336
- task :default => :spec
337
-
338
- Dir["task/*.{rb,rake}"].each(&method(:load))