rubygems-update 2.6.8 → 2.6.9

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

Potentially problematic release.


This version of rubygems-update might be problematic. Click here for more details.

Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +9 -6
  3. data/CODE_OF_CONDUCT.md +36 -33
  4. data/History.txt +16 -0
  5. data/Manifest.txt +5 -3
  6. data/Rakefile +5 -0
  7. data/bundler/CHANGELOG.md +72 -0
  8. data/bundler/DEVELOPMENT.md +2 -2
  9. data/bundler/README.md +5 -0
  10. data/bundler/lib/bundler.rb +1 -1
  11. data/bundler/lib/bundler/cli.rb +42 -29
  12. data/bundler/lib/bundler/cli/common.rb +17 -0
  13. data/bundler/lib/bundler/cli/exec.rb +6 -0
  14. data/bundler/lib/bundler/cli/gem.rb +16 -3
  15. data/bundler/lib/bundler/cli/install.rb +7 -20
  16. data/bundler/lib/bundler/cli/lock.rb +1 -1
  17. data/bundler/lib/bundler/cli/open.rb +2 -1
  18. data/bundler/lib/bundler/cli/outdated.rb +91 -43
  19. data/bundler/lib/bundler/cli/update.rb +3 -10
  20. data/bundler/lib/bundler/compact_index_client.rb +7 -1
  21. data/bundler/lib/bundler/current_ruby.rb +1 -0
  22. data/bundler/lib/bundler/definition.rb +9 -5
  23. data/bundler/lib/bundler/dependency.rb +12 -0
  24. data/bundler/lib/bundler/env.rb +25 -20
  25. data/bundler/lib/bundler/errors.rb +21 -0
  26. data/bundler/lib/bundler/fetcher.rb +2 -2
  27. data/bundler/lib/bundler/fetcher/compact_index.rb +15 -3
  28. data/bundler/lib/bundler/friendly_errors.rb +23 -7
  29. data/bundler/lib/bundler/index.rb +9 -4
  30. data/bundler/lib/bundler/inline.rb +1 -1
  31. data/bundler/lib/bundler/installer.rb +1 -1
  32. data/bundler/lib/bundler/installer/gem_installer.rb +2 -2
  33. data/bundler/lib/bundler/installer/parallel_installer.rb +40 -9
  34. data/bundler/lib/bundler/lockfile_parser.rb +0 -1
  35. data/bundler/lib/bundler/match_platform.rb +12 -4
  36. data/bundler/lib/bundler/plugin/api.rb +2 -1
  37. data/bundler/lib/bundler/plugin/api/source.rb +1 -1
  38. data/bundler/lib/bundler/postit_trampoline.rb +3 -3
  39. data/bundler/lib/bundler/resolver.rb +6 -1
  40. data/bundler/lib/bundler/retry.rb +4 -1
  41. data/bundler/lib/bundler/rubygems_gem_installer.rb +18 -6
  42. data/bundler/lib/bundler/rubygems_integration.rb +16 -3
  43. data/bundler/lib/bundler/settings.rb +8 -3
  44. data/bundler/lib/bundler/shared_helpers.rb +15 -12
  45. data/bundler/lib/bundler/source.rb +4 -0
  46. data/bundler/lib/bundler/source/git/git_proxy.rb +2 -1
  47. data/bundler/lib/bundler/source/rubygems.rb +9 -0
  48. data/bundler/lib/bundler/spec_set.rb +4 -0
  49. data/bundler/lib/bundler/templates/newgem/gitignore.tt +5 -0
  50. data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +1 -1
  51. data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +10 -1
  52. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +10 -1
  53. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +1 -1
  54. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -2
  55. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -2
  56. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +62 -0
  57. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +10 -3
  58. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +12 -1
  59. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -2
  60. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
  61. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +2 -0
  62. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  63. data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +27 -19
  64. data/bundler/lib/bundler/vendor/{net → net-http-persistent/lib/net}/http/faster.rb +1 -0
  65. data/bundler/lib/bundler/vendor/{net → net-http-persistent/lib/net}/http/persistent.rb +24 -23
  66. data/bundler/lib/bundler/vendor/{net → net-http-persistent/lib/net}/http/persistent/ssl_reuse.rb +2 -1
  67. data/bundler/lib/bundler/vendored_persistent.rb +9 -4
  68. data/bundler/lib/bundler/version.rb +1 -1
  69. data/bundler/lib/bundler/worker.rb +27 -5
  70. data/bundler/man/bundle-config.ronn +28 -1
  71. data/bundler/man/bundle-install.ronn +1 -1
  72. data/bundler/man/bundle-lock.ronn +47 -0
  73. data/bundler/man/bundle-outdated.ronn +107 -0
  74. data/bundler/man/bundle-update.ronn +152 -3
  75. data/bundler/man/bundle.ronn +22 -4
  76. data/bundler/man/gemfile.5.ronn +16 -0
  77. data/lib/rubygems.rb +1 -1
  78. data/lib/rubygems/ext/ext_conf_builder.rb +5 -3
  79. data/lib/rubygems/ext/rake_builder.rb +1 -1
  80. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +3 -1
  81. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +9 -2
  82. data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +2 -0
  83. data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
  84. data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +17 -17
  85. data/lib/rubygems/server.rb +11 -4
  86. data/lib/rubygems/stub_specification.rb +6 -1
  87. data/lib/rubygems/version.rb +6 -2
  88. data/test/rubygems/test_gem.rb +2 -0
  89. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +23 -0
  90. data/test/rubygems/test_gem_ext_rake_builder.rb +34 -17
  91. data/test/rubygems/test_gem_server.rb +16 -0
  92. data/test/rubygems/test_gem_specification.rb +1 -1
  93. data/test/rubygems/test_gem_stub_specification.rb +61 -0
  94. data/test/rubygems/test_gem_version.rb +6 -0
  95. data/util/ci +5 -5
  96. metadata +31 -29
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a8082ce6742459dfd41daaa9e9db86de202e0d00
4
- data.tar.gz: 624be9cee606a2b69eecf9cbdcb1bb4daab38570
3
+ metadata.gz: 9d1a4ca66cd03805742065a7bbad9c35422a5a83
4
+ data.tar.gz: 38e0d105858401e7ad579a0bf0cd7d35d518ea7e
5
5
  SHA512:
