bundler 2.2.26 → 2.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +166 -1
- data/README.md +1 -1
- data/exe/bundle +7 -8
- data/lib/bundler/.document +1 -0
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/cli/check.rb +1 -1
- data/lib/bundler/cli/doctor.rb +3 -2
- data/lib/bundler/cli/gem.rb +88 -9
- data/lib/bundler/cli/info.rb +16 -4
- data/lib/bundler/cli/install.rb +2 -3
- data/lib/bundler/cli/issue.rb +4 -3
- data/lib/bundler/cli/remove.rb +1 -2
- data/lib/bundler/cli/update.rb +2 -2
- data/lib/bundler/cli.rb +10 -1
- data/lib/bundler/compact_index_client/updater.rb +0 -5
- data/lib/bundler/compact_index_client.rb +2 -2
- data/lib/bundler/definition.rb +77 -124
- data/lib/bundler/dependency.rb +5 -7
- data/lib/bundler/digest.rb +71 -0
- data/lib/bundler/dsl.rb +18 -30
- data/lib/bundler/endpoint_specification.rb +0 -8
- data/lib/bundler/environment_preserver.rb +4 -1
- data/lib/bundler/errors.rb +18 -2
- data/lib/bundler/fetcher/compact_index.rb +9 -4
- data/lib/bundler/fetcher.rb +4 -6
- data/lib/bundler/friendly_errors.rb +5 -30
- data/lib/bundler/gem_helper.rb +6 -17
- data/lib/bundler/injector.rb +10 -1
- data/lib/bundler/installer/gem_installer.rb +1 -6
- data/lib/bundler/installer.rb +1 -5
- data/lib/bundler/lazy_specification.rb +17 -1
- data/lib/bundler/lockfile_parser.rb +10 -12
- data/lib/bundler/man/bundle-add.1 +10 -2
- data/lib/bundler/man/bundle-add.1.ronn +7 -1
- data/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/lib/bundler/man/bundle-cache.1 +1 -1
- data/lib/bundler/man/bundle-check.1 +1 -1
- data/lib/bundler/man/bundle-clean.1 +1 -1
- data/lib/bundler/man/bundle-config.1 +5 -5
- data/lib/bundler/man/bundle-config.1.ronn +5 -5
- data/lib/bundler/man/bundle-doctor.1 +1 -1
- data/lib/bundler/man/bundle-exec.1 +1 -1
- data/lib/bundler/man/bundle-gem.1 +14 -1
- data/lib/bundler/man/bundle-gem.1.ronn +16 -0
- data/lib/bundler/man/bundle-info.1 +1 -1
- data/lib/bundler/man/bundle-init.1 +1 -1
- data/lib/bundler/man/bundle-inject.1 +1 -1
- data/lib/bundler/man/bundle-install.1 +2 -2
- data/lib/bundler/man/bundle-install.1.ronn +2 -2
- data/lib/bundler/man/bundle-list.1 +1 -1
- data/lib/bundler/man/bundle-lock.1 +1 -1
- data/lib/bundler/man/bundle-open.1 +1 -1
- data/lib/bundler/man/bundle-outdated.1 +1 -1
- data/lib/bundler/man/bundle-platform.1 +1 -1
- data/lib/bundler/man/bundle-pristine.1 +1 -1
- data/lib/bundler/man/bundle-remove.1 +1 -1
- data/lib/bundler/man/bundle-show.1 +1 -1
- data/lib/bundler/man/bundle-update.1 +2 -2
- data/lib/bundler/man/bundle-update.1.ronn +2 -1
- data/lib/bundler/man/bundle-viz.1 +1 -1
- data/lib/bundler/man/bundle.1 +1 -1
- data/lib/bundler/man/gemfile.5 +28 -2
- data/lib/bundler/man/gemfile.5.ronn +9 -1
- data/lib/bundler/plugin/api/source.rb +1 -0
- data/lib/bundler/plugin/installer.rb +3 -1
- data/lib/bundler/plugin.rb +23 -6
- data/lib/bundler/process_lock.rb +1 -1
- data/lib/bundler/psyched_yaml.rb +1 -13
- data/lib/bundler/resolver.rb +34 -31
- data/lib/bundler/ruby_version.rb +1 -1
- data/lib/bundler/rubygems_ext.rb +6 -0
- data/lib/bundler/rubygems_gem_installer.rb +21 -5
- data/lib/bundler/rubygems_integration.rb +39 -57
- data/lib/bundler/runtime.rb +2 -2
- data/lib/bundler/self_manager.rb +94 -0
- data/lib/bundler/settings.rb +10 -1
- data/lib/bundler/shared_helpers.rb +4 -12
- data/lib/bundler/source/git/git_proxy.rb +7 -4
- data/lib/bundler/source/git.rb +22 -4
- data/lib/bundler/source/metadata.rb +1 -1
- data/lib/bundler/source/rubygems.rb +60 -85
- data/lib/bundler/source/rubygems_aggregate.rb +1 -1
- data/lib/bundler/source.rb +3 -1
- data/lib/bundler/source_list.rb +11 -29
- data/lib/bundler/spec_set.rb +2 -2
- data/lib/bundler/templates/Executable.bundler +1 -1
- data/lib/bundler/templates/Gemfile +0 -2
- data/lib/bundler/templates/gems.rb +0 -3
- data/lib/bundler/templates/newgem/Gemfile.tt +5 -2
- data/lib/bundler/templates/newgem/Rakefile.tt +15 -2
- data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +4 -3
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +14 -14
- data/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
- data/lib/bundler/templates/newgem/standard.yml.tt +2 -0
- data/lib/bundler/templates/newgem/test/minitest/{newgem_test.rb.tt → test_newgem.rb.tt} +1 -1
- data/lib/bundler/ui/shell.rb +1 -1
- data/lib/bundler/vendor/.document +1 -0
- data/lib/bundler/vendor/connection_pool/LICENSE +20 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
- data/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
- data/lib/bundler/vendor/molinillo/LICENSE +9 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +2 -2
- data/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- data/lib/bundler/vendor/thor/LICENSE.md +20 -0
- data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +6 -6
- data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +5 -3
- data/lib/bundler/vendor/thor/lib/thor/actions.rb +6 -2
- data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
- data/lib/bundler/vendor/thor/lib/thor/error.rb +9 -4
- data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +19 -1
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +22 -4
- data/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
- data/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
- data/lib/bundler/vendor/tsort/lib/tsort.rb +453 -0
- data/lib/bundler/vendor/uri/LICENSE.txt +22 -0
- data/lib/bundler/vendor/uri/lib/uri/common.rb +17 -80
- data/lib/bundler/vendor/uri/lib/uri/ftp.rb +0 -1
- data/lib/bundler/vendor/uri/lib/uri/generic.rb +5 -6
- data/lib/bundler/vendor/uri/lib/uri/http.rb +0 -1
- data/lib/bundler/vendor/uri/lib/uri/https.rb +0 -1
- data/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
- data/lib/bundler/vendor/uri/lib/uri/mailto.rb +0 -1
- data/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +1 -14
- data/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +1 -12
- data/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/lib/bundler/vendor/uri/lib/uri/ws.rb +84 -0
- data/lib/bundler/vendor/uri/lib/uri/wss.rb +22 -0
- data/lib/bundler/vendor/uri/lib/uri.rb +0 -1
- data/lib/bundler/vendored_tsort.rb +4 -0
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler/worker.rb +2 -2
- data/lib/bundler.rb +22 -21
- metadata +25 -9
- data/lib/bundler/gemdeps.rb +0 -29
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '07833d3c4b77a6566dce7964d5a9aa188967a39df2a81a78d145de9f27159019'
|
4
|
+
data.tar.gz: eb3e37e52c9ec73e4f59a63fca82d09b0469910a7f01f86ed734e4799926856c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3c58cbd37d07fff2205a51f8157146d80eca0f155c1ec5d7396801bc5bc482767ec7e418e6549d7fed88904ab7fa9588b47f36b8bce8f2176dbe2062ffcd397b
|
7
|
+
data.tar.gz: '0118cc34cd853d7b51d116eb88d692b2637ab894a8029ee9d853ee2824705b55d6685ecfeaf51dd102fe8361afef0e606a581a511beaf91a92fef50403a56cec'
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,168 @@
|
|
1
|
+
# 2.3.4 (December 29, 2021)
|
2
|
+
|
3
|
+
## Enhancements:
|
4
|
+
|
5
|
+
- Improve error message when `BUNDLED WITH` version does not exist [#5205](https://github.com/rubygems/rubygems/pull/5205)
|
6
|
+
|
7
|
+
## Bug fixes:
|
8
|
+
|
9
|
+
- Fix `bundle update --bundler` no longer updating lockfile [#5224](https://github.com/rubygems/rubygems/pull/5224)
|
10
|
+
|
11
|
+
# 2.3.3 (December 24, 2021)
|
12
|
+
|
13
|
+
## Bug fixes:
|
14
|
+
|
15
|
+
- Fix locked bundler not installed to the right path when `deployment` is set [#5217](https://github.com/rubygems/rubygems/pull/5217)
|
16
|
+
|
17
|
+
# 2.3.2 (December 23, 2021)
|
18
|
+
|
19
|
+
## Enhancements:
|
20
|
+
|
21
|
+
- Remove unnecessary lockfile upgrade warning [#5209](https://github.com/rubygems/rubygems/pull/5209)
|
22
|
+
|
23
|
+
# 2.3.1 (December 22, 2021)
|
24
|
+
|
25
|
+
## Enhancements:
|
26
|
+
|
27
|
+
- Vendor latest `thor` with fixes for latest `did_you_mean` deprecations [#5202](https://github.com/rubygems/rubygems/pull/5202)
|
28
|
+
- Avoid unnecessary `shellwords` require on newer rubygems [#5195](https://github.com/rubygems/rubygems/pull/5195)
|
29
|
+
- Re-exec prepending command with `Gem.ruby` if `$PROGRAM_NAME` is not executable [#5193](https://github.com/rubygems/rubygems/pull/5193)
|
30
|
+
|
31
|
+
# 2.3.0 (December 21, 2021)
|
32
|
+
|
33
|
+
## Features:
|
34
|
+
|
35
|
+
- Change `bundle install` with a lockfile to respect the `BUNDLED WITH` bundler version [#4076](https://github.com/rubygems/rubygems/pull/4076)
|
36
|
+
|
37
|
+
## Enhancements:
|
38
|
+
|
39
|
+
- Print warning when running Bundler on potentially problematic RubyGems & Ruby combinations [#5177](https://github.com/rubygems/rubygems/pull/5177)
|
40
|
+
- Error tracing should be printed to stderr [#5179](https://github.com/rubygems/rubygems/pull/5179)
|
41
|
+
- Add `github` and `ref` options to `bundle add` [#5159](https://github.com/rubygems/rubygems/pull/5159)
|
42
|
+
- Add require parameter to `bundle add` [#5021](https://github.com/rubygems/rubygems/pull/5021)
|
43
|
+
- Enable parallel installation on Windows by default [#4822](https://github.com/rubygems/rubygems/pull/4822)
|
44
|
+
- More logging when compact index is not used and we fallback to other APIs [#4546](https://github.com/rubygems/rubygems/pull/4546)
|
45
|
+
- `bundle gem` generated MiniTest file and class now start with 'test' [#3893](https://github.com/rubygems/rubygems/pull/3893)
|
46
|
+
- Add `Bundler::Definition.no_lock` accessor for skipping lock file creation/update [#3401](https://github.com/rubygems/rubygems/pull/3401)
|
47
|
+
|
48
|
+
## Bug fixes:
|
49
|
+
|
50
|
+
- Fix crash when when no platform specific matches exist and show a proper error [#5168](https://github.com/rubygems/rubygems/pull/5168)
|
51
|
+
- Ignore dependencies not actually locked from frozen check [#5152](https://github.com/rubygems/rubygems/pull/5152)
|
52
|
+
- Fix `bundle cache --all-platforms` on Windows [#4552](https://github.com/rubygems/rubygems/pull/4552)
|
53
|
+
|
54
|
+
## Documentation:
|
55
|
+
|
56
|
+
- Fix gemspec template typo [#4545](https://github.com/rubygems/rubygems/pull/4545)
|
57
|
+
|
58
|
+
# 2.2.33 (December 7, 2021)
|
59
|
+
|
60
|
+
## Security fixes:
|
61
|
+
|
62
|
+
- Pass "--" to git commands to separate positional and optional args [#5142](https://github.com/rubygems/rubygems/pull/5142)
|
63
|
+
|
64
|
+
## Enhancements:
|
65
|
+
|
66
|
+
- Accept pull request URLs as github source [#5126](https://github.com/rubygems/rubygems/pull/5126)
|
67
|
+
- Add `--version` parameter to `bundle info` command [#5137](https://github.com/rubygems/rubygems/pull/5137)
|
68
|
+
- Let original `Errno::EACCES` error be raised in compact index updater [#5110](https://github.com/rubygems/rubygems/pull/5110)
|
69
|
+
- Improve gemfile-lockfile source equivalence errors [#5120](https://github.com/rubygems/rubygems/pull/5120)
|
70
|
+
- Avoid float-to-string loss of characters in GitHub Actions configuration labels in new gem template [#5089](https://github.com/rubygems/rubygems/pull/5089)
|
71
|
+
- Add an initial rbs template to `bundle gem` skeleton [#5041](https://github.com/rubygems/rubygems/pull/5041)
|
72
|
+
- Avoid shared libraries not getting environment passed right after argv in memory when `bundle exec` is used [#4815](https://github.com/rubygems/rubygems/pull/4815)
|
73
|
+
|
74
|
+
## Bug fixes:
|
75
|
+
|
76
|
+
- Don't cleanup paths from gems already activated from `$LOAD_PATH` [#5111](https://github.com/rubygems/rubygems/pull/5111)
|
77
|
+
- Fix handling prereleases of 0 versions, like 0.0.0.dev or 0.0.0.SNAPSHOT [#5116](https://github.com/rubygems/rubygems/pull/5116)
|
78
|
+
- Fix escape of filenames in `bundle doctor` [#5102](https://github.com/rubygems/rubygems/pull/5102)
|
79
|
+
- Don't unlock dependencies when running `bundle install` after changing global source [#5090](https://github.com/rubygems/rubygems/pull/5090)
|
80
|
+
- Fix missing locked specs when depended on another platform [#5092](https://github.com/rubygems/rubygems/pull/5092)
|
81
|
+
- Fix `bundle info` sometimes claiming that bundler has been deleted [#5097](https://github.com/rubygems/rubygems/pull/5097)
|
82
|
+
|
83
|
+
## Documentation:
|
84
|
+
|
85
|
+
- Ignore to generate the documentation from vendored libraries [#5118](https://github.com/rubygems/rubygems/pull/5118)
|
86
|
+
|
87
|
+
# 2.2.32 (November 23, 2021)
|
88
|
+
|
89
|
+
## Enhancements:
|
90
|
+
|
91
|
+
- Clarify `bundle viz` deprecation [#5083](https://github.com/rubygems/rubygems/pull/5083)
|
92
|
+
- Unlock dependencies that no longer match lockfile [#5068](https://github.com/rubygems/rubygems/pull/5068)
|
93
|
+
- Use `shellsplit` instead of array of strings for git push [#5062](https://github.com/rubygems/rubygems/pull/5062)
|
94
|
+
- Re-enable `default_ignores` option for standard [#5003](https://github.com/rubygems/rubygems/pull/5003)
|
95
|
+
|
96
|
+
## Bug fixes:
|
97
|
+
|
98
|
+
- Fix downgrading dependencies by changing the `Gemfile` and running `bundle update` [#5078](https://github.com/rubygems/rubygems/pull/5078)
|
99
|
+
|
100
|
+
# 2.2.31 (November 8, 2021)
|
101
|
+
|
102
|
+
## Enhancements:
|
103
|
+
|
104
|
+
- Link to working `bundler-graph` plugin in `bundle viz` deprecation message [#5061](https://github.com/rubygems/rubygems/pull/5061)
|
105
|
+
- Memoize materialized specs when requiring `bundler/setup` [#5033](https://github.com/rubygems/rubygems/pull/5033)
|
106
|
+
- Allow custom LicenseRef [#5013](https://github.com/rubygems/rubygems/pull/5013)
|
107
|
+
- Better error when installing a lockfile with git sources and git is not installed [#5036](https://github.com/rubygems/rubygems/pull/5036)
|
108
|
+
- Only delete cached gem when it's corrupted [#5031](https://github.com/rubygems/rubygems/pull/5031)
|
109
|
+
- Support gemified `tsort` [#5032](https://github.com/rubygems/rubygems/pull/5032)
|
110
|
+
- Add standard option alongside rubocop to `bundle gem` [#4411](https://github.com/rubygems/rubygems/pull/4411)
|
111
|
+
|
112
|
+
## Bug fixes:
|
113
|
+
|
114
|
+
- Fix system man pages no longer working after bundler overrides `MANPATH` [#5039](https://github.com/rubygems/rubygems/pull/5039)
|
115
|
+
- Don't warn when a lockfile is locked to a dev version [#5018](https://github.com/rubygems/rubygems/pull/5018)
|
116
|
+
|
117
|
+
# 2.2.30 (October 26, 2021)
|
118
|
+
|
119
|
+
## Enhancements:
|
120
|
+
|
121
|
+
- Add a custom SHA1 digest implementation to no longer depend on the digest gem before we know which version to activate [#4989](https://github.com/rubygems/rubygems/pull/4989)
|
122
|
+
- Ensure vendored gems have licenses [#4998](https://github.com/rubygems/rubygems/pull/4998)
|
123
|
+
- Update broken link in Bundler::Fetcher::CertificateFailureError [#4987](https://github.com/rubygems/rubygems/pull/4987)
|
124
|
+
- Give better errors for some permission issues [#4965](https://github.com/rubygems/rubygems/pull/4965)
|
125
|
+
- Print better errors when `bundler/gem_tasks` fail [#4872](https://github.com/rubygems/rubygems/pull/4872)
|
126
|
+
- Fix `bundle install` to reinstall deleted gems [#4974](https://github.com/rubygems/rubygems/pull/4974)
|
127
|
+
- Unify issue template and ISSUES.md document [#4980](https://github.com/rubygems/rubygems/pull/4980)
|
128
|
+
- Bump vendored connection_pool to 2.2.5 [#4738](https://github.com/rubygems/rubygems/pull/4738)
|
129
|
+
|
130
|
+
## Bug fixes:
|
131
|
+
|
132
|
+
- Fix error message pointing to non existing file when using a global gem cache [#4999](https://github.com/rubygems/rubygems/pull/4999)
|
133
|
+
- Fix install crash when lockfile has missing dependencies for the current platform [#4941](https://github.com/rubygems/rubygems/pull/4941)
|
134
|
+
- Make `bundle info` show a proper warning every time it finds a deleted gem [#4971](https://github.com/rubygems/rubygems/pull/4971)
|
135
|
+
|
136
|
+
# 2.2.29 (October 8, 2021)
|
137
|
+
|
138
|
+
## Enhancements:
|
139
|
+
|
140
|
+
- Require at least Ruby 2.6.0 for gems created with recent rubies [#4920](https://github.com/rubygems/rubygems/pull/4920)
|
141
|
+
- Include glob information in string representation of git sources to make generated lockfiles deterministic [#4947](https://github.com/rubygems/rubygems/pull/4947)
|
142
|
+
- Add missing `rubygem_push` prerequisite [#4930](https://github.com/rubygems/rubygems/pull/4930)
|
143
|
+
|
144
|
+
# 2.2.28 (September 23, 2021)
|
145
|
+
|
146
|
+
## Enhancements:
|
147
|
+
|
148
|
+
- Use example.com in new gem template, since it will never have a potentially dangerous backing website [#4918](https://github.com/rubygems/rubygems/pull/4918)
|
149
|
+
- Deprecate `--install` flag to `bundle remove` and trigger install by default [#4891](https://github.com/rubygems/rubygems/pull/4891)
|
150
|
+
|
151
|
+
# 2.2.27 (September 3, 2021)
|
152
|
+
|
153
|
+
## Enhancements:
|
154
|
+
|
155
|
+
- Optimize some requires [#4887](https://github.com/rubygems/rubygems/pull/4887)
|
156
|
+
- Correctly redact credentials when using x-oauth-basic [#4866](https://github.com/rubygems/rubygems/pull/4866)
|
157
|
+
|
158
|
+
## Bug fixes:
|
159
|
+
|
160
|
+
- Add missing key `branches:` to template for GitHub Actions [#4883](https://github.com/rubygems/rubygems/pull/4883)
|
161
|
+
- Fix `bundle plugin install` detection of already installed plugins [#4869](https://github.com/rubygems/rubygems/pull/4869)
|
162
|
+
- Make plugin installation idempotent [#4864](https://github.com/rubygems/rubygems/pull/4864)
|
163
|
+
- Fix `bundle check` showing duplicated gems when multiple platforms are locked [#4854](https://github.com/rubygems/rubygems/pull/4854)
|
164
|
+
- Fix `bundle check` incorrectly considering cached gems [#4853](https://github.com/rubygems/rubygems/pull/4853)
|
165
|
+
|
1
166
|
# 2.2.26 (August 17, 2021)
|
2
167
|
|
3
168
|
## Enhancements:
|
@@ -77,7 +242,7 @@
|
|
77
242
|
- Fix `bundle doctor` crashing when finding a broken symlink [#4707](https://github.com/rubygems/rubygems/pull/4707)
|
78
243
|
- Fix incorrect re-resolve edge case [#4700](https://github.com/rubygems/rubygems/pull/4700)
|
79
244
|
- Fix some gems being unintentionally locked under multiple lockfile sections [#4701](https://github.com/rubygems/rubygems/pull/4701)
|
80
|
-
- Fix `--conservative` flag unexpectedly updating indirect dependencies [#4692](https://github.com/rubygems/rubygems/pull/4692)
|
245
|
+
- Fix `--conservative` flag unexpectedly updating indirect dependencies. NOTE: As part of this bug fix, some undocumented, unintentional code causing `bundle update --source <gem>` to update conservatively was fixed. Use the documented `bundle update --conservative <gem>` instead [#4692](https://github.com/rubygems/rubygems/pull/4692)
|
81
246
|
|
82
247
|
# 2.2.21 (June 23, 2021)
|
83
248
|
|
data/README.md
CHANGED
@@ -32,7 +32,7 @@ See [bundler.io](https://bundler.io) for the full documentation.
|
|
32
32
|
|
33
33
|
For help with common problems, see [TROUBLESHOOTING](doc/TROUBLESHOOTING.md).
|
34
34
|
|
35
|
-
Still stuck? Try [filing an issue](
|
35
|
+
Still stuck? Try [filing an issue](https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md).
|
36
36
|
|
37
37
|
### Other questions
|
38
38
|
|
data/exe/bundle
CHANGED
@@ -18,14 +18,13 @@ end
|
|
18
18
|
# Workaround for non-activated bundler spec due to missing https://github.com/rubygems/rubygems/commit/4e306d7bcdee924b8d80ca9db6125aa59ee4e5a3
|
19
19
|
gem "bundler", Bundler::VERSION if Gem.rubygems_version < Gem::Version.new("2.6.2")
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
abort(err)
|
21
|
+
if Gem.rubygems_version < Gem::Version.new("3.2.3") && Gem.ruby_version < Gem::Version.new("2.6.a") && !ENV["BUNDLER_NO_OLD_RUBYGEMS_WARNING"]
|
22
|
+
Bundler.ui.warn \
|
23
|
+
"Your RubyGems version (#{Gem::VERSION})) has a bug that prevents " \
|
24
|
+
"`required_ruby_version` from working for Bundler. Any scripts that use " \
|
25
|
+
"`gem install bundler` will break as soon as Bundler drops support for " \
|
26
|
+
"your Ruby version. Please upgrade RubyGems to avoid future breakage " \
|
27
|
+
"and silence this warning by running `gem update --system 3.2.3`"
|
29
28
|
end
|
30
29
|
|
31
30
|
if File.exist?(base_path)
|
@@ -0,0 +1 @@
|
|
1
|
+
# not in RDoc
|
@@ -4,8 +4,8 @@ module Bundler
|
|
4
4
|
# Represents metadata from when the Bundler gem was built.
|
5
5
|
module BuildMetadata
|
6
6
|
# begin ivars
|
7
|
-
@built_at = "2021-
|
8
|
-
@git_commit_sha = "
|
7
|
+
@built_at = "2021-12-29".freeze
|
8
|
+
@git_commit_sha = "2296a0d6cc".freeze
|
9
9
|
@release = true
|
10
10
|
# end ivars
|
11
11
|
|
data/lib/bundler/cli/check.rb
CHANGED
@@ -15,7 +15,7 @@ module Bundler
|
|
15
15
|
definition.validate_runtime!
|
16
16
|
|
17
17
|
begin
|
18
|
-
definition.
|
18
|
+
definition.resolve_only_locally!
|
19
19
|
not_installed = definition.missing_specs
|
20
20
|
rescue GemNotFound, VersionConflict
|
21
21
|
Bundler.ui.error "Bundler can't satisfy your Gemfile's dependencies."
|
data/lib/bundler/cli/doctor.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "rbconfig"
|
4
|
+
require "shellwords"
|
4
5
|
|
5
6
|
module Bundler
|
6
7
|
class CLI::Doctor
|
@@ -22,14 +23,14 @@ module Bundler
|
|
22
23
|
end
|
23
24
|
|
24
25
|
def dylibs_darwin(path)
|
25
|
-
output = `/usr/bin/otool -L
|
26
|
+
output = `/usr/bin/otool -L #{path.shellescape}`.chomp
|
26
27
|
dylibs = output.split("\n")[1..-1].map {|l| l.match(DARWIN_REGEX).captures[0] }.uniq
|
27
28
|
# ignore @rpath and friends
|
28
29
|
dylibs.reject {|dylib| dylib.start_with? "@" }
|
29
30
|
end
|
30
31
|
|
31
32
|
def dylibs_ldd(path)
|
32
|
-
output = `/usr/bin/ldd
|
33
|
+
output = `/usr/bin/ldd #{path.shellescape}`.chomp
|
33
34
|
output.split("\n").map do |l|
|
34
35
|
match = l.match(LDD_REGEX)
|
35
36
|
next if match.nil?
|
data/lib/bundler/cli/gem.rb
CHANGED
@@ -68,7 +68,7 @@ module Bundler
|
|
68
68
|
:bundler_version => bundler_dependency_version,
|
69
69
|
:git => use_git,
|
70
70
|
:github_username => github_username.empty? ? "[USERNAME]" : github_username,
|
71
|
-
:required_ruby_version =>
|
71
|
+
:required_ruby_version => required_ruby_version,
|
72
72
|
}
|
73
73
|
ensure_safe_gem_name(name, constant_array)
|
74
74
|
|
@@ -76,6 +76,7 @@ module Bundler
|
|
76
76
|
"#{Bundler.preferred_gemfile_name}.tt" => Bundler.preferred_gemfile_name,
|
77
77
|
"lib/newgem.rb.tt" => "lib/#{namespaced_path}.rb",
|
78
78
|
"lib/newgem/version.rb.tt" => "lib/#{namespaced_path}/version.rb",
|
79
|
+
"sig/newgem.rbs.tt" => "sig/#{namespaced_path}.rbs",
|
79
80
|
"newgem.gemspec.tt" => "#{name}.gemspec",
|
80
81
|
"Rakefile.tt" => "Rakefile",
|
81
82
|
"README.md.tt" => "README.md",
|
@@ -105,7 +106,7 @@ module Bundler
|
|
105
106
|
when "minitest"
|
106
107
|
templates.merge!(
|
107
108
|
"test/minitest/test_helper.rb.tt" => "test/test_helper.rb",
|
108
|
-
"test/minitest/
|
109
|
+
"test/minitest/test_newgem.rb.tt" => "test/test_#{namespaced_path}.rb"
|
109
110
|
)
|
110
111
|
config[:test_task] = :test
|
111
112
|
when "test-unit"
|
@@ -163,15 +164,16 @@ module Bundler
|
|
163
164
|
templates.merge!("CHANGELOG.md.tt" => "CHANGELOG.md")
|
164
165
|
end
|
165
166
|
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
"and the Ruby Style Guides (https://github.com/rubocop-hq/ruby-style-guide).")
|
171
|
-
config[:rubocop] = true
|
172
|
-
config[:rubocop_version] = Gem.ruby_version < Gem::Version.new("2.4.a") ? "0.81.0" : "1.7"
|
167
|
+
config[:linter] = ask_and_set_linter
|
168
|
+
case config[:linter]
|
169
|
+
when "rubocop"
|
170
|
+
config[:linter_version] = rubocop_version
|
173
171
|
Bundler.ui.info "RuboCop enabled in config"
|
174
172
|
templates.merge!("rubocop.yml.tt" => ".rubocop.yml")
|
173
|
+
when "standard"
|
174
|
+
config[:linter_version] = standard_version
|
175
|
+
Bundler.ui.info "Standard enabled in config"
|
176
|
+
templates.merge!("standard.yml.tt" => ".standard.yml")
|
175
177
|
end
|
176
178
|
|
177
179
|
templates.merge!("exe/newgem.tt" => "exe/#{name}") if config[:exe]
|
@@ -317,6 +319,58 @@ module Bundler
|
|
317
319
|
ci_template
|
318
320
|
end
|
319
321
|
|
322
|
+
def ask_and_set_linter
|
323
|
+
linter_template = options[:linter] || Bundler.settings["gem.linter"]
|
324
|
+
linter_template = deprecated_rubocop_option if linter_template.nil?
|
325
|
+
|
326
|
+
if linter_template.to_s.empty?
|
327
|
+
Bundler.ui.confirm "Do you want to add a code linter and formatter to your gem? " \
|
328
|
+
"Supported Linters:\n" \
|
329
|
+
"* RuboCop: https://rubocop.org\n" \
|
330
|
+
"* Standard: https://github.com/testdouble/standard\n" \
|
331
|
+
"\n"
|
332
|
+
Bundler.ui.info hint_text("linter")
|
333
|
+
|
334
|
+
result = Bundler.ui.ask "Enter a linter. rubocop/standard/(none):"
|
335
|
+
if result =~ /rubocop|standard/
|
336
|
+
linter_template = result
|
337
|
+
else
|
338
|
+
linter_template = false
|
339
|
+
end
|
340
|
+
end
|
341
|
+
|
342
|
+
if Bundler.settings["gem.linter"].nil?
|
343
|
+
Bundler.settings.set_global("gem.linter", linter_template)
|
344
|
+
end
|
345
|
+
|
346
|
+
# Once gem.linter safely set, unset the deprecated gem.rubocop
|
347
|
+
unless Bundler.settings["gem.rubocop"].nil?
|
348
|
+
Bundler.settings.set_global("gem.rubocop", nil)
|
349
|
+
end
|
350
|
+
|
351
|
+
if options[:linter] == Bundler.settings["gem.linter"]
|
352
|
+
Bundler.ui.info "#{options[:linter]} is already configured, ignoring --linter flag."
|
353
|
+
end
|
354
|
+
|
355
|
+
linter_template
|
356
|
+
end
|
357
|
+
|
358
|
+
def deprecated_rubocop_option
|
359
|
+
if !options[:rubocop].nil?
|
360
|
+
if options[:rubocop]
|
361
|
+
Bundler::SharedHelpers.major_deprecation 2, "--rubocop is deprecated, use --linter=rubocop"
|
362
|
+
"rubocop"
|
363
|
+
else
|
364
|
+
Bundler::SharedHelpers.major_deprecation 2, "--no-rubocop is deprecated, use --linter"
|
365
|
+
false
|
366
|
+
end
|
367
|
+
elsif !Bundler.settings["gem.rubocop"].nil?
|
368
|
+
Bundler::SharedHelpers.major_deprecation 2,
|
369
|
+
"config gem.rubocop is deprecated; we've updated your config to use gem.linter instead"
|
370
|
+
Bundler.settings["gem.rubocop"] ? "rubocop" : false
|
371
|
+
end
|
372
|
+
end
|
373
|
+
|
320
374
|
def bundler_dependency_version
|
321
375
|
v = Gem::Version.new(Bundler::VERSION)
|
322
376
|
req = v.segments[0..1]
|
@@ -350,5 +404,30 @@ module Bundler
|
|
350
404
|
def open_editor(editor, file)
|
351
405
|
thor.run(%(#{editor} "#{file}"))
|
352
406
|
end
|
407
|
+
|
408
|
+
def required_ruby_version
|
409
|
+
if Gem.ruby_version < Gem::Version.new("2.4.a") then "2.3.0"
|
410
|
+
elsif Gem.ruby_version < Gem::Version.new("2.5.a") then "2.4.0"
|
411
|
+
elsif Gem.ruby_version < Gem::Version.new("2.6.a") then "2.5.0"
|
412
|
+
else
|
413
|
+
"2.6.0"
|
414
|
+
end
|
415
|
+
end
|
416
|
+
|
417
|
+
def rubocop_version
|
418
|
+
if Gem.ruby_version < Gem::Version.new("2.4.a") then "0.81.0"
|
419
|
+
elsif Gem.ruby_version < Gem::Version.new("2.5.a") then "1.12"
|
420
|
+
else
|
421
|
+
"1.21"
|
422
|
+
end
|
423
|
+
end
|
424
|
+
|
425
|
+
def standard_version
|
426
|
+
if Gem.ruby_version < Gem::Version.new("2.4.a") then "0.2.5"
|
427
|
+
elsif Gem.ruby_version < Gem::Version.new("2.5.a") then "1.0"
|
428
|
+
else
|
429
|
+
"1.3"
|
430
|
+
end
|
431
|
+
end
|
353
432
|
end
|
354
433
|
end
|
data/lib/bundler/cli/info.rb
CHANGED
@@ -18,6 +18,7 @@ module Bundler
|
|
18
18
|
|
19
19
|
if spec
|
20
20
|
return print_gem_path(spec) if @options[:path]
|
21
|
+
return print_gem_version(spec) if @options[:version]
|
21
22
|
print_gem_info(spec)
|
22
23
|
end
|
23
24
|
end
|
@@ -39,13 +40,18 @@ module Bundler
|
|
39
40
|
raise GemNotFound, Bundler::CLI::Common.gem_not_found_message(gem_name, Bundler.definition.dependencies)
|
40
41
|
end
|
41
42
|
|
43
|
+
def print_gem_version(spec)
|
44
|
+
Bundler.ui.info spec.version.to_s
|
45
|
+
end
|
46
|
+
|
42
47
|
def print_gem_path(spec)
|
43
|
-
|
48
|
+
name = spec.name
|
49
|
+
if name == "bundler"
|
44
50
|
path = File.expand_path("../../../..", __FILE__)
|
45
51
|
else
|
46
52
|
path = spec.full_gem_path
|
47
|
-
|
48
|
-
return Bundler.ui.warn "The gem #{
|
53
|
+
if spec.deleted_gem?
|
54
|
+
return Bundler.ui.warn "The gem #{name} has been deleted. It was installed at: #{path}"
|
49
55
|
end
|
50
56
|
end
|
51
57
|
|
@@ -54,8 +60,9 @@ module Bundler
|
|
54
60
|
|
55
61
|
def print_gem_info(spec)
|
56
62
|
metadata = spec.metadata
|
63
|
+
name = spec.name
|
57
64
|
gem_info = String.new
|
58
|
-
gem_info << " * #{
|
65
|
+
gem_info << " * #{name} (#{spec.version}#{spec.git_version})\n"
|
59
66
|
gem_info << "\tSummary: #{spec.summary}\n" if spec.summary
|
60
67
|
gem_info << "\tHomepage: #{spec.homepage}\n" if spec.homepage
|
61
68
|
gem_info << "\tDocumentation: #{metadata["documentation_uri"]}\n" if metadata.key?("documentation_uri")
|
@@ -67,6 +74,11 @@ module Bundler
|
|
67
74
|
gem_info << "\tMailing List: #{metadata["mailing_list_uri"]}\n" if metadata.key?("mailing_list_uri")
|
68
75
|
gem_info << "\tPath: #{spec.full_gem_path}\n"
|
69
76
|
gem_info << "\tDefault Gem: yes" if spec.respond_to?(:default_gem?) && spec.default_gem?
|
77
|
+
|
78
|
+
if name != "bundler" && spec.deleted_gem?
|
79
|
+
return Bundler.ui.warn "The gem #{name} has been deleted. Gemspec information is still available though:\n#{gem_info}"
|
80
|
+
end
|
81
|
+
|
70
82
|
Bundler.ui.info gem_info
|
71
83
|
end
|
72
84
|
end
|
data/lib/bundler/cli/install.rb
CHANGED
@@ -12,6 +12,8 @@ module Bundler
|
|
12
12
|
|
13
13
|
warn_if_root
|
14
14
|
|
15
|
+
Bundler.self_manager.install_locked_bundler_and_restart_with_it_if_needed
|
16
|
+
|
15
17
|
Bundler::SharedHelpers.set_env "RB_USER_INSTALL", "1" if Bundler::FREEBSD
|
16
18
|
|
17
19
|
# Disable color in deployment mode
|
@@ -163,9 +165,6 @@ module Bundler
|
|
163
165
|
|
164
166
|
def normalize_settings
|
165
167
|
Bundler.settings.set_command_option :path, nil if options[:system]
|
166
|
-
Bundler.settings.temporary(:path_relative_to_cwd => false) do
|
167
|
-
Bundler.settings.set_command_option :path, "vendor/bundle" if Bundler.settings[:deployment] && Bundler.settings[:path].nil?
|
168
|
-
end
|
169
168
|
Bundler.settings.set_command_option_if_given :path, options[:path]
|
170
169
|
Bundler.settings.temporary(:path_relative_to_cwd => false) do
|
171
170
|
Bundler.settings.set_command_option :path, "bundle" if options["standalone"] && Bundler.settings[:path].nil?
|
data/lib/bundler/cli/issue.rb
CHANGED
@@ -20,9 +20,10 @@ module Bundler
|
|
20
20
|
|
21
21
|
Hopefully the troubleshooting steps above resolved your problem! If things
|
22
22
|
still aren't working the way you expect them to, please let us know so
|
23
|
-
that we can diagnose and help fix the problem you're having
|
24
|
-
|
25
|
-
https://github.com/rubygems/rubygems/
|
23
|
+
that we can diagnose and help fix the problem you're having, by filling
|
24
|
+
in the new issue form located at
|
25
|
+
https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md,
|
26
|
+
and copy and pasting the information below.
|
26
27
|
|
27
28
|
EOS
|
28
29
|
|
data/lib/bundler/cli/remove.rb
CHANGED
@@ -11,8 +11,7 @@ module Bundler
|
|
11
11
|
raise InvalidOption, "Please specify gems to remove." if @gems.empty?
|
12
12
|
|
13
13
|
Injector.remove(@gems, {})
|
14
|
-
|
15
|
-
Installer.install(Bundler.root, Bundler.definition) if @options["install"]
|
14
|
+
Installer.install(Bundler.root, Bundler.definition)
|
16
15
|
end
|
17
16
|
end
|
18
17
|
end
|
data/lib/bundler/cli/update.rb
CHANGED
@@ -66,7 +66,7 @@ module Bundler
|
|
66
66
|
|
67
67
|
if locked_gems = Bundler.definition.locked_gems
|
68
68
|
previous_locked_info = locked_gems.specs.reduce({}) do |h, s|
|
69
|
-
h[s.name] = { :spec => s, :version => s.version, :source => s.source.
|
69
|
+
h[s.name] = { :spec => s, :version => s.version, :source => s.source.identifier }
|
70
70
|
h
|
71
71
|
end
|
72
72
|
end
|
@@ -95,7 +95,7 @@ module Bundler
|
|
95
95
|
end
|
96
96
|
|
97
97
|
locked_source = locked_info[:source]
|
98
|
-
new_source = new_spec.source.
|
98
|
+
new_source = new_spec.source.identifier
|
99
99
|
next if locked_source != new_source
|
100
100
|
|
101
101
|
new_version = new_spec.version
|
data/lib/bundler/cli.rb
CHANGED
@@ -61,6 +61,8 @@ module Bundler
|
|
61
61
|
Bundler.reset_settings_and_root!
|
62
62
|
end
|
63
63
|
|
64
|
+
Bundler.self_manager.restart_with_locked_bundler_if_needed
|
65
|
+
|
64
66
|
Bundler.settings.set_command_option_if_given :retry, options[:retry]
|
65
67
|
|
66
68
|
current_cmd = args.last[:current_command].name
|
@@ -184,6 +186,7 @@ module Bundler
|
|
184
186
|
method_option "install", :type => :boolean, :banner =>
|
185
187
|
"Runs 'bundle install' after removing the gems from the Gemfile"
|
186
188
|
def remove(*gems)
|
189
|
+
SharedHelpers.major_deprecation(2, "The `--install` flag has been deprecated. `bundle install` is triggered by default.") if ARGV.include?("--install")
|
187
190
|
require_relative "cli/remove"
|
188
191
|
Remove.new(gems, options).run
|
189
192
|
end
|
@@ -330,6 +333,7 @@ module Bundler
|
|
330
333
|
|
331
334
|
desc "info GEM [OPTIONS]", "Show information for the given gem"
|
332
335
|
method_option "path", :type => :boolean, :banner => "Print full path to gem"
|
336
|
+
method_option "version", :type => :boolean, :banner => "Print gem version"
|
333
337
|
def info(gem_name)
|
334
338
|
require_relative "cli/info"
|
335
339
|
Info.new(options, gem_name).run
|
@@ -365,8 +369,11 @@ module Bundler
|
|
365
369
|
method_option "version", :aliases => "-v", :type => :string
|
366
370
|
method_option "group", :aliases => "-g", :type => :string
|
367
371
|
method_option "source", :aliases => "-s", :type => :string
|
372
|
+
method_option "require", :aliases => "-r", :type => :string, :banner => "Adds require path to gem. Provide false, or a path as a string."
|
368
373
|
method_option "git", :type => :string
|
374
|
+
method_option "github", :type => :string
|
369
375
|
method_option "branch", :type => :string
|
376
|
+
method_option "ref", :type => :string
|
370
377
|
method_option "skip-install", :type => :boolean, :banner =>
|
371
378
|
"Adds gem to the Gemfile but does not install it"
|
372
379
|
method_option "optimistic", :type => :boolean, :banner => "Adds optimistic declaration of version to gem"
|
@@ -551,7 +558,7 @@ module Bundler
|
|
551
558
|
method_option :version, :type => :boolean, :default => false, :aliases => "-v", :desc => "Set to show each gem version."
|
552
559
|
method_option :without, :type => :array, :default => [], :aliases => "-W", :banner => "GROUP[ GROUP...]", :desc => "Exclude gems that are part of the specified named group."
|
553
560
|
def viz
|
554
|
-
SharedHelpers.major_deprecation 2, "The `viz` command has been
|
561
|
+
SharedHelpers.major_deprecation 2, "The `viz` command has been renamed to `graph` and moved to a plugin. See https://github.com/rubygems/bundler-graph"
|
555
562
|
require_relative "cli/viz"
|
556
563
|
Viz.new(options.dup).run
|
557
564
|
end
|
@@ -574,6 +581,8 @@ module Bundler
|
|
574
581
|
:desc => "Generate a test directory for your library, either rspec, minitest or test-unit. Set a default with `bundle config set --global gem.test (rspec|minitest|test-unit)`."
|
575
582
|
method_option :ci, :type => :string, :lazy_default => Bundler.settings["gem.ci"] || "",
|
576
583
|
:desc => "Generate CI configuration, either GitHub Actions, Travis CI, GitLab CI or CircleCI. Set a default with `bundle config set --global gem.ci (github|travis|gitlab|circle)`"
|
584
|
+
method_option :linter, :type => :string, :lazy_default => Bundler.settings["gem.linter"] || "",
|
585
|
+
:desc => "Add a linter and code formatter, either RuboCop or Standard. Set a default with `bundle config set --global gem.linter (rubocop|standard)`"
|
577
586
|
method_option :github_username, :type => :string, :default => Bundler.settings["gem.github_username"], :banner => "Set your username on GitHub", :desc => "Fill in GitHub username on README so that you don't have to do it manually. Set a default with `bundle config set --global gem.github_username <your_username>`."
|
578
587
|
|
579
588
|
def gem(name)
|
@@ -76,11 +76,6 @@ module Bundler
|
|
76
76
|
|
77
77
|
update(local_path, remote_path, :retrying)
|
78
78
|
end
|
79
|
-
rescue Errno::EACCES
|
80
|
-
raise Bundler::PermissionError,
|
81
|
-
"Bundler does not have write access to create a temp directory " \
|
82
|
-
"within #{Dir.tmpdir}. Bundler must have write access to your " \
|
83
|
-
"systems temp directory to function properly. "
|
84
79
|
rescue Zlib::GzipFile::Error
|
85
80
|
raise Bundler::HTTPError
|
86
81
|
end
|
@@ -5,7 +5,7 @@ require "set"
|
|
5
5
|
|
6
6
|
module Bundler
|
7
7
|
class CompactIndexClient
|
8
|
-
DEBUG_MUTEX = Mutex.new
|
8
|
+
DEBUG_MUTEX = Thread::Mutex.new
|
9
9
|
def self.debug
|
10
10
|
return unless ENV["DEBUG_COMPACT_INDEX"]
|
11
11
|
DEBUG_MUTEX.synchronize { warn("[#{self}] #{yield}") }
|
@@ -25,7 +25,7 @@ module Bundler
|
|
25
25
|
@endpoints = Set.new
|
26
26
|
@info_checksums_by_name = {}
|
27
27
|
@parsed_checksums = false
|
28
|
-
@mutex = Mutex.new
|
28
|
+
@mutex = Thread::Mutex.new
|
29
29
|
end
|
30
30
|
|
31
31
|
def execution_mode=(block)
|