6
- metadata.gz: 77e2d16b0f65465870f2299c00df2386c9e4a3b46a86a9d4abefb4ad574f7c4055226bbfed856866d97d1f128faff5c4ae4133a01f3ae63e359823497fed303d
7
- data.tar.gz: 2ce00b6e68e28a69cfa1aa688787dc695cdd6d6504570a241a1b13f49a0a48ebfe85dafdd6cea49231a73431239df8be0e6666f77a9b4747495391d34274987f
6
+ metadata.gz: 264fa28a5d14c9cc66c27e7d53da86f75285f5d92d50b4d55e61c3e0c3b9b4449c6e76d6a15c072bb0e40e003807edda1c7c3383ae596a3450456151bcf5dc7f
7
+ data.tar.gz: c1bbb7c5cb00137913e9ae140c05d6fc430f6ffb5ebb5e88baddeafad58136de417a5457ea57100734c66e9475e51f099c93affbab9eeb2379ebdc684f62702b
@@ -8,16 +8,17 @@ branches:
8
8
  only:
9
9
  - master
10
10
  - auto
11
- - /[\d.]+/
11
+ - /^[\d.]+$/
12
12
  - /.+-stable$/
13
13
  rvm:
14
14
  - 1.8.7
15
15
  - 1.9.2
16
16
  - 1.9.3
17
17
  - 2.0.0
18
- - 2.1.7
19
- - 2.2.3
20
- - 2.3.1
18
+ - 2.1.10
19
+ - 2.2.6
20
+ - 2.3.3
21
+ - 2.4.0
21
22
  - ruby-head
22
23
  env:
23
24
  - "TEST_TOOL=rubygems YAML=syck"
@@ -35,9 +36,11 @@ matrix:
35
36
  env: "TEST_TOOL=rubygems YAML=syck"
36
37
  - rvm: 2.1.7
37
38
  env: "TEST_TOOL=rubygems YAML=syck"
38
- - rvm: 2.2.3
39
+ - rvm: 2.2.6
39
40
  env: "TEST_TOOL=rubygems YAML=syck"
40
- - rvm: 2.3.1
41
+ - rvm: 2.3.3
42
+ env: "TEST_TOOL=rubygems YAML=syck"
43
+ - rvm: 2.4.0
41
44
  env: "TEST_TOOL=rubygems YAML=syck"
42
45
  - rvm: ruby-head
43
46
  env: "TEST_TOOL=rubygems YAML=syck"
@@ -1,40 +1,43 @@
1
1
  # Contributor Code of Conduct
2
2
 
3
- As contributors and maintainers of this project, and in the interest of
4
- fostering an open and welcoming community, we pledge to respect all people who
5
- contribute through reporting issues, posting feature requests, updating
6
- documentation, submitting pull requests or patches, and other activities.
3
+ ### Our Pledge
7
4
 
8
- We are committed to making participation in this project a harassment-free
9
- experience for everyone, regardless of level of experience, gender, gender
10
- identity and expression, sexual orientation, disability, personal appearance,
11
- body size, race, ethnicity, age, religion, or nationality.
5
+ In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+
7
+ ### Our Standards
8
+
9
+ Examples of behavior that contributes to creating a positive environment include:
10
+
11
+ * Using welcoming and inclusive language
12
+ * Being respectful of differing viewpoints and experiences
13
+ * Gracefully accepting constructive criticism
14
+ * Focusing on what is best for the community
15
+ * Showing empathy towards other community members
12
16
 
13
17
  Examples of unacceptable behavior by participants include:
14
18
 
15
- * The use of sexualized language or imagery
16
- * Personal attacks
17
- * Trolling or insulting/derogatory comments
19
+ * The use of sexualized language or imagery and unwelcome sexual attention or advances
20
+ * Trolling, insulting/derogatory comments, and personal or political attacks
18
21
  * Public or private harassment
19
- * Publishing other's private information, such as physical or electronic
20
- addresses, without explicit permission
21
- * Other unethical or unprofessional conduct.
22
-
23
- Project maintainers have the right and responsibility to remove, edit, or
24
- reject comments, commits, code, wiki edits, issues, and other contributions
25
- that are not aligned to this Code of Conduct. By adopting this Code of Conduct,
26
- project maintainers commit themselves to fairly and consistently applying these
27
- principles to every aspect of managing this project. Project maintainers who do
28
- not follow or enforce the Code of Conduct may be permanently removed from the
29
- project team.
30
-
31
- This code of conduct applies both within project spaces and in public spaces
32
- when an individual is representing the project or its community.
33
-
34
- Instances of abusive, harassing, or otherwise unacceptable behavior may be
35
- reported by opening an issue or contacting one or more of the [project
36
- maintainers](MAINTAINERS.txt).
37
-
38
- This Code of Conduct is adapted from the [Contributor
39
- Covenant](http://contributor-covenant.org), version 1.2.0, available at
40
- [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
22
+ * Publishing others' private information, such as a physical or electronic address, without explicit permission
23
+ * Other conduct which could reasonably be considered inappropriate in a professional setting
24
+
25
+ ### Our Responsibilities
26
+
27
+ Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28
+
29
+ Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30
+
31
+ ### Scope
32
+
33
+ This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34
+
35
+ ### Enforcement
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the [project team](MAINTAINERS.txt). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38
+
39
+ Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40
+
41
+ ### Attribution
42
+
43
+ This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4.
@@ -1,5 +1,21 @@
1
1
  # coding: UTF-8
2
2
 
3
+ === 2.6.9 / 2017-01-20
4
+
5
+ Bug fixes:
6
+
7
+ * Allow initializing versions with empty strings. Pull request #1767 by
8
+ Luis Sagastume.
9
+ * Fix TypeError on 2.4. Pull request #1788 by Nobuyoshi Nakada.
10
+ * Don't output mkmf.log message if compilation didn't fail. Pull request
11
+ #1808 by Jeremy Evans.
12
+ * Fixed broken links and overzealous URL encoding in gem server. Pull
13
+ request #1809 by Nicole Orchard.
14
+ * Update vendored Molinillo to 0.5.5. Pull request #1812 by Samuel
15
+ Giddins.
16
+ * RakeBuilder: avoid frozen string issue. Pull request #1819 by Olle
17
+ Jonsson.
18
+
3
19
  === 2.6.8 / 2016-10-29
4
20
 
5
21
  Bug fixes:
@@ -170,6 +170,7 @@ bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb
170
170
  bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb
171
171
  bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb
172
172
  bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
173
+ bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb
173
174
  bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb
174
175
  bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb
175
176
  bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb
@@ -182,9 +183,9 @@ bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
182
183
  bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb
183
184
  bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb
184
185
  bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb
185
- bundler/lib/bundler/vendor/net/http/faster.rb
186
- bundler/lib/bundler/vendor/net/http/persistent.rb
187
- bundler/lib/bundler/vendor/net/http/persistent/ssl_reuse.rb
186
+ bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb
187
+ bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
188
+ bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb
188
189
  bundler/lib/bundler/vendor/postit/lib/postit.rb
189
190
  bundler/lib/bundler/vendor/postit/lib/postit/environment.rb
190
191
  bundler/lib/bundler/vendor/postit/lib/postit/installer.rb
@@ -236,6 +237,7 @@ bundler/man/bundle-exec.ronn
236
237
  bundler/man/bundle-gem.ronn
237
238
  bundler/man/bundle-install.ronn
238
239
  bundler/man/bundle-lock.ronn
240
+ bundler/man/bundle-outdated.ronn
239
241
  bundler/man/bundle-package.ronn
240
242
  bundler/man/bundle-platform.ronn
241
243
  bundler/man/bundle-update.ronn
data/Rakefile CHANGED
@@ -15,6 +15,11 @@ end
15
15
 
16
16
  begin
17
17
  require 'hoe'
18
+ rescue Gem::ConflictError => e
19
+ abort <<-ERR
20
+ Error while loading the hoe gem.
21
+ #{e}
22
+ ERR
18
23
  rescue ::LoadError
19
24
  abort <<-ERR
20
25
  Error while loading the hoe gem.
@@ -1,3 +1,75 @@
1
+ ## 1.14.0.pre.2 (2016-01-11)
2
+
3
+ Bugfixes:
4
+
5
+ - allow not selecting a gem when running `bundle open` (#5301, @segiddins)
6
+ - support installing gems from git branches that contain shell metacharacters (#5295, @segiddins)
7
+ - fix a resolver error that could leave dependencies unresolved (#5294, @segiddins)
8
+ - fix a stack overflow error when invoking commands (#5296, @segiddins)
9
+
10
+ ## 1.14.0.pre.1 (2016-12-xx)
11
+
12
+ Features:
13
+
14
+ - `bundle doctor` first runs `bundle check` (@segiddins)
15
+ - the bundler trampoline is automatically enabled when the target version is greater than bundler 2 (@segiddins)
16
+ - gem checksums returned by rubygems.org are validated when installing gems (#4464, @segiddins)
17
+ - use the git username as a github username when running `bundle gem` (@JuanitoFatas)
18
+ - show more context when the resolver conflicts on required ruby and rubygems versions (@segiddins)
19
+ - improve platform support by allowing bundler to pick the best platform match during dependency resolution, enabled with the `specific_platform` setting (#4295, #4896, @segiddins)
20
+ - always prompt the user for a password when using `sudo` (#3006, @segiddins)
21
+ - support running without a home directory (#4778, @segiddins)
22
+ - print a warning when the gemfile uses a platform conditional that will exclude the gem from all lockfile platforms (@segiddins)
23
+ - add the `force_ruby_platform` setting to force bundler to install ruby-platform gems, even on other platforms (#4813, @segiddins)
24
+ - add conservative update options to `bundle lock` (#4912, @chrismo)
25
+ - improve `bundle outdated` output to group gems by group (@ryanfox1985)
26
+ - add conservative update options to `bundle update` (#5065, #5076, @chrismo)
27
+ - print the output of `bundle env` as github-flavored markdown, making it easier to preserve formatting when copy-pasting into a new issue (@segiddins)
28
+ - configure the persistence file when using `bundle gem` with `rspec` (@segiddins)
29
+ - add support for the `ruby_25` gemfile filter (@amatsuda)
30
+ - when installing with a lockfile that is missing dependencies, allow installation to proceed (but without parallelism) (@segiddins)
31
+
32
+ Performance:
33
+
34
+ - improve `require "bundler"` performance by ~5x (@segiddins)
35
+ - allow install gems in parallel when running on rubygems 2+
36
+
37
+ Bugfixes:
38
+
39
+ - config files with CRLF line endings can be read (#4435, @segiddins)
40
+ - `bundle lock` activates gems for the current platform even if they were activated under a different platform for a separate dependency (#4896, @segiddins)
41
+ - running `bundle env` in a directory without a gemfile no longer crashes (@segiddins)
42
+ - fail gracefully when attempting to use a source with an unknown URI scheme (#4953, @segiddins)
43
+ - store paths in the lockfile relative to the root gemfile directory when using `eval_gemfile` (#4966, @segiddins)
44
+ - `bundle lock` will not update without the `--update` flag (#4957, @segiddins)
45
+ - the `console` binstub generated by `bundle gem` will load `.irbrc` files (@mattbrictson)
46
+ - print friendly filesystem access errors in the new index (@segiddins)
47
+ - print a helpful error when running out of memory on jruby (#4673, @segiddins)
48
+ - load all rubygems plugins when installing gems (#2824, @segiddins)
49
+ - `bundle clean --dry-run` prints the list of gems without the `--force` option when no path is set (#5027, @hmistry)
50
+ - local installs no longer print "this gem may have been yanked" (#5022, @hmistry)
51
+ - avoid leaking `which` output when running `bundle doctor` (@colby-swandale)
52
+ - print a warning when attempting to `bundle exec` an empty program (#5084, @bronzdoc)
53
+ - ensure `bundle outdated` lists all outdated gems (#4979, @chrismo)
54
+ - fail gracefully when attempting to `bundle gem` with an invalid constant name (#5185, @segiddins)
55
+ - allow `bundler/inline` to work in a directory that contains a gemfile (#5117, @colby-swandale)
56
+ - ensure that the new index is thread-safe, allowing installation on rbx (#5142, @segiddins)
57
+ - remove deprecated `rspec` syntax in `bundle gem` output (@gearnode)
58
+ - fail gracefully when any system error is encountered when touching the filesystem (#5134, @segiddins)
59
+ - fix compatibility with a machine running with FIPS mode enabled (#4989, @segiddins)
60
+ - fix `bundle lock --add-platform ruby` (#5230, @segiddins)
61
+ - print gem post-install messages when running `bundle update` (@smathy)
62
+ - ensure errors due to a retries are all separated by a newline (@segiddins)
63
+ - print out the bundle path in gem not found errors (#4854, @diegosteiner)
64
+ - fail gracefully when creating threads fails (@segiddins)
65
+ - avoid downloading metadata for gems that are only development dependencies (@Paxa)
66
+
67
+ ## 1.13.7 (2016-12-25)
68
+
69
+ Features:
70
+
71
+ - add support for the `ruby_24` gemfile filter (#5281, @amatsuda)
72
+
1
73
  ## 1.13.6 (2016-10-22)
2
74
 
3
75
  Bugfixes:
@@ -36,9 +36,9 @@ Bundler doesn't use a Gemfile to list development dependencies, because when we
36
36
 
37
37
  4. Set up a shell alias to run Bundler from your clone, e.g. a Bash alias:
38
38
 
39
- $ alias dbundle='BUNDLE_DISABLE_POSTIT=1 ruby -I /path/to/bundler/lib /path/to/bundler/exe/bundle'
39
+ $ alias dbundle='BUNDLE_TRAMPOLINE_DISABLE=1 ruby -I /path/to/bundler/lib /path/to/bundler/exe/bundle'
40
40
 
41
- The `BUNDLE_DISABLE_POSTIT` environment variable ensures that the version of Bundler in `/path/to/bundler/lib` will be used. Without that environment setting, Bundler will automatically download, install, and run the version of Bundler listed in `Gemfile.lock`. With that set up, you can test changes you've made to Bundler by running `dbundle`, without interfering with the regular `bundle` command.
41
+ The `BUNDLE_TRAMPOLINE_DISABLE` environment variable ensures that the version of Bundler in `/path/to/bundler/lib` will be used. Without that environment setting, Bundler will automatically download, install, and run the version of Bundler listed in `Gemfile.lock`. With that set up, you can test changes you've made to Bundler by running `dbundle`, without interfering with the regular `bundle` command.
42
42
 
43
43
  To dive into the code with Pry: `RUBYOPT=-rpry dbundle` to require pry and then run commands.
44
44
 
@@ -27,6 +27,11 @@ See [bundler.io](http://bundler.io) for the full documentation.
27
27
 
28
28
  For help with common problems, see [ISSUES](https://github.com/bundler/bundler/blob/master/ISSUES.md).
29
29
 
30
+ ### Supporting
31
+
32
+ <a href="https://rubytogether.org/"><img src="https://rubytogether.org/images/rubies.svg" width=200></a><br/>
33
+ Bundler is maintained by <a href="https://rubytogether.org/">Ruby Together</a>, a grassroots initiative committed to supporting the critical Ruby infrastructure you rely on. Contribute today <a href="https://rubytogether.org/developers">as an individual</a> or even better, <a href="https://rubytogether.org/companies">as a company</a>, and ensure that Bundler, RubyGems, and other shared tooling is around for years to come.
34
+
30
35
  ### Other questions
31
36
 
32
37
  To see what has changed in recent versions of Bundler, see the [CHANGELOG](https://github.com/bundler/bundler/blob/master/CHANGELOG.md).
@@ -7,7 +7,6 @@ require "tmpdir"
7
7
 
8
8
  require "bundler/errors"
9
9
  require "bundler/environment_preserver"
10
- require "bundler/gem_remote_fetcher"
11
10
  require "bundler/plugin"
12
11
  require "bundler/rubygems_ext"
13
12
  require "bundler/rubygems_integration"
@@ -32,6 +31,7 @@ module Bundler
32
31
  autoload :FeatureFlag, "bundler/feature_flag"
33
32
  autoload :GemHelper, "bundler/gem_helper"
34
33
  autoload :GemHelpers, "bundler/gem_helpers"
34
+ autoload :GemRemoteFetcher, "bundler/gem_remote_fetcher"
35
35
  autoload :GemVersionPromoter, "bundler/gem_version_promoter"
36
36
  autoload :Graph, "bundler/graph"
37
37
  autoload :Index, "bundler/index"
@@ -61,30 +61,21 @@ module Bundler
61
61
 
62
62
  def help(cli = nil)
63
63
  case cli
64
- when "gemfile" then command = "gemfile.5"
64
+ when "gemfile" then command = "gemfile"
65
65
  when nil then command = "bundle"
66
66
  else command = "bundle-#{cli}"
67
67
  end
68
68
 
69
- manpages = %w(
70
- bundle
71
- bundle-config
72
- bundle-exec
73
- bundle-gem
74
- bundle-install
75
- bundle-package
76
- bundle-update
77
- bundle-platform
78
- gemfile.5
79
- )
80
-
81
- if manpages.include?(command)
82
- root = File.expand_path("../man", __FILE__)
83
-
84
- if Bundler.which("man") && root !~ %r{^file:/.+!/META-INF/jruby.home/.+}
85
- Kernel.exec "man #{root}/#{command}"
69
+ man_path = File.expand_path("../../../man", __FILE__)
70
+ man_pages = Hash[Dir.glob(File.join(man_path, "*")).grep(/.*\.\d*\Z/).collect do |f|
71
+ [File.basename(f, ".*"), f]
72
+ end]
73
+
74
+ if man_pages.include?(command)
75
+ if Bundler.which("man") && man_path !~ %r{^file:/.+!/META-INF/jruby.home/.+}
76
+ Kernel.exec "man #{man_pages[command]}"
86
77
  else
87
- puts File.read("#{root}/#{command}.txt")
78
+ puts File.read("#{man_path}/#{File.basename(man_pages[command])}.txt")
88
79
  end
89
80
  elsif command_path = Bundler.which("bundler-#{cli}")
90
81
  Kernel.exec(command_path, "--help")
@@ -222,9 +213,9 @@ module Bundler
222
213
  method_option "major", :type => :boolean, :banner =>
223
214
  "Prefer updating to next major version (default)"
224
215
  method_option "strict", :type => :boolean, :banner =>
225
- "Do not allow any gem to be updated past latest --patch/--minor/--major"
216
+ "Do not allow any gem to be updated past latest --patch | --minor | --major"
226
217
  method_option "conservative", :type => :boolean, :banner =>
227
- "Use bundle install conservative update behavior and do not allowed shared dependencies to be updated."
218
+ "Use bundle install conservative update behavior and do not allow shared dependencies to be updated."
228
219
  def update(*gems)
229
220
  require "bundler/cli/update"
230
221
  Update.new(options, gems).run
@@ -271,8 +262,8 @@ module Bundler
271
262
  versions of the given gems. Prerelease gems are ignored by default. If your gems
272
263
  are up to date, Bundler will exit with a status of 0. Otherwise, it will exit 1.
273
264
 
274
- For more information on conservative resolution options (--major, --minor,
275
- --patch, --strict) see documentation on the same options on the update command.
265
+ For more information on patch level options (--major, --minor, --patch,
266
+ --update-strict) see documentation on the same options on the update command.
276
267
  D
277
268
  method_option "group", :aliases => "--group", :type => :string, :banner => "List gems from a specific group"
278
269
  method_option "groups", :aliases => "--groups", :type => :boolean, :banner => "List gems organized by groups"
@@ -283,7 +274,7 @@ module Bundler
283
274
  method_option "strict", :type => :boolean, :banner =>
284
275
  "Only list newer versions allowed by your Gemfile requirements"
285
276
  method_option "update-strict", :type => :boolean, :banner =>
286
- "Strict conservative resolution, do not allow any gem to be updated past latest --patch/--minor/--major"
277
+ "Strict conservative resolution, do not allow any gem to be updated past latest --patch | --minor | --major"
287
278
  method_option "minor", :type => :boolean, :banner => "Prefer updating only to next minor version"
288
279
  method_option "major", :type => :boolean, :banner => "Prefer updating to next major version (default)"
289
280
  method_option "patch", :type => :boolean, :banner => "Prefer updating only to next patch version"
@@ -410,6 +401,8 @@ module Bundler
410
401
  Viz.new(options.dup).run
411
402
  end
412
403
 
404
+ old_gem = instance_method(:gem)
405
+
413
406
  desc "gem GEM [OPTIONS]", "Creates a skeleton for creating a rubygem"
414
407
  method_option :exe, :type => :boolean, :default => false, :aliases => ["--bin", "-b"], :desc => "Generate a binary executable for your library."
415
408
  method_option :coc, :type => :boolean, :desc => "Generate a code of conduct file. Set a default with `bundle config gem.coc true`."
@@ -421,10 +414,30 @@ module Bundler
421
414
  method_option :test, :type => :string, :lazy_default => "rspec", :aliases => "-t", :banner => "rspec",
422
415
  :desc => "Generate a test directory for your library, either rspec or minitest. Set a default with `bundle config gem.test rspec`."
423
416
  def gem(name)
424
- require "bundler/cli/gem"
425
- Gem.new(options, name, self).run
426
417
  end
427
418
 
419
+ commands["gem"].tap do |gem_command|
420
+ def gem_command.run(instance, args = [])
421
+ arity = 1 # name
422
+
423
+ require "bundler/cli/gem"
424
+ cmd_args = args + [instance]
425
+ cmd_args.unshift(instance.options)
426
+
427
+ cmd = begin
428
+ Gem.new(*cmd_args)
429
+ rescue ArgumentError => e
430
+ instance.class.handle_argument_error(self, e, args, arity)
431
+ end
432
+
433
+ cmd.run
434
+ end
435
+ end
436
+
437
+ undef_method(:gem)
438
+ define_method(:gem, old_gem)
439
+ private :gem
440
+
428
441
  def self.source_root
429
442
  File.expand_path(File.join(File.dirname(__FILE__), "templates"))
430
443
  end
@@ -466,9 +479,9 @@ module Bundler
466
479
  method_option "full-index", :type => :boolean, :default => false, :banner =>
467
480
  "Fall back to using the single-file index of all gems"
468
481
  method_option "add-platform", :type => :array, :default => [], :banner =>
469
- "add a new platform to the lockfile"
482
+ "Add a new platform to the lockfile"
470
483
  method_option "remove-platform", :type => :array, :default => [], :banner =>
471
- "remove a platform from the lockfile"
484
+ "Remove a platform from the lockfile"
472
485
  method_option "patch", :type => :boolean, :banner =>
473
486
  "If updating, prefer updating only to next patch version"
474
487
  method_option "minor", :type => :boolean, :banner =>
@@ -478,7 +491,7 @@ module Bundler
478
491
  method_option "strict", :type => :boolean, :banner =>
479
492
  "If updating, do not allow any gem to be updated past latest --patch | --minor | --major"
480
493
  method_option "conservative", :type => :boolean, :banner =>
481
- "If updating, use bundle install conservative update behavior and do not allowed shared dependencies to be updated."
494
+ "If updating, use bundle install conservative update behavior and do not allow shared dependencies to be updated"
482
495
  def lock
483
496
  require "bundler/cli/lock"
484
497
  Lock.new(options).run
@@ -1,6 +1,23 @@
1
1
  # frozen_string_literal: true
2
2
  module Bundler
3
3
  module CLI::Common
4
+ def self.output_post_install_messages(messages)
5
+ return if Bundler.settings["ignore_messages"]
6
+ messages.to_a.each do |name, msg|
7
+ print_post_install_message(name, msg) unless Bundler.settings["ignore_messages.#{name}"]
8
+ end
9
+ end
10
+
11
+ def self.print_post_install_message(name, msg)
12
+ Bundler.ui.confirm "Post-install message from #{name}:"
13
+ Bundler.ui.info msg
14
+ end
15
+
16
+ def self.output_without_groups_message
17
+ return unless Bundler.settings.without.any?
18
+ Bundler.ui.confirm without_groups_message
19
+ end
20
+
4
21
  def self.without_groups_message
5
22
  groups = Bundler.settings.without
6
23
  group_list = [groups[0...-1].join(", "), groups[-1..-1]].